# Pokedex **Repository Path**: huaju/Pokedex ## Basic Information - **Project Name**: Pokedex - **Description**: 🗡️ Android Pokedex using Dagger Hilt, Motion, Coroutines, Jetpack (Room, ViewModel, LiveData) based on MVVM architecture. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-07-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
Pokedex is a small demo application based on modern Android application tech-stacks and MVVM architecture.
This project is for focusing especially on the new library Dagger-Hilt of implementing dependency injection.
Also fetching data from the network and integrating persisted data in the database via repository pattern.
## Tech stack & Open-source libraries
- Minimum SDK level 21
- [Kotlin](https://kotlinlang.org/) based + [Coroutines](https://github.com/Kotlin/kotlinx.coroutines) for asynchronous.
- Dagger-Hilt (alpha) for dependency injection.
- JetPack
- LiveData - notify domain layer data to views.
- Lifecycle - dispose of observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Room Persistence - construct a database using the abstract layer.
- Architecture
- MVVM Architecture (View - DataBinding - ViewModel - Model)
- Repository pattern
- [Retrofit2 & OkHttp3](https://github.com/square/retrofit) - construct the REST APIs and paging network data.
- [Sandwich](https://github.com/skydoves/Sandwich) - construct lightweight http API response and handling error responses.
- [Moshi](https://github.com/square/moshi/) - A modern JSON library for Kotlin and Java.
- [Glide](https://github.com/bumptech/glide), [GlidePalette](https://github.com/florent37/GlidePalette) - loading images.
- [TransformationLayout](https://github.com/skydoves/transformationlayout) - implementing transformation motion animations.
- [WhatIf](https://github.com/skydoves/whatif) - checking nullable object and empty collections more fluently.
- [Timber](https://github.com/JakeWharton/timber) - logging.
- [Material-Components](https://github.com/material-components/material-components-android) - Material design components like ripple animation, cardView.
- Custom Views
- [Rainbow](https://github.com/skydoves/rainbow) - An easy way to apply gradations and tinting for Android.
- [AndroidRibbon](https://github.com/skydoves/androidribbon) - A simple way to implement a beautiful ribbon with the shimmering on Android.
- [ProgressView](https://github.com/skydoves/progressview) - A polished and flexible ProgressView, fully customizable with animations.
## Architecture
Pokedex is based on MVVM architecture and a repository pattern.

## Open API
Pokedex using the [PokeAPI](https://pokeapi.co/) for constructing RESTful API.