iOS and Android, from one pair of hands
Native Swift and SwiftUI, native Kotlin and Jetpack Compose, plus the Python backend.
Specification
- STACK
- Swift and SwiftUI on iOS, Kotlin and Jetpack Compose on Android. Both native, no cross-platform layer.
- BACKEND
- Python as well: usually FastAPI, sometimes Django or Flask. App and backend from the same hand.
- TESTED
- Unit, snapshot and UI tests on both platforms. Accessibility from day one, not bolted on later.
- SINCE
- Native mobile since 2015. My own apps now ship on the App Store and on Google Play.
Two teams for iOS and Android means two codebases and one bug on the seam between them, exactly the spot nobody owns. I write both sides myself, native, plus the Python backend underneath. One pair of hands, no handover, no translation layer.
Email your projectYou send one email. I reply within one working day. No sales funnel, no bots.
Native on both platforms, or cross-platform?
- Simple app, little platform-specific behaviour, validating fast
- PickCross-platform, React Native or Flutter
- WhyI will say so myself. Without deep OS integration, native gains too little to justify two codebases.
- Fluid UI, widgets, CarPlay, watchOS or deep OS integration
- PickNative on both platforms UsuallyThis is the usual answer.
- WhyThat is where a cross-platform layer breaks down, and the time you saved goes into workarounds.
- iOS and Android must stay feature-equal and ship together
- PickOne developer on both sides
- WhySomeone who holds both versions in his head sees them drift before it turns into a bug on the seam.
- You already have an Android team, iOS has to join
- PickI take iOS and line up with their Android
- WhyThat is how Plein2 for the Dutch Parliament went: I built iOS, an Android developer built the other side.
- App and backend sit with separate parties
- PickApp and backend from the same hand
- WhySweather runs on iOS, Android and my own Python backend. A change to the contract is then one change.
Proof, not a promise
- Sweather runs native on iOS and Android, both built by me
- DetailOne shared Python backend underneath, real-time scores for 47 sports.
- Source: Google Play
- changemonitor.io is on both stores as well
- DetailMy own website monitoring product, iOS and Android, backend included.
- Source: changemonitor.io
- NOS Jeugdjournaal rebuilt from scratch in SwiftUI and Kotlin Multiplatform
- DetailWith unit and snapshot tests, alongside the Android, backend and design teams.
- Source: App Store
- CoronaMelder: 557 commits, second largest contributor on the iOS app
- DetailWrote the background task, decoy traffic, SSL pinning and iOS 12.5 support. Source is public.
- Source: GitHub
- Merged pull requests in Signal, Lottie and Firefox
- DetailThe proof that I am productive in an unfamiliar codebase within a day.
- Source: Open source
Read on
Sheet revised 2026-09-29. Every figure on this page can be checked through the sources above.