|
1 | | -# Pokedex |
2 | | -Android Pokedex using Dagger Hilt, Motion, Couroutines, Jetpack (Room, ViewModel, LiveData) based on MVVM architecture |
| 1 | +<h1 align="center">Pokedex</h1> |
| 2 | + |
| 3 | +<p align="center"> |
| 4 | + <a href="https://opensource.org/licenses/Apache-2.0"><img alt="License" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"/></a> |
| 5 | + <a href="https://android-arsenal.com/api?level=21"><img alt="API" src="https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat"/></a> |
| 6 | + <a href="https://github.com/skydoves"><img alt="Profile" src="https://skydoves.github.io/badges/skydoves.svg"/></a> |
| 7 | +</p> |
| 8 | + |
| 9 | +<p align="center"> |
| 10 | +Pokedex is a small demo application based on modern Android application tech-stacks and MVVM architecture.<br>This project is for focusing especially on the new library Dagger-Hilt of implementing dependency injection.<br> |
| 11 | +Also fetching data from the network and integrating persisted data in the database via repository pattern. |
| 12 | +</p> |
| 13 | +</br> |
| 14 | + |
| 15 | +<p align="center"> |
| 16 | +<img src="/previews/screenshot.png"/> |
| 17 | +</p> |
| 18 | + |
| 19 | +## Download |
| 20 | +Go to the [Releases](https://github.com/skydoves/Pokedex/releases) to download the lastest APK. |
| 21 | + |
| 22 | + |
| 23 | +<img src="/previews/preview.gif" align="right" width="32%"/> |
| 24 | + |
| 25 | +## Tech stack & Open-source libraries |
| 26 | +- Minimum SDK level 21 |
| 27 | +- [Kotlin](https://kotlinlang.org/) based + [Coroutines](https://github.com/Kotlin/kotlinx.coroutines) for asynchronous. |
| 28 | +- Dagger-Hilt (alpha) for dependency injection. |
| 29 | +- JetPack |
| 30 | + - LiveData - notify domain layer data to views. |
| 31 | + - Lifecycle - dispose of observing data when lifecycle state changes. |
| 32 | + - ViewModel - UI related data holder, lifecycle aware. |
| 33 | + - Room Persistence - construct a database using the abstract layer. |
| 34 | +- Architecture |
| 35 | + - MVVM Architecture (View - DataBinding - ViewModel - Model) |
| 36 | + - Repository pattern |
| 37 | +- [Retrofit2 & OkHttp3](https://github.com/square/retrofit) - construct the REST APIs and paging network data. |
| 38 | +- [Sandwich](https://github.com/skydoves/Sandwich) - construct lightweight http API response and handling error responses. |
| 39 | +- [Moshi](https://github.com/square/moshi/) - A modern JSON library for Kotlin and Java. |
| 40 | +- [Glide](https://github.com/bumptech/glide) - loading images. |
| 41 | +- [TransformationLayout](https://github.com/skydoves/transformationlayout) - implementing transformation motion animations. |
| 42 | +- [WhatIf](https://github.com/skydoves/whatif) - checking nullable object and empty collections more fluently. |
| 43 | +- [Timber](https://github.com/JakeWharton/timber) - logging. |
| 44 | +- [Material-Components](https://github.com/material-components/material-components-android) - Material design components like ripple animation, cardView. |
| 45 | +- Custom Views |
| 46 | + - [Rainbow](https://github.com/skydoves/rainbow) - An easy way to apply gradations and tinting for Android. |
| 47 | + - [AndroidRibbon](https://github.com/skydoves/androidribbon) - A simple way to implement a beautiful ribbon with the shimmering on Android. |
| 48 | + - [ProgressView](https://github.com/skydoves/progressview) - 🌊 A polished and flexible ProgressView, fully customizable with animations. |
| 49 | + |
| 50 | +## Architecture |
| 51 | +Pokedex is based on MVVM architecture and a repository pattern. |
| 52 | + |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | +## Find this repository useful? :heart: |
| 57 | +Support it by joining __[stargazers](https://github.com/skydoves/Pokedex/stargazers)__ for this repository. :star: <br> |
| 58 | +And __[follow](https://github.com/skydoves)__ me for my next creations! 🤩 |
| 59 | + |
| 60 | +# License |
| 61 | +```xml |
| 62 | +Designed and developed by 2020 skydoves (Jaewoong Eum) |
| 63 | + |
| 64 | +Licensed under the Apache License, Version 2.0 (the "License"); |
| 65 | +you may not use this file except in compliance with the License. |
| 66 | +You may obtain a copy of the License at |
| 67 | + |
| 68 | + http://www.apache.org/licenses/LICENSE-2.0 |
| 69 | + |
| 70 | +Unless required by applicable law or agreed to in writing, software |
| 71 | +distributed under the License is distributed on an "AS IS" BASIS, |
| 72 | +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 73 | +See the License for the specific language governing permissions and |
| 74 | +limitations under the License. |
| 75 | +``` |
0 commit comments