Skip to content

Migrate FHIR Engine to Kotlin Multiplatform (KMP) #2948

@FikriMilano

Description

@FikriMilano

Migrate the existing FHIR Engine to Kotlin Multiplatform (KMP) to enable native support for Android, iOS, and JVM/Desktop while leveraging KMP compatible libraries (Room, Datastore, kotlin-fhir) and preserving existing entities, DAOs, and migrations with minimal changes.

  1. Engine Setup (Init engine-kmp) Setup Empty Engine KMP module #2959
  2. Core Data Model Migration
  3. Database Layer Migration
    • Move database definition, room entities, DAOs to commonMain.
    • Database builders and encryption implementations with the Kotlin expect/actual for each platform
    • Use BundledSQLiteDriver so other platforms can understand SQLite
    • Use Ktor to replace Retrofit and Okhttp
  4. Sync Layer Migration
    • Already pure kotlin and coroutines
    • Move FhirSynchronizer, ConflictResolver, DataSource, SyncJobStatus, etc to commonMain
    • Use Kermit to replace Timber for logging
    • Use kotlinx-serialization to replace Gson

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions