Skip to content

razvanred/rest-countries-mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

43 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‡΅πŸ‡ͺ REST Countries

CI ktlint

The one and only Android application that displays the countries from the REST Countries public API.

Device screenshot of the Countries screen on a Pixel 9A Device screenshot of the "Republic of Croatia" country detail screen on a Pixel 9A

🌟 Tech stack

  • πŸ›‚ Separated Gradle subprojects for each data layer
  • πŸ’‰ Dependency Injection through Koin
  • 🌊 Async calls and Reactive Flows through Kotlinx Coroutines
  • 🌍 Remote fetching from the REST API through Ktor Client
  • πŸ“„ Data serialization through Kotlinx Serialization
  • πŸ” Caching on a local database with AndroidX Room
  • πŸ“¦ Different data layer handling through Store
  • 🎨 UI implemented using Jetpack Compose, with a separated Design System module
  • ❗️ Network errors clearly propagated through layers and displayed to the user
  • πŸ“Έ Screenshot testing with Paparazzi
  • βš™οΈ Unit tests using:
  • 🦾 Instrumented tests
  • 🧩 Shared build logic between subprojects through convention plugins

πŸ›£ Roadmap for 1.0

  • Enhance README.md with device screenshots
  • Create more instrumented tests
  • Work on Compose performance optimizations
  • Migrate :data:repository layer to Store
  • Delete orphan columns from language, continent, currency, capital tables by creating a database trigger
  • Move common modules to Kotlin Multiplatform
  • Create iOS application & UI implementation with SwiftUI
  • Validate external libraries licenses through Licensee
  • Create a proper CD pipeline

πŸ’Ÿ Huge thanks to…

  • Chris Banes, with his tivi.app: his project not only taught me during the years about the Android development, but also shaped me as a developer in a general way
  • Although I never participated to this event, the DroidKaigi conference applications helped me during the early stages of my journey, and I am deeply grateful for the hard work the team is putting every year
  • Now in Android: A fully functional Android app built entirely with Kotlin and Jetpack Compose
  • All the contributors of the mentioned libraries
  • REST Countries API contributors

Releases

No releases published

Contributors 2

  •  
  •