🗡️ Pokedex demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack (Room, ViewModel), and Material Design based on MVVM architecture.
Go to the Releases to download the latest APK.
Tech stack & Open-source libraries
- Minimum SDK level 21
- Kotlin based, Coroutines + Flow for asynchronous.
- Hilt for dependency injection.
- Lifecycle – Observe Android lifecycles and handle UI states upon the lifecycle changes.
- ViewModel – Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
- DataBinding – Binds UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
- Room Persistence – Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
- MVVM Architecture (View – DataBinding – ViewModel – Model)
- Bindables – Android DataBinding kit for notifying data changes to UI layers.
- Repository Pattern
- Retrofit2 & OkHttp3 – Construct the REST APIs.
- Sandwich – Construct a lightweight and modern response interface to handle network payload for Android.
- Moshi – A modern JSON library for Kotlin and Java.
- Glide, GlidePalette – Loading images from network.
- TransformationLayout – implementing transformation motion animations.
- WhatIf – Check nullable objects and empty collections more fluently.
- Bundler – Android Intent & Bundle extensions, which insert and retrieve values elegantly.
- Timber – A logger with a small, extensible API.
- Material-Components – Material design components for building ripple animation, and CardView.
- Turbine – A small testing library for kotlinx.coroutines Flow.
- Custom Views
Pokedex is based on the MVVM architecture and the Repository pattern.
Pokedex 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.
Find this repository useful? ❤️
Designed and developed by 2020 skydoves (Jaewoong Eum) Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.