starter for Android MVVM Project using DataBinding Library
Switch branches/tags
Nothing to show
Clone or download
aqidd maintenance & improvements (#5)
* [update] fix contracts & maybe pattern

* [delete] AGER Contract - renamed to RAGEContract

* [add] flavor dimensions
[update] library versions

* [update] readme update
Latest commit 7ff0b15 Dec 19, 2017

README.md

mvvm-starter

Android Arsenal

A starter project for Android MVVM Project with DataBinding Library and RxJava 2

How To Use

You can create new project using our project generator here MVVM Starter Generator - by using our generator you can save the hassle of renaming every package reference & changing folder structure manually. Just input your App & Package name and extract the downloaded file for your future development

--

Libraries used :

  • Retrofit com.squareup.retrofit2:retrofit:2.3.0
  • Glide com.github.bumptech.glide:glide:4.0.0-RC1
  • EasyPermission pub.devrel:easypermissions:0.4.3
  • Hawk com.orhanobut:hawk:2.0.1
  • Android Libraries ( appcompat, design support, data binding, etc )
  • Sosoito Loading Layout com.github.flipboxstudio:sosoito:v1.0.3
  • Data Binding Validator com.github.Ilhasoft:data-binding-validator:1.1.0
  • Rx Java 2 + Rx Android io.reactivex.rxjava2:rxandroid:2.0.1 & io.reactivex.rxjava2:rxjava:2.1.2

--

Setup included :

  • Data Binding
    • Using Android Data Binding Library
    • ViewModel is inside viewmodels package
  • Splash Screen
  • Authentication Flow
    • Using Retrofit & ResponseInterceptor for request & response handling
    • Dummy API using https://jsonplaceholder.typicode.com
    • AuthActivity as Fragments Container
    • LoginFragment as Login UI with data binding validation
    • ForgotPasswordFragment as Forgot Password UI
    • RetrofitErrorAdapter to handle retrofit throwable error
  • RecyclerView Sample
    • Sample recyclerview implementation using viewholder & databinding
    • Using User as dummy object representation
    • See RecyclerViewActivity for details
  • ViewPager Sample
    • Sample viewpager implementation using tablayout
    • See ViewPagerActivity for details
  • Android M permission handler using EasyPermissions
    • Handle permission for Android M and above
    • Sample implementation for CAMERA access permission
  • Reusable Style
    • All colors are available inside colors.xml
    • Styles are available inside styles.xml
    • Custom Fonts are using CustomTextView on utils package and custom attribute on attrs.xml
    • Vector Drawable assets
    • Roboto fonts included
  • Rx Java 2 Samples
    • Get data from API using Maybe
    • Find existing data from cache & get from API if not exists
    • Based on RxJava pattern described here
  • Utilities classes
    • Camera Utils : Get image from camera / gallery
    • Calendar Utils : Parse & display Calendar object into various format
  • Product Flavors
    • Flavor dimensions : using flavor dimensions enable app to combine multiple flavors ( currently using 1 dimension, env / environment )
    • Product Flavors : dev for development variables and prod for production environment variables

-- screenshots

ToDo

  • Documentation & Wiki
  • Analytics setup
  • RxJava 2 RetryWhen sample
  • Retrofit Error Handler & sample
  • JWT Library & Utils
  • Data validation
  • Basic Location detection
  • Simple Custom toolbar & menu
  • Android M permissions sample
  • Calendar utils
  • Camera utils
  • RecyclerView sample
  • ViewPager sample
  • Product Flavors
  • Any suggestion?