From 070ffde49c45f3326edac3e472b5ebe366c4da8e Mon Sep 17 00:00:00 2001 From: Adrian Kuta Date: Wed, 10 Jun 2026 11:48:19 +0200 Subject: [PATCH] feat(app): Koin bootstrap + AppTheme + Material3 XML theme (REDI-84) - ArchitectureApp.Application: startKoin { androidLogger; androidContext; modules(coreDataModule) }. Modules are assembled only here; feature modules will append to the list. - MainActivity hosts a themed empty screen via AppTheme + AppScaffold (design-system). - Activity XML theme upgraded to Theme.Material3.DayNight.NoActionBar (Compose themes via AppTheme; the Material3 XML theme lets the later Views renderer inherit Material3 styling). - :app depends on :core:data + :core:design-system; applies the koin convention. --- app/build.gradle.kts | 7 ++++++ app/src/main/AndroidManifest.xml | 1 + .../example/architecture/ArchitectureApp.kt | 24 +++++++++++++++++++ .../com/example/architecture/MainActivity.kt | 14 +++++------ app/src/main/res/values/themes.xml | 8 +++---- 5 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 app/src/main/kotlin/com/example/architecture/ArchitectureApp.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5469aab..6eae0a2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,13 +1,20 @@ plugins { alias(libs.plugins.architecture.android.application) alias(libs.plugins.architecture.compose) + alias(libs.plugins.architecture.koin) } dependencies { + // :app is the only place modules are assembled and the dependency graph is wired. + implementation(project(":core:data")) + implementation(project(":core:design-system")) + implementation(libs.androidx.core.ktx) implementation(libs.androidx.activity.compose) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.bundles.lifecycle.compose) + // Material Components — required for the Material3 XML Activity theme. + implementation(libs.material) androidTestImplementation(libs.androidx.compose.ui.test.junit4) debugImplementation(libs.androidx.compose.ui.test.manifest) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 778f466..c10b0e4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,7 @@ + // Compose themes via AppTheme; the navigation host lands in a later milestone. + AppTheme { + AppScaffold { innerPadding -> Box( modifier = Modifier .fillMaxSize() diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 0376602..1a5fe7e 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,9 +1,9 @@ -