MVP Android App Template Ultimate Android Template MVP // Dagger 2 // Boilerplate // Bootstrap // Bottom Navigation Menu Material Design
A simple template application following the MVP Arhitecture updated frequently with the latest version of most common libraries. There are many good templates out there, but with this one I tried to keep things as simple as possible. For the bottom menu I used com.github.bufferapp:AdaptableBottomNavigation (but as copy paste in the project since as gradle doesn't work)
Everybody got their own preferences about databases and testing, so I left them out.
Step 1:
Step 2. ??? Step 3. Profit
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.androidadvance.ultimateandroidtemplaterx2"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L"
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
applicationIdSuffix ".debug"
debuggable true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE'
exclude 'LICENSE.txt'
}
lintOptions {
warning 'InvalidPackage'
abortOnError false
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:design:28.0.0-rc01'
implementation "com.android.support:recyclerview-v7:28.0.0-rc01"
implementation "com.android.support:cardview-v7:28.0.0-rc01"
// Dependency Injection
compile "com.google.dagger:dagger:2.13"
annotationProcessor "com.google.dagger:dagger-compiler:2.13"
compile 'javax.inject:javax.inject:1'
//----- Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation "com.squareup.retrofit2:converter-gson:2.1.0"
implementation 'com.squareup.okhttp3:logging-interceptor:3.7.0'
//----- Butterknife
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
//----- Eventbus
implementation 'org.greenrobot:eventbus:3.1.1'
//----- Logging
implementation 'com.github.zhaokaiqiang.klog:library:1.6.0'
//----- Picasso
implementation 'com.squareup.picasso:picasso:2.71828'
//----- Styled Dialogs
implementation 'com.muddzdev:styleabletoast:1.0.6'
//------ Custom Font
implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Thanks to the following for their work:
[ribot guys] (https://github.com/ribot) [yigit] (https://github.com/yigit/dev-summit-architecture-demo/)
Copyright 2015 AndroidAdvance.com
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.