Part 1 - State Drive Nagiation: Overview

Intro What triggered the writing of this post were two things: 1. Prior Experience with State Machine We’ve been using state machine for the past few years to simplify a complex onboarding flow. The complexity of our feature rises from: having too many conditions that determine the correct state having the conditions scattered. Some conditions are known at the time of app launch, some are known at the time of onboarding flow commencing, but some others are only known after user identifies their device to us....

December 3, 2025 · 5 min

Part 2 - State Driven Navigation: Tutorial

💡 Read Part 1 first to understand the concept. This post shows you exactly how to implement it. What We’re Building A simple 3-screen onboarding flow: Account Loader Screen → Loads the user’s account in a loader screen Welcome Screen → user taps “Get Started” Device Identification Screen → user enters their devices CMMac Let’s build this with state-driven navigation, step by step. 1 - States States represent every screen your user can be on:...

December 2, 2025 · 4 min

High Level Anatomy of a Camera Capturing Session

I used the following tutorial series from Apple on ‘Capturing and Displaying Photos’. They’re great. Just that it took me a bit to be able to piece together how components from AVFoundation work together. Working with AVFoundation isn’t really the kind where you read documentation and then can piece things together. It’s complicated. You might understand an individual step, but won’t understand when it should be done. There’s just too many components and while it’s not low-level, it’s certainly a different kind of iOS....

August 2, 2025 · 6 min

⚡️ SERIES - Live Activities

The series starts off with some questions and ambiguity in the overall architecture. Then mentions development tips and debugging tips I learned along the way. Hope you can enjoy it. If you don’t know how the regular APNs architecture works. Then stop reading this series. Instead read the following first: What are different types of notifications in iOS and how to configure them correctly? WWDC 2020 - The Push Notifications primer Registering your app with APNs Then play around with notifications a bit yourself....

April 11, 2025 · 1 min

Swift Articles

August 11, 2023 · 0 min

Devtool posts

August 11, 2023 · 0 min

⚡️ SERIES - Interviewing

So my master plan for mastering leetcode is Building foundational understanding about concepts. Identifying concepts. Identify a maximum of 3-5 questions that I would do on repeat to achieve mastery for a given subject. Write down main helper functions that help and assist for handling common edges cases for a given subject. Example: Middle Index for Binary Search, get column for 2D Grid, getting adjacency nodes for 2D grid, doing out of bounds checks for 2D grid....

August 11, 2023 · 6 min
self-contained rv

What Resources Does Apple Provide for teaching iOS to students?

Note: This post has got a bit longer than what I originally intended. You might want to skip to the very end to see the verdict and table first and then read again. I’ve started an iOS training course in my local community. At the beginning I thought it would be easy for me to just start training people with whatever I know. Later I decided to look at some available resources....

September 21, 2022 · 9 min

Unicode Security

This post is the result of some post-discussion on my Swift Strings for iOS interviewing post. Given that characters look like one another or that are invisible code points I thought there might be some room for abuse. Luckily Unicode has great documentation security. At the high level there are two types of security issues: Visual Security Issues Suppose that the user gets an email notification about an apparent problem in their Citibank account....

June 17, 2022 · 5 min
self-contained rv

What is a Self Contained Build Script?

So I had this need to add a brew package named gh into our build script. I spoke with with the team that handled our agents and asked them to add a new package on the agents. I was told that the package has to be included as part of the build script and that build scripts need to be self-contained. At first I didn’t fully understand what ‘self-contained’ means in this context but as I digged more into our Jenkinsfile I learned what it meant....

April 22, 2022 · 4 min