GLEA is a demo Pokedex application which lists (😏) and shows Pokemon details, such as type and stats, whenever the user selects one. The app has been designed using Clean Architecture and MVI.
GLEA uses the PokeAPI for retrieving pokemon details that are updated in the database, allowing offline use once the database has been populated
- Filtered list by type
- Advanced search by name and range of stats
- Save single pokemon or category in a User Preferences app section
- Minimum SDK level 21
- MVI Architecture
- Repository pattern
- Kotlin, Coroutines + Flow to collect data.
- Koin for dependency injection.
- JetPack
- Paging 3 with Remote Mediator to implement paging via layered (network + db) source
- [ViewModel] (https://developer.android.com/topic/libraries/architecture/viewmodel)
- [Room] (https://developer.android.com/training/data-storage/room) - database
- Retrofit2 & OkHttp3 - to build the REST APIs and load data from network.
- Moshi - JSON parsing library for Kotlin and Java.
- Glide
- Material-Components - to implement BottomSheet for Pokemon detail section