SubwayTooter-Android-App/app/build.gradle

250 lines
8.8 KiB
Groovy
Raw Normal View History

2017-04-23 07:42:09 +02:00
import java.text.SimpleDateFormat
2017-04-20 18:23:59 +02:00
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'org.jetbrains.kotlin.plugin.serialization'
2021-06-20 05:02:30 +02:00
apply plugin: "io.gitlab.arturbosch.detekt"
2017-04-20 18:23:59 +02:00
android {
2018-10-01 11:45:51 +02:00
compileSdkVersion compile_sdk_version
2018-09-12 07:55:15 +02:00
// exoPlayer 2.9.0 以降は Java 8 compiler support を要求する
// https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md
// Invoke-customs are only supported starting with Android O (--min-api 26)
// Default interface methods are only supported starting with Android N (--min-api 24)
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
2017-04-20 18:23:59 +02:00
defaultConfig {
2018-09-12 07:55:15 +02:00
targetSdkVersion target_sdk_version
minSdkVersion min_sdk_version
2021-06-28 16:36:48 +02:00
versionCode 465
versionName "4.6.5"
2018-09-12 07:55:15 +02:00
applicationId "jp.juggler.subwaytooter"
2019-02-15 02:51:22 +01:00
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2017-04-20 18:23:59 +02:00
}
kotlinOptions {
freeCompilerArgs += [
"-Xopt-in=kotlin.ExperimentalStdlibApi",
"-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
]
}
2017-04-20 18:23:59 +02:00
buildTypes {
release {
2019-02-15 04:17:31 +01:00
minifyEnabled false
2018-01-13 07:52:07 +01:00
shrinkResources false
2017-04-20 18:23:59 +02:00
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
lintOptions {
disable 'MissingTranslation'
}
2017-04-20 18:23:59 +02:00
}
}
// Specifies comma-separated list of flavor dimensions.
flavorDimensions "rcOrDev"
2017-04-23 07:42:09 +02:00
productFlavors {
rc {
dimension "rcOrDev"
2017-04-23 07:42:09 +02:00
}
}
dexOptions {
jumboMode = true
preDexLibraries true
maxProcessCount 10
javaMaxHeapSize "3g"
}
2017-04-23 07:42:09 +02:00
// Generate Signed APK のファイル名を変更
android.applicationVariants.all { variant ->
2017-04-23 07:42:09 +02:00
if (variant.buildType.name == "release") {
variant.outputs.all {
// Rename APK
def versionCode = defaultConfig.versionCode
def versionName = defaultConfig.versionName
def flavor = variant.flavorName
def date = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date())
outputFileName = "../../SubwayTooter-${flavor}-${versionCode}-${versionName}-${date}.apk"
2017-04-23 07:42:09 +02:00
}
}
}
packagingOptions {
// https://github.com/Kotlin/kotlinx.coroutines/issues/1064
pickFirst("META-INF/atomicfu.kotlin_module")
}
2019-08-30 06:02:08 +02:00
useLibrary 'android.test.base'
useLibrary 'android.test.mock'
2017-04-20 18:23:59 +02:00
}
kapt {
useBuildCache = true
}
2017-04-20 18:23:59 +02:00
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation fileTree(include: ['*.aar'], dir: 'src/main/libs')
2019-02-15 02:51:22 +01:00
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0-alpha4', {
2017-04-20 18:23:59 +02:00
exclude group: 'com.android.support', module: 'support-annotations'
})
2017-12-11 22:18:17 +01:00
2021-06-20 05:02:30 +02:00
detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:$detekt_version")
detektPlugins("io.gitlab.arturbosch.detekt:detekt-cli:$detekt_version")
// implementation project(':exif')
2018-01-28 20:03:04 +01:00
implementation project(':colorpicker')
implementation project(':emoji')
implementation project(':apng_android')
2019-02-15 02:51:22 +01:00
implementation "androidx.appcompat:appcompat:$appcompat_version"
//noinspection KtxExtensionAvailable
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
2019-09-12 17:13:00 +02:00
// DrawerLayout
implementation "androidx.drawerlayout:drawerlayout:1.1.1"
2019-09-12 17:13:00 +02:00
// NavigationView
implementation "com.google.android.material:material:1.3.0"
2019-09-12 17:13:00 +02:00
// PreferenceManager
implementation "androidx.preference:preference-ktx:1.1.1"
2019-09-12 17:13:00 +02:00
implementation "androidx.exifinterface:exifinterface:1.3.2"
2019-09-12 17:13:00 +02:00
// CustomTabs
implementation "androidx.browser:browser:1.3.0"
2019-09-12 17:13:00 +02:00
// Recyclerview
2021-06-20 05:02:30 +02:00
implementation "androidx.recyclerview:recyclerview:1.2.1"
kapt 'androidx.annotation:annotation:1.2.0'
2017-12-11 22:18:17 +01:00
// https://firebase.google.com/support/release-notes/android
implementation "com.google.firebase:firebase-messaging:22.0.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
testImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
2019-08-24 12:56:05 +02:00
2018-09-14 18:36:05 +02:00
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinx_coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-play-services:$kotlinx_coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.1"
implementation("ru.gildor.coroutines:kotlin-coroutines-okhttp:1.0")
2018-01-12 10:01:25 +01:00
// Anko Layouts
// sdk15, sdk19, sdk21, sdk23 are also available
// implementation "org.jetbrains.anko:anko-sdk25:$anko_version"
// implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version"
// Coroutine listeners for Anko Layouts
//implementation "org.jetbrains.anko:anko-sdk25-coroutines:$anko_version"
//implementation "org.jetbrains.anko:anko-appcompat-v7-coroutines:$anko_version"
2017-12-20 21:55:51 +01:00
testImplementation "junit:junit:$junit_version" // しばらくはkotlin-testとjunitを併用
2017-12-22 04:12:32 +01:00
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
implementation 'com.squareup.okhttp3:okhttp-urlconnection:4.8.1'
testImplementation 'com.squareup.okhttp3:mockwebserver:3.12.1'
androidTestImplementation 'com.squareup.okhttp3:mockwebserver:3.12.1'
2021-06-28 16:37:51 +02:00
def glideVersion = '4.11.0'
implementation "com.github.bumptech.glide:glide:$glideVersion"
implementation "com.github.bumptech.glide:annotations:$glideVersion"
implementation( "com.github.bumptech.glide:okhttp3-integration:$glideVersion"){
2019-08-24 12:56:05 +02:00
exclude group: 'com.squareup.okhttp3', module: 'okhttp'
// 推移的な依存関係の除外
// glide 4.9.0 は okhttp3 3.9.1を使ってる
// http://bumptech.github.io/glide/int/about.html#how-do-i-use-a-specific-version-of-okhttp-volley-or-other-third-party-library
}
2021-06-28 16:37:51 +02:00
kapt "com.github.bumptech.glide:compiler:$glideVersion"
2019-08-24 12:56:05 +02:00
implementation "org.conscrypt:conscrypt-android:2.5.1"
implementation 'io.github.inflationx:calligraphy3:3.1.1'
implementation 'io.github.inflationx:viewpump:2.0.3'
implementation 'com.github.woxthebox:draglistview:1.6.6'
implementation 'com.github.omadahealth:swipy:1.2.3@aar'
implementation 'com.github.kenglxn.QRGen:android:2.5.0'
implementation 'commons-io:commons-io:2.6'
implementation 'org.hjson:hjson:3.0.0'
implementation 'com.google.android.flexbox:flexbox:3.0.0'
implementation 'com.astuetz:pagerslidingtabstrip:1.0.1'
implementation 'com.google.android.exoplayer:exoplayer:2.15.0'
/*
WARNING: [Processor] Library '…\exoplayer-ui-2.12.0.aar' contains references to both AndroidX and old support library. This seems like the library is partially migrated. Jetifier will try to rewrite the library anyway.
Example of androidX reference: 'androidx/core/app/NotificationCompat$Builder'
Example of support library reference: 'android/support/v4/media/session/MediaSessionCompat$Token'
expPlayerも苦労してるんだなあ
*/
implementation 'com.caverock:androidsvg-aar:1.4'
2017-04-20 18:23:59 +02:00
}
repositories {
mavenCentral()
}
2018-09-12 07:55:15 +02:00
apply plugin: 'com.google.gms.google-services'
2019-01-29 02:56:24 +01:00
2021-06-20 05:02:30 +02:00
detekt {
// relative path from module path.
basePath = projectDir
// preconfigure defaults
buildUponDefaultConfig = true
// activate all available (even unstable) rules.
allRules = false
// a way of suppressing issues before introducing detekt
baseline = file("$rootDir/config/detekt/baseline.xml")
// point to your custom config defining rules to run, overwriting default behavior
config = files("$rootDir/config/detekt/config.yml")
reports {
// checkstyle like format mainly for integrations like Jenkins
xml {
enabled = true
destination = file("detektReport/${name}.xml")
}
// observe findings in your browser with structure and code snippets
html {
enabled = true
destination = file("detektReport/${name}.html")
}
// similar to the console output, contains issue signature to manually edit baseline files
txt {
enabled = true
destination = file("detektReport/${name}.txt")
}
// standardized SARIF format (https://sarifweb.azurewebsites.net/) to support integrations with Github Code Scanning
sarif {
enabled = true
destination = file("detektReport/${name}.sarif")
}
}
}