|
1 | | -# MarvelHeroes |
2 | | -MarvelHeroes |
| 1 | +<h1 align="center">MarvelHeroes</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 | +MarvelHeroes is a demo application based on modern Android application tech-stacks and MVVM architecture.<br> |
| 11 | +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><br> |
| 18 | + |
| 19 | +## Download |
| 20 | +Go to the [Releases](https://github.com/skydoves/MarvelHeroes/releases) to download the lastest APK. |
| 21 | + |
| 22 | +<img src="/previews/preview.gif" align="right" width="32%"/> |
| 23 | + |
| 24 | +## Tech stack & Open-source libraries |
| 25 | +- Minimum SDK level 21 |
| 26 | +- [Kotlin](https://kotlinlang.org/) based + [Coroutines](https://github.com/Kotlin/kotlinx.coroutines) for asynchronous. |
| 27 | +- JetPack |
| 28 | + - LiveData - notify domain layer data to views. |
| 29 | + - Lifecycle - dispose of observing data when lifecycle state changes. |
| 30 | + - ViewModel - UI related data holder, lifecycle aware. |
| 31 | + - Room Persistence - construct a database using the abstract layer. |
| 32 | +- Architecture |
| 33 | + - MVVM Architecture (View - DataBinding - ViewModel - Model) |
| 34 | + - Repository pattern |
| 35 | + - [Koin](https://github.com/InsertKoinIO/koin) - dependency injection |
| 36 | +- Material Design & Animations |
| 37 | +- [Retrofit2 & Gson](https://github.com/square/retrofit) - construct the REST APIs |
| 38 | +- [OkHttp3](https://github.com/square/okhttp) - implementing interceptor, logging and mocking web server |
| 39 | +- [Glide](https://github.com/bumptech/glide) - loading images |
| 40 | +- [TransformationLayout](https://github.com/skydoves/transformationlayout) - implementing transformation motion animations |
| 41 | +- [WhatIf](https://github.com/skydoves/whatif) - checking nullable object and empty collections more fluently |
| 42 | +- [DiscreteScrollView](https://github.com/yarolegovich/DiscreteScrollView) - implementing a scrollable list of items |
| 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 | + |
| 46 | +## Find this repository useful? :heart: |
| 47 | +Support it by joining __[stargazers](https://github.com/skydoves/MarvelHeroes/stargazers)__ for this repository. :star: <br> |
| 48 | +And __[follow](https://github.com/skydoves)__ me for my next creations! 🤩 |
| 49 | + |
| 50 | +# License |
| 51 | +```xml |
| 52 | +Designed and developed by 2020 skydoves (Jaewoong Eum) |
| 53 | + |
| 54 | +Licensed under the Apache License, Version 2.0 (the "License"); |
| 55 | +you may not use this file except in compliance with the License. |
| 56 | +You may obtain a copy of the License at |
| 57 | + |
| 58 | + http://www.apache.org/licenses/LICENSE-2.0 |
| 59 | + |
| 60 | +Unless required by applicable law or agreed to in writing, software |
| 61 | +distributed under the License is distributed on an "AS IS" BASIS, |
| 62 | +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 63 | +See the License for the specific language governing permissions and |
| 64 | +limitations under the License. |
| 65 | +``` |
0 commit comments