Skip to content

Commit ebf58e9

Browse files
committed
refactor: move UI and test modules to core namespace
- Relocate `:ui:shared` module to `:core:ui`. - Relocate `:ui:test` multiplatform test framework to `:core:test-ui`. - Relocate `:ui:test-jvm` testing utilities to `:core:test-jvm`. - Update `settings.gradle.kts` to reflect the new project structure. - Adjust project dependencies in `app/android`, `app/desktop`, `app/web`, and `app/ios-kit` build files. - Update generated resource package references from `notedelight.ui.shared` to `notedelight.core.ui`. - Update documentation, architecture guides, and README files to reflect new module paths and names.
1 parent b61a40c commit ebf58e9

158 files changed

Lines changed: 257 additions & 255 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
### Project Structure & Module Organization
1111
- Core: `core/domain`, `core/presentation`, `core/data/db-sqldelight` (default), `core/data/db-room` (optional), `core/test`.
1212
- Features: `feature/backup/{domain,ui}`, `feature/console/{domain,presentation,ui}`, `feature/file-explorer/data`.
13-
- UI: `ui/shared` (common Compose code and resources), `ui/test` (multiplatform Compose UI tests), `ui/test-jvm` (JVM-specific UI test utilities).
13+
- UI: `core/ui` (common Compose code and resources), `core/test-ui` (multiplatform Compose UI tests), `core/test-jvm` (JVM-specific UI test utilities).
1414
- Apps: `app/android`, `app/desktop`, `app/web`, `app/ios-kit` (CocoaPods framework), `app/iosApp` (Xcode project).
1515
- Tooling: `build-logic` (Gradle conventions), `thirdparty` (vendored modules), `gradle/libs.versions.toml` (versions).
1616
- Switch DB module via `gradle.properties` key `CORE_DATA_DB_MODULE`.
@@ -40,7 +40,7 @@ After making changes, AI agents must perform the following checks sequentially.
4040
- Compose: prefer state hoisting; keep @Composable functions small and previewable.
4141

4242
## Testing Guidelines
43-
- Unit tests: Kotlin Multiplatform `kotlin("test")`/JUnit. Run all with `./gradlew test` or per module (e.g., `:ui:shared:jvmTest`).
43+
- Unit tests: Kotlin Multiplatform `kotlin("test")`/JUnit. Run all with `./gradlew test` or per module (e.g., `:core:ui:jvmTest`).
4444
- Android UI tests: Espresso/Compose in `app/android/src/androidTest`. Run with `connectedCheck`.
4545
- Desktop UI tests: in `app/desktop/src/jvmTest` using `uiTestJUnit4`.
4646
- iOS UI tests: Multiplatform Compose UI tests in `app/ios-kit/src/commonTest`. Run with `:app:ios-kit:iosSimulatorArm64Test`.

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
140140

141141
### Refactoring
142142
- Improve UI test stability and maintainability
143-
- Create multiplatform `ui:test` module and move UI tests
143+
- Create multiplatform `core:test-ui` module and move UI tests
144144
- Simplify navigation methods and improve null handling in RouterImpl
145145
- Improve UI test retry logic and stability
146146

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ Closes #123
455455
```
456456

457457
```
458-
ui/shared: Fix dark theme colors in note editor
458+
core/ui: Fix dark theme colors in note editor
459459
460460
- Update Material 3 color scheme
461461
- Fix text visibility issues

app/android/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ android {
229229
}
230230

