A Kotlin Multiplatform weather application for Android and iOS using Compose Multiplatform.
- Real-time Weather: Current weather conditions for selected locations.
- Daily Forecast: Upcoming weather trends.
- Location Search: Search and save multiple locations.
- Dark Mode Support: Seamlessly switches between light and dark themes.
- Shared UI: Almost 100% UI code sharing between Android and iOS.
- UI: Compose Multiplatform
- Dependency Injection: Koin
- Networking: Ktor
- Serialization: Kotlinx Serialization
- Architecture: MVVM (Model-View-ViewModel) with shared ViewModels.
/shared: Contains all the shared logic, ViewModels, and Compose UI.commonMain: Shared logic and UI for both platforms.androidMain&iosMain: Platform-specific implementations.
/androidApp: Android-specific entry point and configuration./iosApp: iOS-specific Xcode project and entry point.
- Open the project in Android Studio.
- Run the
:androidAppconfiguration.
- Open
iosApp/iosApp.xcworkspacein Xcode. - Run the
iosApptarget on a simulator or device.- Note: Ensure you have a recent version of Xcode installed.
- Koin (Core, Compose, ViewModel)
- Ktor (Client, Content Negotiation, Logging)
- Kotlinx Datetime
- Jetpack Lifecycle (ViewModel)