Awesome
<p align="center"> <img src="./previews/logo.png" width="150"> </p> <p align="center"> An Android Application written purely in Kotlin utilizing all the latest tech in Android. <br> The project uses Material Design guidelines, MVVM architecture, Hilt for Dependency Injection and uses Room for an offline- first approach. </p> <p align="center"> <img src="./previews/introCompressed.jpg" width="700"> </p>Medium Articles
Follow me on Medium for latest articles.
Medium Article | Github Branch |
---|---|
What the Flows: Build an Android app using Flows, Live Data, and MVVM architecture | begin_flows |
Implementing Search Filter using Kotlin Channels and Flows in your Android Application | implementing_search_in_database |
Adding Hilt (No Article ❌) | migrating_to_hilt |
Adding animations to your Android application using Lottie library | adding_animation |
Adding Stetho (Medium article in progress) | adding_stetho |
Migrating to Single Activity architecture with Navigation Components (No Article ❌) | migrate_to_single_activity_and_navigation_component |
Adding amazing transitions to your Android App easily using Material Motion | added_transition_using_material_motion |
Tech Stack
<img src="/previews/transition.gif" align="right" width="20%"/>- Kotlin
- Coroutines
- Flow for asynchronous.
- Dagger-Hilt (alpha) for dependency injection.
- JetPack Components
- Material Design Components
- Navigation UI
- Architecture
-
MVVM Architecture
-
Repository pattern
-
Database Cache as Single Source of Truth
-
Single activity Pattern
-
Roadmap (Features to be added )
-
Using Jetpack compose
-
Animations using Jetpack compose
-
Using fastlane for distribution
-
Using Play Core Library for In App Updates
Find this repository useful? :heart:
Support it by joining starring this repository. :star: <br> And follow me on Medium and Github
Issues and Contribution
Currently I am not taking in Pull requests(will start in a while) however you can always a raise an issue and I'll try fix it.
Project Maintainers
This project is founded and actively maintained by Shivam Dhuria.
Dog Api
Original dataset taken from the the Stanford Dogs Dataset. Logo thanks to NotKnifoon. Dog Api provides hundreds of free pictures of dogs.
Libraries
- Retrofit2 & OkHttp3 - construct the REST APIs and paging network data.
- Moshi - A modern JSON library for Kotlin and Java.
- Lottie - Lottie is a mobile library for Android and iOS that parses Adobe After Effects animations exported as json with Bodymovin and renders them natively on mobile!
- Stetho - Stetho is a sophisticated debug bridge for Android applications.
- Gson - Gson is a Java library that can be used to convert Java Objects into their JSON representation.
- Room - For storing Database.
- Glide - Glide supports fetching, decoding, and displaying video stills, images, and animated GIFs.