Skip to content

taki/implement-onboarding - #2

Merged
dbAbstract merged 33 commits into
mainfrom
taki/implement-onboarding
Apr 29, 2026
Merged

dbAbstract merged 33 commits into
mainfrom
taki/implement-onboarding

Conversation

@dbAbstract

Copy link
Copy Markdown
Owner

No description provided.

…e patterns

- Rename `SplashPresenter`, `AuthPresenter`, and `ProfileSetupPresenter` to `SplashViewModel`, `AuthViewModel`, and `ProfileSetupViewModel`
- Implement `EventHandler` interfaces and `UiAction` channels for navigation and side effects
- Decouple presentation components into dedicated files and packages
- Integrate `DispatcherProvider` for explicit coroutine context management
- Remove `libs:presentation` module and consolidate dependencies in `:feature:onboarding:presentation`
- Update Koin modules and iOS dependency injection helpers to reflect renaming
- Integrate `androidx.splashscreen` and configure `Theme.Yaseyo.Starting`.
- Implement `MainModuleInitializer` using `androidx.startup` to load Koin modules.
- Add `MainViewModel` to manage app state during the splash screen transition.
- Update `libs/navigation` and `feature/onboarding/api` to use `api` configuration for navigation dependencies.
- Define `mainModule` for Android-specific dependency injection.
- Implement `NavDisplay` in `App.kt` using `koinEntryProvider` and standard entry decorators.
- Add `koin-compose-navigation3` dependency to `composeApp` and `feature:onboarding:api`.
- Refactor `MainViewModel` to resolve the `startDestination` flow based on `AppState`.
- Update `MainActivity` to handle initial navigation via `LaunchedEffect` and the `Navigator` singleton.
- Simplify `Navigator` by removing `replaceRootDestination` and initializing with an empty backstack.
- Remove unused `RootDestination` from `AppRoute`.
…forcement

- Rename `:feature:onboarding:impl` to `:feature:onboarding:android` and convert it to a standard Android library.
- Add `AndroidLibraryConventionPlugin` to handle common Android library configurations.
- Implement `enforceInternalModuleBoundaries` logic to restrict access to `:impl` and `:android` modules.
- Update Koin initialization to use the new onboarding Android module.
- Clean up dependencies in onboarding API and aggregate modules.
…ides

*   Revise `:feature` module structure to include `:api`, optional `:impl`, and `:android` (pure Android) modules.
*   Update parent proxy module pattern to focus on transitively re-exporting `:api` without hosting source code or aggregated Koin modules.
*   Centralize Koin DI composition in `:libs:di`, referencing platform-specific and common modules directly instead of using per-feature aggregators.
*   Document `ModuleBoundaryEnforcement` rules for internal module dependencies.
*   Update step-by-step feature creation and Koin wiring checklists to reflect the new architecture.
@dbAbstract
dbAbstract merged commit 6cd6f49 into main Apr 29, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant