Nation Explorer is a Compose Multiplatform offline-first mobile app (for both iOS and Android) that offers an exploration of countries worldwide. Leveraging modern technologies, it provides users with an engaging experience to discover and interact with countries across the globe.
- Country Details: Explore comprehensive information about countries, including flags, capital cities, area, languages spoken, currency, population, timezones and intriguing facts.
- Interactive Maps: View countries on maps using Google Maps for Android and Apple Maps for iOS.
- Real-time Weather: Get up-to-date weather updates for each country's capital city.
- Engaging Game: Have some fun while learning! Test your knowledge by matching flags to their countries. Compete globally and see how you rank on the leaderboard.
- Offline First: Use most features offline post the app's first use. Once it connects to the internet initially, it operates offline seamlessly.
- Favorite Countries: Quickly access your preferred countries by marking them as favorites.
- Filter by Continent and Population Size: Easily find countries based on continents and population size.
Nation Explorer - https://bit.ly/nation-explorer
- Compose Multiplatform: UI framework that allows building declarative UIs for multiple platforms (Android, iOS, Desktop, Web)
- Koin: Dependency Injection framework(Koin)
- Voyager: Navigation library(Voyager)
- Ktor Client & Kotlin Serialization: Making requests and handling responses (Ktor)
- Google Maps & Apple Maps: Map integrations (Google Maps, Apple Maps)
- Weather, Country, Geolocation and Country Tidbits APIs: Data sources (Weather API, Country API, Geolocation API, Country Tidbits)
- MongoDB Device Sync: Online leaderboard with live updates (MongoDB Device Sync)
- MOKO MVVM: ViewModel sharing (MOKO MVVM)
- Multiplatform Settings: Persistent key-value pair storage (Multiplatform Settings)
- KStore: Caching for offline support (KStore)
- Libres: Resource sharing (Libres)
- Napier: Logging library (Napier)
- Kamel: Async media loading (Kamel)
- Kotlin Coroutines and Flows: Managing asynchronous tasks and sequences for responsive and concurrent programming
Nation.Explorer.Demo.mp4
Feel free to contribute, report issues, or suggest enhancements!