- Clean architecture with 3 layers
- Data (for models, database, API and preferences)
- Domain (for business logic)
- Presentation (for UI logic, with MVVM)
- Tests
- Unit tests
- Application tests
- Activity tests (with Espresso)
- Application has a testing flag
- Dependency injection (with Dagger v2)
- View injection (with Butterknife)
- Reactive programming with RxJava 2 and RxAndroid
- Preconditions
- Google Design library
- Android architecture components to share ViewModels during configuration changes
- Logging (with Timber)
- Resource defaults
- styles.xml
- dimens.xml
- colors.xml
- Download this repository and open it on Android Studio
- Rename the app package
io.bloco.template
- On
AndroidApplication.java
, change the package on thecheckTestMode
method - On
app/build.gradle
, change the applicationId to the new app package - On
app/build.gradle
, update the dependencies Android Studio suggests - On
string.xml
, set your application name - On
colors.xml
, set your application primary and secondary colors
And you're ready to start working on your new app.
- Make sure the method
checkTestMode
insideAndroidApplication
includes a test class that exists
- Analytics (Google Analytics and Answers, at least)
- Crashlytics
- SharedPreferences helper with RxPreferences