MVVM Starter

Additional

Language
Java
Version
N/A
Created
Nov 12, 2016
Updated
Sep 3, 2019
Owner
Flipbox (flipboxstudio)
Contributor
aqidd
1
Activity
Badge
Generate
Download
Source code
APK file

Commercial

mvvm-starter

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

Archived

This repository will no longer be maintained. Further development will happen in Modular Starter using the latest and more scalable approach

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

--

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?