@@ -9,7 +9,7 @@ import mill.kotlinlib.ksp.KspModule
99
1010import java.nio.file.Files
1111
12- object app extends BaseAndroidModule, JvmWorkerModule, AndroidViewBindingModule {
12+ object app extends BaseAndroidModule, AndroidR8AppModule {
1313
1414 override def androidApplicationNamespace: String = "com.example.compose.jetchat"
1515
@@ -19,13 +19,29 @@ object app extends BaseAndroidModule, JvmWorkerModule, AndroidViewBindingModule
1919 mvn"androidx.compose:compose-bom:2025.08.00"
2020 )
2121
22+ override def androidDebugSettings: T[AndroidBuildTypeSettings] = Task {
23+ AndroidBuildTypeSettings(
24+ isMinifyEnabled = false
25+ )
26+ }
27+ def androidProjectProguardFiles = Task.Sources(
28+ "proguard-rules.pro"
29+ )
30+ def androidDefaultProguardFileNames: Task[Seq[String]] = Task.Anon {
31+ Seq("proguard-android-optimize.txt")
32+ }
33+
2234 override def androidEnableCompose: T[Boolean] = true
2335
36+ override def androidEnableViewBinding = true
37+
38+ override def androidDataBindingCompilerVersion = "8.13.0"
39+
2440 override def kotlinUseEmbeddableCompiler: Task[Boolean] = Task {
2541 true
2642 }
2743
28- override def mvnDeps: T[Seq[Dep]] = super.mvnDeps() ++ Seq(
44+ override def mvnDeps = super.mvnDeps() ++ Seq(
2945 mvn"androidx.glance:glance-appwidget:1.1.1",
3046 mvn"androidx.glance:glance-material3:1.1.1",
3147 mvn"org.jetbrains.kotlin:kotlin-stdlib-jdk8:${build.Versions.kotlinVersion}",
@@ -44,12 +60,42 @@ object app extends BaseAndroidModule, JvmWorkerModule, AndroidViewBindingModule
4460 mvn"androidx.compose.ui:ui-util",
4561 mvn"androidx.compose.ui:ui-viewbinding",
4662 mvn"androidx.compose.ui:ui-text-google-fonts",
63+ mvn"androidx.databinding:viewbinding:8.13.0",
64+ mvn"androidx.compose.ui:ui-tooling",
65+ mvn"androidx.compose.ui:ui-tooling-preview",
66+ mvn"androidx.compose.ui:ui-test-manifest",
67+ mvn"com.google.android.material:material:1.6.0"
68+ )
4769
4870
49- )
71+ object androidTest extends AndroidAppKotlinInstrumentedTests, AndroidR8AppModule {
72+ override def bomMvnDeps = super.mvnDeps() ++ Seq(
73+ mvn"androidx.compose:compose-bom:2025.08.00"
74+ )
75+
76+ // TODO consider defaulting this to the parent app value
77+ override def androidEnableCompose = true
78+
79+ // TODO consider defaulting this to the parent app value
80+ override def kotlinUseEmbeddableCompiler: Task[Boolean] = Task {
81+ true
82+ }
5083
84+ // FIXME: R8 should compile without missing classes errors
85+ override def androidR8Args = Seq("--map-diagnostics", "error", "warning")
5186
52- object androidTest extends AndroidAppKotlinInstrumentedTests {
87+ def mvnDeps = super.mvnDeps() ++ Seq(
88+ mvn"junit:junit:4.13.2",
89+ mvn"androidx.test:core:1.6.1",
90+ mvn"androidx.test:runner:1.6.1",
91+ mvn"androidx.test.espresso:espresso-core:3.6.1",
92+ mvn"androidx.test:rules:1.6.1",
93+ mvn"androidx.test.ext:junit:1.2.1",
94+ mvn"org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.2",
95+ mvn"androidx.compose.ui:ui-test",
96+ mvn"androidx.compose.ui:ui-test-junit4",
97+ mvn"androidx.collection:collection-ktx:1.5.0"
98+ )
5399
54100 }
55101}
0 commit comments