Skip to content

Project Requirements

Ali Sadeghi edited this page Jan 6, 2026 · 7 revisions

Project Requirements

Directory Structure

YourProject/
├── composeApp/
│   └── src/commonMain/kotlin/{pkg}/
│       ├── initKoin.kt # Must contain startKoin
│       └── BaseAppNavHost.kt # Must contain NavHost
├── core/
│   ├── common/ # Either, UiState, BaseFeature, setState
│   ├── data/ # ApiClient, network layer
│   └── designsystem/ # X-components (XTheme, XButton, etc.)
└── feature/
    └── {featurename}/ # Feature modules (lowercase)

Required Patterns

  • Either for error handling
  • UiState with 4 states (Uninitialized/Loading/Success/Failed)
  • BaseFeature for DI auto-registration
  • setState { } for state updates
  • X-components for UI (no Material3)
  • Koin for dependency injection
  • Type-safe navigation with callbacks

Clone this wiki locally