/flows_guide

Android Application 🐕 based on offline first approach built using Dagger Hilt, Material Motion, Coroutines + Flow, Jetpack (Room, ViewModel, LiveData) based on MVVM architecture.

Primary LanguageKotlin

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.

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

  • 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? ❤️

Support it by joining starring this repository. ⭐
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.