Most apps need to run on iOS and Android. Usually that means two teams, two codebases, and one bug on the seam between them — exactly the spot nobody feels they own.
I build both sides myself. Native Swift and SwiftUI on iOS, native Kotlin with Jetpack Compose on Android, and the Python backend that feeds them. One pair of hands, no handovers, no translation layer.
One developer who knows both the iOS and the Android version spots where they drift apart before it becomes a bug. No "that's the other team's problem".
Not theory. My own Sweather runs on iOS and Android — both built by me, on the same Python backend.
Plus ten years of native iOS for places where almost-done isn't an option: CoronaMelder, the NOS app, the Dutch Parliament and Rabobank. And merged pull requests in some of the largest iOS open source projects in the world — Signal, Lottie and Firefox. See the list.
Sometimes. For a simple app with little platform-specific behaviour, React Native or Flutter is fine — and I'll tell you so. Pushing back comes with the job.
But the moment it comes down to fluid UI, CarPlay, widgets, watchOS or deep OS integration, native wins back the time you lost on the "shortcut". No framework religion, just the right tool for the job.
Schedule a callThe full story — platforms, open source, client work and approach — is on the homepage.