mvvm-starter
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:0.6.4
- 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
--
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
- Any suggestion?