build.gradle 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. apply plugin: 'com.android.application'
  2. apply plugin: 'com.google.gms.google-services'
  3. def keystoreProperties = new Properties()
  4. keystoreProperties.load(new FileInputStream(rootProject.file("keystore.properties")))
  5. android {
  6. signingConfigs {
  7. // debug {
  8. // keyAlias 'lifeplus_debug'
  9. // keyPassword 'lifeplus_debug'
  10. // storeFile rootProject.file("keystore/lifeplus_debug")
  11. // storePassword 'lifeplus_debug'
  12. // }
  13. release {
  14. storeFile rootProject.file(keystoreProperties['storeFile'])
  15. storePassword keystoreProperties['storePassword']
  16. keyAlias keystoreProperties['keyAlias']
  17. keyPassword keystoreProperties['keyPassword']
  18. }
  19. }
  20. compileSdkVersion 27
  21. defaultConfig {
  22. applicationId "kr.co.zumo.app"
  23. minSdkVersion 19 // 4.4
  24. targetSdkVersion 27
  25. versionCode 149
  26. versionName "4.0.0.108"
  27. testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  28. multiDexEnabled true
  29. vectorDrawables.useSupportLibrary = true
  30. }
  31. buildTypes {
  32. release {
  33. minifyEnabled false
  34. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  35. signingConfig signingConfigs.release
  36. }
  37. debug {
  38. versionNameSuffix "-debug"
  39. manifestPlaceholders = [appLabel: "@string/app_name_debug"]
  40. signingConfig signingConfigs.release
  41. // signingConfig signingConfigs.debug
  42. }
  43. }
  44. sourceSets {
  45. /*
  46. - dev <-> product = NetworkConfig 를 다르게 설정
  47. - sandbox <-> common = sandbox 로 사용할 Class 를 설정
  48. */
  49. sandbox {
  50. java.srcDirs = ['src/dev/java', 'src/sandbox/java']
  51. }
  52. dev {
  53. java.srcDirs = ['src/dev/java', 'src/common/java']
  54. }
  55. product {
  56. java.srcDirs = ['src/product/java', 'src/common/java']
  57. }
  58. }
  59. flavorDimensions "build"
  60. productFlavors {
  61. sandbox {
  62. versionNameSuffix "-sandbox"
  63. manifestPlaceholders = [appLabel: "@string/app_name"]
  64. }
  65. dev {
  66. versionNameSuffix "-dev"
  67. manifestPlaceholders = [appLabel: "@string/app_name"]
  68. }
  69. product {
  70. versionNameSuffix ""
  71. manifestPlaceholders = [appLabel: "@string/app_name"]
  72. }
  73. }
  74. applicationVariants.all { variant ->
  75. variant.outputs.all { output ->
  76. def SEP = "_"
  77. def buildType = variant.variantData.variantConfiguration.buildType.name
  78. def version = variant.versionName
  79. def newApkName
  80. if (buildType == "release") {
  81. newApkName = "lifeplus" + SEP + buildType + SEP + version + ".apk"
  82. } else {
  83. newApkName = "lifeplus" + ".apk"
  84. }
  85. outputFileName = new File(newApkName)
  86. }
  87. }
  88. compileOptions {
  89. sourceCompatibility JavaVersion.VERSION_1_8
  90. targetCompatibility JavaVersion.VERSION_1_8
  91. }
  92. testOptions {
  93. unitTests {
  94. includeAndroidResources = true
  95. returnDefaultValues = true
  96. }
  97. }
  98. }
  99. dependencies {
  100. implementation fileTree(dir: 'libs', include: ['*.jar'])
  101. implementation 'com.android.support:appcompat-v7:27.1.1'
  102. implementation 'com.android.support:design:27.1.1'
  103. implementation 'com.android.support.constraint:constraint-layout:1.1.3'
  104. implementation 'com.android.support:support-v4:27.1.1'
  105. implementation 'com.android.support:recyclerview-v7:27.1.1'
  106. implementation "android.arch.lifecycle:extensions:1.1.1"
  107. implementation "android.arch.lifecycle:viewmodel:1.1.1"
  108. implementation 'com.google.firebase:firebase-messaging:17.3.4'
  109. implementation 'com.google.firebase:firebase-dynamic-links:16.1.7'
  110. /*********************************
  111. * External lib
  112. *********************************/
  113. implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
  114. implementation 'com.google.android.gms:play-services-plus:16.0.0'
  115. implementation 'com.google.code.gson:gson:2.8.5'
  116. implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0'
  117. implementation 'com.squareup.retrofit2:retrofit:2.4.0'
  118. implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
  119. implementation('com.squareup.retrofit2:converter-gson:2.3.0')
  120. {
  121. exclude group: 'com.google.code.gson', module: 'gson'
  122. }
  123. // implementation 'com.github.aakira:expandable-layout:1.6.0@aar'
  124. implementation 'com.github.bumptech.glide:glide:4.8.0'
  125. annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
  126. implementation 'com.kakao.sdk:kakaolink:1.14.0'
  127. implementation 'com.facebook.android:facebook-share:4.38.1'
  128. implementation 'com.githang:status-bar-compat:0.7'
  129. implementation 'com.wefika:flowlayout:0.4.1'
  130. implementation 'com.robinhood.ticker:ticker:2.0.1'
  131. implementation 'com.squareup.picasso:picasso:2.71828'
  132. // implementation 'jp.wasabeef:picasso-transformations:2.2.1'
  133. implementation 'com.makeramen:roundedimageview:2.3.0'
  134. implementation 'me.everything:overscroll-decor-android:1.0.4'
  135. /*********************************
  136. * UNIT TEST
  137. *********************************/
  138. // Required for local unit tests (JUnit 4 framework)
  139. testImplementation 'junit:junit:4.12'
  140. // Required for instrumented tests
  141. androidTestImplementation 'com.android.support.test:runner:1.0.2'
  142. androidTestImplementation 'com.android.support.test:rules:1.0.2'
  143. androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
  144. androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'
  145. androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.3'
  146. // Mockito
  147. // testImplementation "org.mockito:mockito-core:2.21.0"
  148. // Robolectric
  149. testImplementation 'org.robolectric:robolectric:3.8'
  150. testImplementation "org.robolectric:shadows-support-v4:3.3.2"
  151. testImplementation "org.robolectric:multidex:3.4.2"
  152. // PowerMock
  153. testImplementation 'org.powermock:powermock-core:1.7.4'
  154. testImplementation "org.powermock:powermock-module-junit4:1.7.4"
  155. testImplementation "org.powermock:powermock-api-mockito2:1.7.4"
  156. }