231231
dependencies {
232-
androidTestImplementation(project(":ui:test-jvm"))
232+
androidTestImplementation(project(":core:test-jvm"))
233233
androidTestUtil(libs.androidx.test.orchestrator)
234234
}
235235
```
@@ -317,7 +317,7 @@ fastlane production # Deploy to production
317317
- `core:domain` - Domain layer
318318
- `core:data` - Data layer (SQLDelight or Room)
319319
- `core:presentation` - ViewModels
320-
- `ui:shared` - Shared UI
320+
- `core:ui` - Shared UI
321321

322322
### Android
323323
- `androidx.activity.compose` - Activity with Compose
@@ -334,7 +334,7 @@ fastlane production # Deploy to production
334334
- `leakcanary.android` - Memory leak detection
335335

336336
### Testing
337-
- `ui:test-jvm` - UI test framework
337+
- `core:test-jvm` - UI test framework
338338
- `androidx.test.ext.junit` - AndroidX Test
339339
- `androidx.test.runner` - Test runner
340340
- `androidx.test.orchestrator` - Test orchestrator
@@ -466,8 +466,8 @@ val permissionLauncher = rememberLauncherForActivityResult(
466466

467467
## Related Modules
468468

469-
- **Depends on**: `ui:shared`, `core:presentation`, `core:data`, `core:domain`
470-
- **Test dependencies**: `ui:test-jvm`, `core:test`
469+
- **Depends on**: `core:ui`, `core:presentation`, `core:data`, `core:domain`
470+
- **Test dependencies**: `core:test-jvm`, `core:test`
471471
- **Alternative apps**: `app:desktop`, `app:web`, `app:iosApp`
472472

473473
## Resources

app/android/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ dependencies {
7373
implementation(projects.core.domain)
7474
implementation(project(project.property("CORE_DATA_DB_MODULE").toString()))
7575
implementation(projects.core.presentation)
76-
implementation(projects.ui.shared)
76+
implementation(projects.core.ui)
7777
implementation(projects.feature.backup.domain)
7878
implementation(projects.feature.backup.ui)
7979
implementation(kotlin("reflect", libs.versions.kotlin.get()))
@@ -101,8 +101,8 @@ dependencies {
101101
coreLibraryDesugaring(libs.desugar)
102102
testImplementation(libs.junit)
103103
testImplementation(libs.bundles.mockito)
104-
androidTestImplementation(projects.ui.test)
105-
androidTestImplementation(projects.ui.testJvm) {
104+
androidTestImplementation(projects.core.testUi)
105+
androidTestImplementation(projects.core.testJvm) {
106106
exclude(group = "org.jetbrains.runtime", module = "jbr-api")
107107
}
108108
androidTestImplementation(libs.commonsware.saferoom)

app/android/src/androidTest/java/com/softartdev/notedelight/ui/RotationTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import com.softartdev.notedelight.MainActivity
1313
import kotlinx.coroutines.test.runTest
1414
import leakcanary.DetectLeaksAfterTestSuccess
1515
import leakcanary.TestDescriptionHolder
16-
import notedelight.ui.shared.generated.resources.Res
17-
import notedelight.ui.shared.generated.resources.create_note
16+
import notedelight.core.ui.generated.resources.Res
17+
import notedelight.core.ui.generated.resources.create_note
1818
import org.jetbrains.compose.resources.getString
1919
import org.junit.Ignore
2020
import org.junit.Rule

app/desktop/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ kotlin {
2121
jvmMain.dependencies {
2222
implementation(projects.core.domain)
2323
implementation(projects.core.presentation)
24-
implementation(projects.ui.shared)
24+
implementation(projects.core.ui)
2525
implementation(libs.androidx.navigation.compose)
2626
implementation(project.dependencies.platform(libs.coroutines.bom))
2727
implementation(libs.coroutines.swing)
@@ -34,8 +34,8 @@ kotlin {
3434
implementation(libs.kermit)
3535
}
3636
jvmTest.dependencies {
37-
implementation(projects.ui.test)
38-
implementation(projects.ui.testJvm)
37+
implementation(projects.core.testUi)
38+
implementation(projects.core.testJvm)
3939
implementation(projects.feature.backup.ui)
4040
implementation(kotlin("test"))
4141
implementation(libs.compose.ui.test.junit4)

app/desktop/src/jvmMain/kotlin/com/softartdev/notedelight/Main.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import com.softartdev.notedelight.di.uiModules
1212
import com.softartdev.notedelight.ui.icon.FileLock
1313
import com.softartdev.notedelight.util.DEFAULT_APP_LOG_TAG
1414
import com.softartdev.notedelight.util.kermitLogger
15-
import notedelight.ui.shared.generated.resources.Res
16-
import notedelight.ui.shared.generated.resources.app_name
15+
import notedelight.core.ui.generated.resources.Res
16+
import notedelight.core.ui.generated.resources.app_name
1717
import org.jetbrains.compose.resources.stringResource
1818
import org.koin.core.context.startKoin
1919

app/ios-kit/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ func getName() -> String? { /* ... */ }
209209
- `core:domain` - Domain layer
210210
- `core:data:db-sqldelight` - Data layer
211211
- `core:presentation` - ViewModels
212-
- `ui:shared` - Shared Compose UI
212+
- `core:ui` - Shared Compose UI
213213

214214
### iOS Dependencies
215215
- `compose.ui` - Compose Multiplatform
@@ -362,7 +362,7 @@ Kotlin code can be debugged from Xcode with proper symbol mapping.
362362

363363
### UI Tests
364364

365-
The iOS kit includes multiplatform Compose UI tests that extend `CommonUiTests` from the `ui/test` module:
365+
The iOS kit includes multiplatform Compose UI tests that extend `CommonUiTests` from the `core/test-ui` module:
366366

367367
**Location**: `app/ios-kit/src/commonTest/kotlin/IosUiTests.kt`
368368

@@ -521,7 +521,7 @@ suspend fun loadNotes(): List<Note> {
521521

522522
## Related Modules
523523

524-
- **Packages**: `ui:shared`, `core:presentation`, `core:data`, `core:domain`
524+
- **Packages**: `core:ui`, `core:presentation`, `core:data`, `core:domain`
525525
- **Consumed by**: `app:iosApp`
526526
- **Alternative**: Direct framework embedding (without CocoaPods)
527527

app/ios-kit/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ kotlin {
3131
sourceSets {
3232
commonMain.dependencies {
3333
api(projects.core.domain)
34-
api(projects.ui.shared)
34+
api(projects.core.ui)
3535
implementation(libs.compose.ui)
3636
implementation(libs.compose.foundation)
3737
implementation(libs.compose.material3)
@@ -42,7 +42,7 @@ kotlin {
4242
}
4343
commonTest.dependencies {
4444
implementation(kotlin("test"))
45-
implementation(projects.ui.test)
45+
implementation(projects.core.testUi)
4646
implementation(libs.compose.ui.test)
4747
implementation(libs.compose.material.icons.extended)
4848
implementation(libs.androidx.lifecycle.runtime.compose)

0 commit comments

Comments
 (0)