SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Kotlin iOS Projects
-
compose-multiplatform
Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
-
-
PeopleInSpace
Kotlin Multiplatform sample with SwiftUI, Jetpack Compose, Compose for Wear, Compose for Desktop, and Compose for Web clients along with Ktor backend.
-
-
-
-
kmp-production-sample
This is an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile. It's a simple RSS reader, and you can download it from the App Store and Google Play. It's been designed to demonstrate how KMM can be used in real production projects.
-
-
They had fixed a bug in the version that supported the new Kotlin release. Issue
-
https://github.com/rickclephas/KMP-NativeCoroutines.git
-
> But it feels a bit weird to client side construct an Exception only to stuff it into a Result.error(...) instead of actually throwing it
yep, `kotlin.Result` constraining your error type to `Throwable` is a real headache as it forces you to still model your domain logic via exceptions. it also means people can still accidentally throw these exceptions. not to mention the overhead of creating stack traces per instantiation unless you disable that on every subclass.
i recommend using https://github.com/michaelbull/kotlin-result?tab=readme-ov-f... (which has a nice breakdown of all the other reasons to avoid `kotlin.Result`)
-
Project mention: MVI as a Unifying Architecture Pattern Across KMP, SwiftUI, and Compose: Implementing a Shared State Machine | dev.to | 2026-03-10
The docs do not mention this, but this also solves deep-link handling — deserialize the target state and initialize your store with it. ## Gotchas **Do not share ViewModels.** ViewModels carry lifecycle semantics from `androidx.lifecycle` or `ObservableObject`. Share the state machine layer underneath instead. **Encode side effects as data.** Returning `List` from the reducer instead of launching coroutines inline keeps it testable. The moment you call `launch` inside a reducer, you have lost the purity guarantee. **Handle exhaustive `when` branches.** Kotlin enforces this for sealed interfaces, but forgetting a new intent variant after adding one is the most common source of bugs during feature growth. Enable the `when` exhaustiveness compiler warning. **SKIE vs KMP-NativeCoroutines.** Pick one approach for bridging `StateFlow` to Swift and stick with it. Mixing both in the same project leads to confusing cancellation behavior. ## Conclusion The pattern is: share the state machine, not the ViewModel. Keep your reducer and state types in `commonMain` as pure Kotlin. Let each platform own its thin view-binding layer. That boundary minimizes coupling while maximizing code reuse — in our case, 60-70% of feature code lives in shared modules. I have tried half a dozen shared-UI architectures at this point. MVI is the one still standing after a year in production. Start with one feature, prove it works for your team, and expand from there. **Resources:** - [Kotlin Multiplatform docs](https://kotlinlang.org/docs/multiplatform.html) - [SKIE for Swift interop](https://skie.touchlab.co/) - [kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization)
-
sceneview
3D & AR SDK for Android (Jetpack Compose + Filament), iOS (SwiftUI + RealityKit), and Web. AI-first: llms.txt, MCP server, Copilot/Cursor rules. The only Compose-native 3D library.
-
-
-
moko-mvvm
Model-View-ViewModel architecture components for mobile (android & ios) Kotlin Multiplatform development
-
cpu-info
CPU Info is a multiplatform application which provides information about device hardware and software
-
-
-
FlowMVI
Architecture Framework for Kotlin. Reuse every line of code. Handle all errors automatically. No boilerplate. Build features in minutes. Analytics, metrics, debugging in 3 lines of code. Make all code thread-safe. 50+ features.
Project mention: What are AI agent skills and how to use them - complete breakdown with examples | dev.to | 2026-01-12Recently I started seriously developing skills. I even created a marketplace of Claude plugins for Respawn, where I keep a skill for ksrc and a skill for FlowMVI. I'm increasingly using and creating different skills, and many of you are asking: "What even is this?". And I also see articles on the internet that incorrectly explain and incorrectly recommend creating and using skills.
Kotlin iOS discussion
Kotlin iOS related posts
-
KMP Native UI view model injection for iOS and Android
-
Teaching Claude to QA a mobile app
-
MVI as a Unifying Architecture Pattern Across KMP, SwiftUI, and Compose: Implementing a Shared State Machine
-
Refuelling your Jetpack
-
https://github.com/RunanywhereAI/runanywhere-sdks/pull/296
-
Demo: On-device browser agent (Qwen) running locally in Chrome
-
Show HN: We added iOS real device support to Maestro
-
A note from our sponsor - SaaSHub
www.saashub.com | 13 Jun 2026
Index
What are some of the best open-source iOS projects in Kotlin? This list will help you:
| # | Project | Stars |
|---|---|---|
| 1 | compose-multiplatform | 19,120 |
| 2 | Maestro | 14,372 |
| 3 | FXGL | 4,820 |
| 4 | react-native-keychain | 3,460 |
| 5 | PeopleInSpace | 3,347 |
| 6 | vico | 3,078 |
| 7 | KorGE | 3,016 |
| 8 | Splitties | 2,585 |
| 9 | kmp-production-sample | 2,273 |
| 10 | Emoji | 1,632 |
| 11 | moko-resources | 1,346 |
| 12 | KMP-NativeCoroutines | 1,312 |
| 13 | kotlin-result | 1,254 |
| 14 | SKIE | 1,244 |
| 15 | sceneview | 1,223 |
| 16 | menu | 1,223 |
| 17 | Reaktive | 1,215 |
| 18 | qBitController | 1,215 |
| 19 | moko-mvvm | 1,092 |
| 20 | cpu-info | 1,025 |
| 21 | compose-webview-multiplatform | 987 |
| 22 | godot-jvm | 929 |
| 23 | FlowMVI | 926 |