PokemonLib is a project designed for Pokemon fans that provides information about various Pokemon. This app uses Jetpack Compose, a declarative framework for building user interfaces in Android. With PokemonLib, you can explore the world of Pokemon, learn about their characteristics, abilities, types, and more.
- View a list of Pokémon with the ability to search.
- Detailed information about each pokemon, including image, properties and main parameters.
- Support for dark and light themes for comfortable use at any time of the day.
- Using animations and effects to improve the user experience.
- Application of modern technologies such as Kotlin, Jetpack Compose and Android Architecture Components.
- Minimum SDK level 26
- Kotlin
based, Coroutines
- Flow for asynchronous.
- Jetpack
- Architecture
- MVVM Architecture (View - DataBinding - ViewModel - Model)
- Repository Pattern
- Retrofit2 & OkHttp3: Construct the REST APIs and paging network data.
- Material-Components: Material design components for building some UI components.
- Coil: Image loading.
- Lottie: Animated vector images
- Palette: Extract representative color palettes from images.
- Timber: A logger with a small, extensible API.
PokemonLib is based on the MVVM architecture and the Repository pattern, which follows the Google's official architecture guidance.
The overall architecture of PokemonLib is composed of two layers; the UI layer and the data layer. Each layer has dedicated components and they have each different responsibilities, as defined below:
PokemonLib was built with Guide to app architecture, so it would be a great sample to show how the architecture works in real-world projects.
PokemonLib using the PokeAPI for constructing RESTful API.
PokeAPI provides a RESTful API interface to highly detailed objects built from thousands of lines of
data related to Pokémon.