build.gradle.kts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. plugins {
  2. alias(libs.plugins.android.application)
  3. alias(libs.plugins.kotlin.android)
  4. alias(libs.plugins.kotlin.compose)
  5. alias(libs.plugins.ksp)
  6. alias(libs.plugins.kotlin.serialization)
  7. id("kotlin-parcelize")
  8. }
  9. android {
  10. namespace = "com.codeskraps.publicpool"
  11. compileSdk = 35
  12. defaultConfig {
  13. applicationId = "com.codeskraps.publicpool"
  14. minSdk = 26
  15. targetSdk = 35
  16. versionCode = 2
  17. versionName = "1.1"
  18. testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
  19. vectorDrawables {
  20. useSupportLibrary = true
  21. }
  22. }
  23. buildTypes {
  24. release {
  25. isMinifyEnabled = false
  26. proguardFiles(
  27. getDefaultProguardFile("proguard-android-optimize.txt"),
  28. "proguard-rules.pro"
  29. )
  30. }
  31. }
  32. compileOptions {
  33. sourceCompatibility = JavaVersion.VERSION_19
  34. targetCompatibility = JavaVersion.VERSION_19
  35. }
  36. kotlinOptions {
  37. jvmTarget = JavaVersion.VERSION_19.toString()
  38. }
  39. buildFeatures {
  40. compose = true
  41. buildConfig = true
  42. }
  43. composeOptions {
  44. kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get()
  45. }
  46. packaging {
  47. resources {
  48. excludes += "/META-INF/{AL2.0,LGPL2.1}"
  49. excludes += "/META-INF/services/javax.annotation.processing.Processor"
  50. excludes += "/META-INF/INDEX.LIST"
  51. }
  52. }
  53. applicationVariants.all {
  54. val variant = this
  55. variant.outputs.all {
  56. val output = this as? com.android.build.gradle.internal.api.BaseVariantOutputImpl
  57. output?.outputFileName = "PublicPool-${variant.name}-v${variant.versionName}-${variant.versionCode}.apk"
  58. }
  59. }
  60. }
  61. dependencies {
  62. // AndroidX Core & Lifecycle
  63. implementation(libs.androidx.core.ktx)
  64. implementation(libs.androidx.core.splashscreen)
  65. implementation(libs.androidx.lifecycle.runtime.ktx)
  66. implementation(libs.androidx.activity.compose)
  67. implementation(libs.androidx.webkit) // WebView for analytics
  68. // Compose
  69. implementation(platform(libs.androidx.compose.bom))
  70. implementation(libs.androidx.ui)
  71. implementation(libs.androidx.ui.graphics)
  72. implementation(libs.androidx.ui.tooling.preview)
  73. implementation(libs.androidx.material3)
  74. implementation(libs.androidx.navigation.compose) // Consider if this belongs with Voyager or Compose UI
  75. // Networking (Ktor)
  76. implementation(libs.ktor.client.core)
  77. implementation(libs.ktor.client.android)
  78. implementation(libs.ktor.client.content.negotiation)
  79. implementation(libs.ktor.serialization.kotlinx.json)
  80. implementation(libs.ktor.client.logging)
  81. implementation(libs.logback.classic) // Logging backend for Ktor
  82. // Data Persistence
  83. implementation(libs.androidx.datastore.preferences)
  84. // Dependency Injection (Koin)
  85. implementation(platform(libs.koin.bom))
  86. implementation(libs.koin.android)
  87. implementation(libs.koin.androidx.compose)
  88. // Charting
  89. implementation(libs.anychart.android.core)
  90. // Image Loading
  91. implementation(libs.coil.compose)
  92. // Serialization
  93. implementation(libs.kotlinx.serialization.json)
  94. // Navigation (Voyager)
  95. implementation(libs.voyager.navigator)
  96. implementation(libs.voyager.koin)
  97. implementation(libs.voyager.transitions)
  98. implementation(libs.voyager.tab.navigator)
  99. // Testing
  100. testImplementation(libs.junit)
  101. androidTestImplementation(libs.androidx.junit)
  102. androidTestImplementation(libs.androidx.espresso.core)
  103. androidTestImplementation(platform(libs.androidx.compose.bom))
  104. androidTestImplementation(libs.androidx.ui.test.junit4)
  105. // Debugging
  106. debugImplementation(libs.androidx.ui.tooling)
  107. debugImplementation(libs.androidx.ui.test.manifest)
  108. }