Skip to content

Commit e5fe99c

Browse files
committed
WIP: complete modular architecture refactor
- Reorganize entire codebase into feature-based modular architecture - Move presentation components to feature modules (home, settings, statistics) - Separate core functionality into dedicated modules (data, database, network, domain, model, ui, designsystem, datastore) - Restructure navigation with renamed SofiaTrackerNavHost and updated routing - Update all import statements across modules to reflect new package structure - Configure build dependencies and module relationships for clean architecture - Move Hilt modules to appropriate core modules (database, network, data) - Update all ViewModels, repositories, and use cases with new namespacing - Refactor UI components and screens to use modular design system This represents a major architectural improvement for better separation of concerns, testability, and maintainability following Android's recommended app architecture patterns.
1 parent c69becd commit e5fe99c

69 files changed

Lines changed: 417 additions & 348 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.

app/build.gradle.kts

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,16 @@ android {
4444
}
4545

4646
dependencies {
47-
//implementation(projects.feature.home)
48-
//implementation(projects.feature.settings)
49-
//implementation(projects.feature.statistics)
50-
51-
5247
implementation(projects.core.common)
5348
implementation(projects.core.designsystem)
54-
//implementation(projects.core.domain)
55-
//implementation(projects.core.data)
49+
implementation(projects.core.domain)
50+
implementation(projects.core.data)
5651
implementation(projects.core.datastore)
52+
implementation(projects.core.database)
53+
54+
implementation(projects.feature.home)
55+
implementation(projects.feature.settings)
56+
implementation(projects.feature.statistics)
5757

5858
implementation(libs.androidx.core.ktx)
5959
implementation(libs.androidx.lifecycle.runtime.ktx)
@@ -63,18 +63,13 @@ dependencies {
6363
implementation(libs.androidx.ui.graphics)
6464
implementation(libs.androidx.ui.tooling.preview)
6565
implementation(libs.androidx.material3)
66-
67-
// Room
68-
implementation(libs.androidx.room.runtime)
69-
implementation(libs.androidx.room.ktx)
70-
kapt(libs.androidx.room.compiler)
71-
66+
7267
// Hilt
7368
implementation(libs.hilt.android)
7469
ksp(libs.hilt.compiler)
7570
implementation(libs.androidx.hilt.navigation.compose)
7671
implementation(libs.androidx.hilt.work)
77-
72+
7873
// Navigation
7974
implementation(libs.androidx.navigation.compose)
8075

@@ -92,9 +87,6 @@ dependencies {
9287
// WorkManager
9388
implementation(libs.androidx.work.runtime.ktx)
9489

95-
// DataStore
96-
implementation(libs.androidx.datastore.preferences)
97-
9890
testImplementation(libs.junit)
9991
androidTestImplementation(libs.androidx.junit)
10092
androidTestImplementation(libs.androidx.espresso.core)

app/src/main/java/com/dpconde/sofiatracker/MainActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import android.os.Bundle
44
import androidx.activity.ComponentActivity
55
import androidx.activity.compose.setContent
66
import androidx.activity.enableEdgeToEdge
7-
import com.dpconde.sofiatracker.presentation.navigation.SofiaTrackerNavigation
7+
import com.dpconde.sofiatracker.presentation.navigation.SofiaTrackerNavHost
88
import com.dpconde.sofiatracker.core.designsystem.theme.SofiaTrackerTheme
99
import dagger.hilt.android.AndroidEntryPoint
1010

@@ -15,7 +15,7 @@ class MainActivity : ComponentActivity() {
1515
enableEdgeToEdge()
1616
setContent {
1717
SofiaTrackerTheme {
18-
SofiaTrackerNavigation()
18+
SofiaTrackerNavHost()
1919
}
2020
}
2121
}

app/src/main/java/com/dpconde/sofiatracker/SofiaTrackerApplication.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,12 @@ import android.app.Application
44
import android.util.Log
55
import androidx.hilt.work.HiltWorkerFactory
66
import androidx.work.Configuration
7-
import com.dpconde.sofiatracker.data.remote.FirebaseConnectionChecker
8-
import com.dpconde.sofiatracker.data.sync.SyncManager
9-
import com.dpconde.sofiatracker.data.work.SyncWorkManager
7+
import com.dpconde.sofiatracker.core.data.work.SyncWorkManager
108
import com.google.firebase.FirebaseApp
119
import dagger.hilt.android.HiltAndroidApp
1210
import kotlinx.coroutines.CoroutineScope
1311
import kotlinx.coroutines.Dispatchers
1412
import kotlinx.coroutines.SupervisorJob
15-
import kotlinx.coroutines.launch
1613
import javax.inject.Inject
1714

1815
@HiltAndroidApp
@@ -24,11 +21,11 @@ class SofiaTrackerApplication : Application(), Configuration.Provider {
2421
@Inject
2522
lateinit var syncWorkManager: SyncWorkManager
2623

27-
@Inject
28-
lateinit var firebaseConnectionChecker: FirebaseConnectionChecker
24+
//@Inject
25+
//lateinit var firebaseConnectionChecker: FirebaseConnectionChecker
2926

3027
@Inject
31-
lateinit var syncManager: SyncManager
28+
lateinit var syncManager: com.dpconde.sofiatracker.core.data.sync.SyncManager
3229

3330
private val applicationScope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
3431

app/src/main/java/com/dpconde/sofiatracker/domain/usecase/AddEventUseCase.kt

Lines changed: 0 additions & 13 deletions
This file was deleted.

app/src/main/java/com/dpconde/sofiatracker/domain/usecase/DeleteEventUseCase.kt

Lines changed: 0 additions & 13 deletions
This file was deleted.

app/src/main/java/com/dpconde/sofiatracker/domain/usecase/GetBabyNameUseCase.kt

Lines changed: 0 additions & 13 deletions
This file was deleted.

app/src/main/java/com/dpconde/sofiatracker/domain/usecase/GetEventByIdUseCase.kt

Lines changed: 0 additions & 13 deletions
This file was deleted.

app/src/main/java/com/dpconde/sofiatracker/domain/usecase/GetEventsByTypeUseCase.kt

Lines changed: 0 additions & 15 deletions
This file was deleted.

app/src/main/java/com/dpconde/sofiatracker/domain/usecase/GetRecentEventsByTypeUseCase.kt

Lines changed: 0 additions & 15 deletions
This file was deleted.

app/src/main/java/com/dpconde/sofiatracker/domain/usecase/UpdateEventUseCase.kt

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)