DexMatic is an AI-powered digital Rolodex for Android and iOS. It lets you scan or import business cards, performs on-device OCR, parses contact details, enriches them via services like Google Places and LinkedIn, and keeps everything synced to the cloud.
- Kotlin Multiplatform for shared business logic
- Jetpack Compose for Android UI
- SwiftUI for iOS UI
- Ktor for networking
- GraphQL/REST sync service
architecture/ — design docs & diagrams
shared/ — Kotlin Multiplatform core (OCR, models, networking)
androidApp/ — Android app (Jetpack Compose)
iosApp/ — iOS app (SwiftUI)
- Kotlin Multiplatform scaffold in
shared/ - Gradle (8.3.0) + Kotlin plugin (1.9.21) configured
- AndroidX & Compose BOM enabled,
android.useAndroidX=true
- Camera → OCR flow
•ScanCardScreencaptures camera preview, stubs OCR viaFakeOcrService
•CameraViewModeldrives UI states (Idle, Loading, Success, Error) - Navigation via Compose Navigation (
NavGraph.kt)
•scan→review→listdestinations wired up - Review & List screens stubbed (
ReviewCardScreen,ContactListScreen) - UI Theme
•Color.kt,Typography.kt,Shape.kt,Theme.kt
• MaterialComponents DayNight base theme - Build & run on emulator / device (Gradle tasks:
:androidApp:installDebug)
- Review UI & Edit
- Flesh out
ReviewCardScreenfor manual corrections, confirm/save button
- Flesh out
- Contact List
- Load & display saved contacts in
ContactListScreen - Swipe-to-delete, detail view
- Load & display saved contacts in
- Persistence Layer
- Room (Android) / Core Data (iOS) integration
- Real OCR
- Hook up ML Kit (Android) & Vision/Core ML (iOS) instead of stub
- Data Enrichment
- Google Places, LinkedIn lookups
- Networking & Sync
- Ktor client + GraphQL/REST sync service, conflict resolution
- iOS App
- SwiftUI equivalents of all screens & flow under
iosApp/
- SwiftUI equivalents of all screens & flow under
- CI/CD & Tests
- Unit & UI tests for shared logic and platform apps
- GitHub Actions / Fastlane pipelines
- v0.1.0 Release
- Final polish, docs, store listings