This is a simple Android application built with Jetpack Compose and Kotlin, using the REST Countries API to display a list of countries based on user input.
- Real-time search bar: dynamically filters countries as the user types.
- Displays essential country information such as name, flag, and region.
- Clean and modern UI powered by Jetpack Compose.
The app follows a layered architecture inspired by Android's Clean Architecture + MVVM.
data: Contains DTOs, Retrofit service, and repository implementations.ui: Composable views and ViewModels.
The
domainlayer has been omitted intentionally due to the simplicity of the project. Introducing it would add unnecessary complexity for this use case.
📌 A conceptual overview of the architecture is illustrated below:
- Kotlin
- Jetpack Compose — Declarative UI toolkit
- MVVM — Model-View-ViewModel pattern
- Dagger Hilt — Dependency injection
- Retrofit — HTTP client for API communication
- Coroutines + Flow — Asynchronous and reactive programming
