I've been working on a Weather app using Kotlin Multiplatform and Compose Multiplatform. This app uses the weatherapi.
All UI is shared between iOS and Android, using Compose Multiplatform.
Features:
🏙️ Get weather for current location in first use.
⛅ Show current day weather, including wind, rain, sunset, sunrise, moonset and moonrise.
🌦️ Show tomorrow's weather.
☀️ Show three days forecast.
🔍 Search cities.
💙 Save favorite cities.
❓ Request location permissions to the users.
Libraries used:
- Kamel - Load remote images.
- Voyager - Compose navigation.
- moko-resources - String resources.
- moko-mvvm - Used to provide ViewModel implementations.
- SqlDelight - Local database.
- DataStore - Used to save preferences.
- moko-permissions - Handle user permissions in both platforms.
- ktor - Used for networking
- koin - For dependency injection
- kotlinx-datetime - Date-time related operations
- BuildKonfig - Read values from gradle files
Github repo:
https://github.com/guerrerorodrigo/compose-multiplatform-weather-app
Slack Conversation