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