google / google/ground-android
Add support for iOS devices using Kotlin Multiplatform (KMP)
- Dominant language
- Kotlin
- Stars
- 293
- Forks
- 149
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 42
Description
### Summary
This issue proposes expanding the "Ground" Android application to iOS using Kotlin Multiplatform (KMP). This will allow the team to preserve a majority of existing business logic while meeting the high-performance requirements for geospatial rendering.
### Key Highlights
- Room Persistence: Room now offers KMP support, allowing for the reuse of existing database schemas and DAO interfaces across platforms.
- Dependency Injection: A migration from Hilt to Koin is necessary, as Hilt’s tight coupling with Android components renders it incompatible with KMP.
- UI Framework: To enable cross-platform UI sharing, all remaining XML layouts must be converted to Jetpack Compose.
- Setup XCode project and iOS infrastructure.
Detailed tasks are captured in [this doc](https://docs.google.com/document/d/18ix0KVdrywUbWN_9r0m2OusvSTusAm2ishaqKwRRysQ/r/0-nVoy4XTsCLmh_4qAt2zV5w/edit?tab=t.0#heading=h.ydot0uxxpdpx).
Contributor guide
Assessment
This issue has not been assessed yet.