Skip to content

SoftprodigyIndia/AndroidAppBoilerplate

Repository files navigation

SampleApp

Android Project Structure

License

This a Sample Project Structure for Android which you can follow for a clean architecture.

It shows usage of following libraries:

It uses MVP (Model View Presenter) pattern. MVP is a derivative from the well known MVC (Model View Controller), which for a while now is gaining importance in the development of Android applications.This project also contains basic utility classes required for day to day programming.

Here is what the app gradle look likes.

buildscript {
repositories {
    maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'me.tatarka.retrolambda'

android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion

//app versioning
def versionMajor = 1
def versionMinor = 0
def versionPatch = 0
def versionBuild = 0

defaultConfig {
    applicationId "com.sampleapp"
    minSdkVersion rootProject.ext.minSdkVersion
    targetSdkVersion rootProject.ext.targetSdkVersion
    versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild
    versionName "${versionMajor}.${versionMinor}.${versionPatch}"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
}

repositories {
maven {
    url "https://jitpack.io"
}
maven { url 'https://maven.fabric.io/public' }
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
compile "com.android.support:design:$rootProject.supportLibraryVersion"
apt "com.google.dagger:dagger-compiler:$rootProject.daggerVersion"
provided "org.glassfish:javax.annotation:$rootProject.ext.annotationVersion"
compile "com.google.dagger:dagger:$rootProject.daggerVersion"
compile "com.squareup.retrofit2:retrofit:$rootProject.ext.retrofitVersion"
compile "com.squareup.retrofit2:converter-gson:$rootProject.ext.retrofitVersion"
compile "com.squareup.retrofit2:adapter-rxjava:$rootProject.ext.retrofitVersion"
compile "com.squareup.okhttp3:logging-interceptor:$rootProject.ext.loggerVersion"
compile "io.reactivex:rxjava:$rootProject.ext.rxJavaVersion"
compile "io.reactivex:rxandroid:$rootProject.ext.rxAndroidVersion"
compile "com.jakewharton:butterknife:$rootProject.ext.butterknifeVersion"
apt "com.jakewharton:butterknife-compiler:$rootProject.ext.butterknifeVersion"
compile "com.jakewharton.timber:timber:$rootProject.ext.timberVersion"
compile "com.google.android.gms:play-services-location:$rootProject.ext.playServiceVersion"
compile "com.google.firebase:firebase-messaging:$rootProject.ext.playServiceVersion"
compile "com.google.android.gms:play-services-maps:$rootProject.ext.playServiceVersion"
compile "uk.co.chrisjenx:calligraphy:$rootProject.ext.calligraphyVersion"
compile "com.squareup.picasso:picasso:$rootProject.ext.picassoVersion"
compile "eu.inmite.android.lib:android-validation-komensky:$rootProject.ext.komenskyValidation@aar"
compile("com.crashlytics.sdk.android:crashlytics:$rootProject.ext.crashVersion@aar") {
    transitive = true;
}

}
apply plugin: 'com.google.gms.google-services'

#Start from

minSdkVersion 16

#LICENSE

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.

#Author

Soft Prodigy System Solutions Pvt. Ltd. Trust | Integrity | Customer Delight | Timely Delivery | Quality Visit us at: www.softprodigy.com

Releases

No releases published

Packages

No packages published

Languages