google / google/ground-android

Add support for iOS devices using Kotlin Multiplatform (KMP)

Open
#3,416 0 comments 1 reaction 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.