Snippets

John AppModule

Created by John De la cruz
plugins {
    alias(libs.plugins.programproductions.android.application)
    alias(libs.plugins.programproductions.android.application.compose)
    alias(libs.plugins.programproductions.android.application.flavors)
    alias(libs.plugins.programproductions.android.hilt)
    alias(libs.plugins.programproductions.android.application.firebase)
    alias(libs.plugins.programproductions.squareup.retrofit)
}

android {
    defaultConfig {
        applicationId = ProjectConfig.APP_ID
        versionName = ProjectConfig.VERSION_NAME
        versionCode = ProjectConfig.VERSION_CODE
        testInstrumentationRunner = ProjectConfig.ANDROID_TEST_RUNNER
    }
    signingConfigs {
        create("release") {
            storeFile = file(SigningConfig.STORE_FILE)
            storePassword = SigningConfig.STORE_PASSWORD
            keyAlias = SigningConfig.KEY_ALIAS
            keyPassword = SigningConfig.KEY_PASSWORD
        }
    }
    buildTypes {
        debug {
            isMinifyEnabled = false
            isShrinkResources = false
            applicationIdSuffix = ProcrewzBuildType.DEBUG.applicationIdSuffix
            configure<CrashlyticsExtension> {
                mappingFileUploadEnabled =
                    false // to disable mapping file uploads (default=true if minifying)
                nativeSymbolUploadEnabled =
                    true // to enable NDK symbol file uploading (default=false)
                unstrippedNativeLibsDir =
                    "path/to/libs"
                // optional override to change the default unstripped native library path, only used in NDK builds
            }
        }
        release {
            isMinifyEnabled = true
            isShrinkResources = true
            applicationIdSuffix = ProcrewzBuildType.RELEASE.applicationIdSuffix
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")

            signingConfig = signingConfigs.named("release").get()

            configure<CrashlyticsExtension> {
                mappingFileUploadEnabled =
                    true // to disable mapping file uploads (default=true if minifying)
                nativeSymbolUploadEnabled =
                    true // to enable NDK symbol file uploading (default=false)
                unstrippedNativeLibsDir =
                    "path/to/libs"
                // optional override to change the default unstripped native library path, only used in NDK builds
            }
        }
    }

    buildFeatures {
        buildConfig = true
        viewBinding = true
    }
    lint {
        abortOnError = false
    }

    packaging {
        resources {
            excludes.add("/META-INF/{AL2.0,LGPL2.1}")
        }
    }

    namespace = ProjectConfig.APP_ID
}

play {
    serviceAccountCredentials.set(file("service_account.json"))
}

dependencies {
    implementation(project(":core:designsystem"))
    implementation(project(":core:network"))
    implementation(project(":feature:calendar"))

    // Appcompat
    implementation(libs.androidx.appcompat)
    implementation(libs.androidx.core.ktx)
    implementation(libs.androidx.activity.ktx)
    implementation(libs.support.annotations)

    // Compose
    implementation(platform(libs.androidx.compose.bom))
    androidTestImplementation(platform(libs.androidx.compose.bom))

    implementation(libs.androidx.compose.runtime)
    implementation(libs.androidx.compose.ui)
    implementation(libs.androidx.compose.ui.tooling)
    implementation(libs.androidx.compose.foundation)
    implementation(libs.androidx.compose.foundation.layout)
    implementation(libs.androidx.compose.material3)
    implementation(libs.androidx.compose.material.iconsExtended)
    implementation(libs.androidx.compose.runtime.livedata)

    // Calendar compat
    implementation(libs.compact.calendar.view)

    // Circle imageview
    implementation(libs.circleimageview)

    // Conductor
    implementation(libs.conductor)
    implementation(libs.conductor.viewpager)
    implementation(libs.conductor.viewpager2)

    // Coroutines
    implementation(libs.kotlinx.coroutines.core)
    implementation(libs.kotlinx.coroutines.android)

    // Data enum
    implementation(libs.dataenum)
    kapt(libs.dataenum.processor)

    // Date picker
    implementation(libs.materialdatetimepicker)

    // Google play Services
    implementation(libs.play.services.gcm)

    // Glide
    implementation(libs.glide)
    annotationProcessor(libs.glide.compiler)

    // Gson
    implementation(libs.gson)

    // Java stream
    implementation(libs.stream)

    // Jsr250
    api(libs.jsr250.api)

    // Leakcanary debug
    debugImplementation(libs.leakcanary.android)

    // Google maps
    implementation(libs.places)
    implementation(libs.google.maps.services)
    implementation(libs.slf4j.simple)
    implementation(libs.android.maps.utils)
    implementation(libs.volley)

    // Paging
    implementation(libs.paging.runtime.ktx)

    // Recyclerview
    implementation(libs.recyclerview)

    // Rx android
    implementation(libs.rxandroid)

    // Rx binding
    implementation(libs.rxbinding.appcompat)

    // Rxjava2
    implementation(libs.rxjava)

    // Salesforce
    implementation(libs.salesforcesdk)

    // Support design
    implementation(libs.material)
    implementation(libs.legacy.support.v4)

    // Timber
    implementation(libs.timber)

    // TimelineView
    implementation(libs.timelineview)

    // Exifinterface
    implementation(libs.exifinterface)

    // Image viewer
    implementation(libs.photoview)

    // view Models
    implementation(libs.lifecycle.livedata.ktx)
    implementation(libs.lifecycle.viewmodel.ktx)

    // Fragments
    implementation(libs.constraintlayout)
    implementation(libs.fragment.ktx)

    // Navigation
    implementation(libs.navigation.fragment.ktx)
    implementation(libs.navigation.ui.ktx)

    // Page dots indicator
    implementation(libs.dotsindicator)
    implementation(libs.lifecycle.extensions)

    // Room
    implementation(libs.room.ktx)
    implementation(libs.room.runtime)
    implementation(libs.room.paging)
    ksp(libs.room.compiler)

    // AndroidX Test - JVM testing
    testImplementation(libs.junit.ktx)
    testImplementation(libs.core.testing)
    testImplementation(libs.test.core.ktx)
    testImplementation(libs.robolectric)
    androidTestImplementation(libs.espresso.core)
    testImplementation(libs.json)
}
secrets {
    defaultPropertiesFileName = "local.properties"
}

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.