A Kotlin multiplatform playground project for getharvest time logger clone
HarvestTime KMM
Multi-Platform Harvest Time Tracking clone project built with SwiftUI, Jetpack Compose, Compose for Wear OS,. Currently running on
- Desktop JVM (Jetpack Compose) ? WIP
- Android (Jetpack Compose) ? WIP
- iOS (SwiftUI) ? WIP
- macOS (SwiftUI) ? WIP
- Web (ReactJS) ? WIP
- Android App Widget ⚠️ TODO
- Wear OS (Compose for Wear OS) ⚠ TODO
- iOS App Widget (SwiftUI) ⚠️ TODO
- watchOS (SwiftUI) ⚠️ TODO
Build using PraxisKMP as the base project.
API
The Harvest API written in SpringBoot is WIP. Find the repo from here.
- Find Organization ✅ DONE
- Sign In User ✅ DONE
- Sign Up User ✅ DONE
- Forgot Password ? WIP
- Change Password ? WIP
TODOs
- Koin does not allow to return dependencies with await() which affects providing SqlDriver on JSPlatform. Figure out a way for proper DI for SQlDriver. see issue here: InsertKoinIO/koin#388
Screenshots
- Android (Jetpack Compose)
- iOS (SwiftUI)
- Web (ReactJS)
- Compose Desktop (Compose for Desktop)
- Android Wear OS (Compose for Wear OS)
- watchOS (SwiftUI)
- macOS (SwiftUI)
Languages, libraries and tools used
- Kotlin
- Kotlin Coroutines
- Kotlinx Serialization
- Ktor client library
- Android Architecture Components
- Koin
- SQLDelight
- Jetpack Compose
- SwiftUI
- KMP-NativeCoroutines