Mobile Applications
Native or cross-platform? A practical answer
For most products, build cross-platform. The gap that made native obviously correct has closed for the great majority of applications, and two native codebases roughly double both the build and every change afterwards.
Choose cross-platform when
- Your app is screens, data, forms, lists, media and notifications. That is most apps.
- You want one change to reach both stores.
- Your team is small. Two codebases need two skill sets and two release processes.
- Time to market matters more than the last 5% of polish.
Choose native when
- The product is a platform capability: serious camera work, AR, background audio, complex Bluetooth, watch or widget-heavy experiences.
- You need a new OS feature the day it ships.
- Performance is the product — high-end games, real-time video processing.
The middle path most people miss
Cross-platform is not all-or-nothing. React Native runs native modules. Build the app once, and drop to native for the one screen that genuinely needs it. You get a single codebase for 95% of the product and full native capability where it earns its cost.
What actually decides success
Not the framework. Publishing discipline decides it: staged rollouts so a bad release reaches 1% rather than everyone, crash reporting wired from day one, a forced-update path for the day you ship something broken, and signing keys that are not on one person's laptop.
We ship React Native and Expo from one codebase, published under live developer accounts, with native modules where a feature earns them. See the apps.