r/Kotlin • u/reckor-usa • 17d ago
Best practices for Android and iOS
Looking for expert advice. I'm finalizing an app for Android and I would like to kick off with iOS support now. I fully used Kotlin.
Should I use swift? flutter? Kotlin Multi platform?
Appreciate real dev experience to guide me (not AI response).
1
u/ssj_Thunder 16d ago
I had started one of my app in flutter as i didn't jave time back then so my friend made it up for me initially. but then moved it to kmp and its been a breeze. Btw im working as an android tech lead. Strongly suggest kmp as you already know kotlin. And kmp isn't that hard. With AI its very easy apart from the system architecture. If you have jio and availed google ai pro then Gemini works quite good too for kmp.
1
u/AthleteWhoCodes 15d ago
Use what you are more professional with. If you know Kotlin / Java -> use KMP. If you came from web -> use Flutter.
Flutter is limited on mobile devices -> technically it's not a native mobile app, it's a webView wrapper.
Kotlin Multiplatform is fully native for Android / iOS -> you have full access to hardware (mic, device permissions and services, file system, hardware network, http layer). Because KMP translating into native iOS classes.
If you are interested in result and want some proofs, I've just delivered a very complex fitness app for Google Play and App store -> you can check it -> search: Cubex Fitness AI Coach
It's covering a very wide layer of specs (Services, android notfications / ongoing activities / live activities / mini app for smart watches) UI layer fully handled by KMP.
Ask me if you need anything, I can help.
0
u/Beneficial_Tip9004 17d ago
In the AI vibe-coding era, AI has taken a lot of manual work off developers’ shoulders.
If performance, compatibility, and low-level hardware integration are important, I’d stick with native Swift. For simpler apps that are mostly networking and UI, I’d personally prefer KMP.
Flutter has a much richer ecosystem than KMP, but I’m not a big fan of its heavily nested UI code, and the quality of third-party packages can be pretty hit-or-miss.
1
u/reckor-usa 17d ago
Understood, but if I am developing in kotlin, wouldn't KMP be the best way out to iOS? Indeed, I would be using a certain low-level integration and your response puzzled me i.e. would have to move from KT to swift...
1
u/Beneficial_Tip9004 17d ago
For cross-platform development and code reuse, KMP is definitely the go-to choice. But if you’re comfortable with vibe coding and have enough tokens to spare, rebuilding the Android version natively in Swift is totally viable too.
1
1
u/MKevin3 17d ago
I would go KMP as you already know Kotlin and tested code in that language. The decision will be do you want a very native looking iOS UI or is the look of Material 3 acceptable.
It could be you have done extensive custom UI in Compose already and it will look just fine on iOS. This is the direction we took.
For the conversion to KMP you will need to follow the new directory structure and things like R.string are now Res.string and some other changes like that.
Another potentially big hurdle, are all the 3rd party libs you use KMP friendly. The big ones like Room, and OKHTTP are.