Welcome to the first-ever edition of Mobile Dev weekly, hope you are enjoying your Sunday!
In today's newsletter, we will be covering the following:
- Kotlin Multiplatform experiences after 6 months and 2 production apps 👨🏻💻
- Skip frameworks 1.0 release 🎉
- Coordinator pattern for navigation in SwiftUI is possible 🏋️
Kotlin Multiplatform success stories
Over the past 6 months, we have successfully shipped two production Kotlin Multiplatforms applications for iOS and Android platforms 📱
We built the first app from scratch while the second one was already live and written in React Native at the moment we took over the project and moved it to KMP. Two main challenges we had with the second app were:
- Sharing view models properly with the iOS codebase, specifically with SwiftUI, due to lack of the documentation and production apps in KMP now which could serve us as a reference
- Make sure we don't break anything because the app already had 80.000 active users at that time
We managed to do both, and you can read more about it in the link above!
Skip 1.0 has been released
As some of you might already heard, Skip is a cross-platform framework that allows you to write all of your code in Swift and SwiftUI, and then compile it to Kotlin and Compose and run it for Android also.
While this is great news for all of the indie iOS developers, me and my team were heavily exploring KMP and CMP, where all of the code-sharing part is in Android, we can't wait to get our hands on this one and try it out, where all of the code-sharing happens in iOS.
Coordinator pattern in SwiftUI
For quite some time now, we have struggled to find a good and scalable navigation pattern for SwiftUI navigation. I have worked on multiple projects where we tried to make the navigation in SwiftUI work, starting with NavigationLinks back in the day, and then with NavigationStack, but nothing seemed to work. As soon as all those apps started getting bigger, we always ended up reverting to UINavigationController + UIHostingController + Coordinators.
Then, a couple of months ago, I got a recommendation for the Stinsen library for SwiftUI navigation, and as soon as I started working with it, I knew it had potential. Now, after a couple of weeks of actively using it, I couldn't recommend it more. You can check it out at the link above, and let me know if you have any questions!