Mobile
Cross-platform apps with React Native — offline-first patterns, sync and shipping to both stores.
Deep Linking That Works From a Cold Start
A link that opens the right screen when the app is already running, and the home screen when it is not, is the standard half-finished implementation.
Where Auth Tokens Belong on a Phone
AsyncStorage is a plain file on disk. Keychain and Keystore exist for exactly this, and the difference matters more than most teams assume.
The App Store Rejections You Can Avoid
Most first submissions are rejected, and most rejections are for the same handful of things. Here they are, with what to do before you submit.
Why Nobody Opens Your App a Second Time
Most apps lose the majority of users within a week, and most of that happens in the first session. What actually causes it, and what fixes it.
One API, Two Clients: Sharing Between Web and Mobile
Share the contract, the types and the validation. Share the interface layer and you get something slightly wrong on both platforms.
Push Notifications Are Not Guaranteed Delivery
Every layer between your server and a phone can drop a notification silently. Design for that, and ask for the permission at the right moment.
Gestures at 60fps in React Native
A drag that lags by two frames feels broken in a way users cannot name. Keeping animation off the JavaScript thread is the whole technique.
Expo in Production: What It Solves and What It Does Not
Expo is no longer the beginner option you outgrow. Here is what it actually removes from a React Native project, and where it still bites.
Native App or PWA? The Decision in Practice
Most people asking for an app need a fast mobile site. Some genuinely need the store. The question that separates them is not technical.
Building Offline-First in React Native
An app that needs a connection to show data the user already owns is broken on a train. Local-first storage, sync, and the conflicts nobody plans for.