An Android Application written purely in Kotlin utilizing all the latest tech in Android.
The project uses Material Design guidelines, MVVM architecture, Hilt for Dependency Injection and uses Room for an offline- first approach.
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 |
- 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
- Shared Element Transition from FAB to SEARCH fragment screen
- Using Color Pallette API for setting background color of bottom sheet in Dog Details Frag.
- Recycler - Selection library with contexual Action mode for setting a Dog as Favorite
- Using Paging 3 library
- Update this Readme for APp screenshots, credits, libraries used and contribution.
Support it by joining starring this repository. ⭐
And follow me on Medium and Github
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.
This project is founded and actively maintained by Shivam Dhuria.
Original dataset taken from the the Stanford Dogs Dataset. Logo thanks to NotKnifoon. Dog Api provides hundreds of free pictures of dogs.
- 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.