A starter project for Android MVVM Project with DataBinding Library and RxJava 2
This repository will no longer be maintained. Further development will happen in Modular Starter using the latest and more scalable approach
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
- Implement splash screen the right way [https://www.bignerdranch.com/blog/splash-screens-the-right-way/]
- Authentication Flow
- Using Retrofit & ResponseInterceptor for request & response handling
- Dummy API using
https://jsonplaceholder.typicode.com
AuthActivity
as Fragments ContainerLoginFragment
as Login UI with data binding validationForgotPasswordFragment
as Forgot Password UIRetrofitErrorAdapter
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
onutils
package and custom attribute onattrs.xml
- Vector Drawable assets
- Roboto fonts included
- All colors are available inside
- 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
- Get data from API using
- 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 andprod
for production environment variables
- 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?