NL | EN

Two platforms, one person accountable

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".

  • Native on both, no compromise. No React Native or Flutter layer that breaks down on half the features. Real Swift, real Kotlin — each platform the way Apple and Google intended.
  • No translation layer. What changes on iOS, I carry straight into Android. One head that holds both versions.
  • The backend as well. Usually FastAPI in Python, sometimes Django or Flask. A mobile app without a backend is rarely a complete app.
  • One point of contact, one deadline. No handover documents between teams, no surprises on the seam.
  • Tests from day one. Unit, snapshot, UI — on both platforms. Accessibility just as much.
Discuss your project

Proof, not promises

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.

"Isn't cross-platform cheaper?"

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 call

More on how I work

The full story — platforms, open source, client work and approach — is on the homepage.