Skip to content
/ Beaver Public template

Android MVVM + Dagger 2 (Hilt) + JetPack project template

Notifications You must be signed in to change notification settings

SamYStudiO/Beaver

Repository files navigation

Beaver

THIS IS THE REACTIVE (RXJAVA) VERSION, FOR COROUTINES VERSION GO TO COROUTINES BRANCH

Android Project template using View Model MVVM and Repository Data pattern, with Dagger 2 / Hilt and Jetpack (Androidx) libraries (navigation component, room, worker, etc...).

Template includes basic implementation for a launch screen, a home screen, an authentication screen and a profile screen. Authentication is implemented using OAuth2 and automatically refresh token when a 401 HTTP exception is thrown.

Also features :

  • Permission Launcher Android lightweight library to perform permissions request the right way using ActivityResultCallback.
  • An AlertDialog implementation using DialogFragment that survive state lost and returns actions/results using setFragmentResultListener API. Some kotlin extensions are available to make results even straightforward.
  • Some utilities.
  • Base classes for Adapter/ListAdapter and ViewHolder.
  • Dynamic retrofit url to handle multiple server url (production, pre production, etc...), selector screen/dialog for server not implemented here though.
  • Structured values resources files as recommended(themes, styles, shapes, types).
  • Gradle kotlin DSL.

Common used libraries :

Package structure is inspired from this reading.