A modern, cross-platform mobile application for diabetes monitoring and diagnosis, built with Kotlin Multiplatform (KMP) and Compose Multiplatform. This app runs seamlessly on both Android and iOS while sharing a single codebase for logic and UI.
- Cross-Platform UI: 100% shared UI code using Compose Multiplatform.
- AI-Powered Diagnosis: On-device diabetes risk assessment using TensorFlow Lite.
- User Authentication: Secure Signup and Login powered by Firebase Auth.
- History & Search: Store and search through past diagnosis results.
- Settings Management: Persist user preferences locally using DataStore.
- Localization: Fully localized interface (supports English & Arabic).
- Dark/Light Mode: Adaptive theming using Material 3.
| Home (Light) | Home (Dark) |
|---|---|
![]() |
![]() |
| Home Dashboard | Home Dashboard (Dark) |
| Result (Light) | Result (Dark) |
|---|---|
![]() |
![]() |
| Diagnosis Result | Diagnosis Result (Dark) |
| Search (Light) | Search (Dark) |
|---|---|
![]() |
![]() |
| Search History | Search History (Dark) |
- Language: Kotlin
- UI Framework: Compose Multiplatform
- Architecture: MVI (Model-View-Intent)
- Dependency Injection: Koin
- Navigation: Jetbrains Compose Navigation
- Local Storage: DataStore Preferences
- Backend/Cloud:
- Firebase Auth (via GitLive Firebase Kotlin SDK)
- Firebase Realtime Database
- Machine Learning: KFLite (TensorFlow Lite for KMP)
- Date/Time: Kotlinx DateTime
The project follows Clean Architecture principles, organized by Features.
com.elkabsh.diabetes
├── app # App entry point, DI setup, and Main Scaffold
├── auth # Authentication Feature (Login, Signup, Forgot Password)
│ ├── data # Repository implementations & Remote sources
│ ├── domain # Repository interfaces & UseCases
│ └── presentation # UI Screens (Login, Signup) & ViewModels
├── diagnosis # Core Feature: Diagnosis & History
│ ├── data # TensorFlow Lite integration & Room Database
│ ├── domain # Business logic & Prediction UseCases
│ └── presentation # Home, Search, Result, & Prediction screens
├── settings # User Settings & Preferences
├── core # Shared components, Utilities, & Base classes
└── theme # Material 3 Design System & Resources
composeApp: The main shared module.commonMain: Contains 99% of the code (UI & Logic).androidMain/iosMain: Platform-specific drivers (e.g., Koin init, Platform implementations).
iosApp: Thin wrapper for the iOS entry point.





