The mobile design of Core, as the essential module for navigation, encapsulates events both specific to its functionality, and the generic files that are added to by other modules, including the other T1 modules. It is therefore appropriate to treat the core module as owner of the Android Manifest, the module-level gradle files, the ApiClient.kt, the BaseDrawer, etc.
├── build.gradle.kts
├── settings.gradle.kts
├── gradle.properties
├── gradlew
├── gradlew.bat
├── README.md
│
├── app/
├── shared/
├── ios/
KMM Directory Map
build.gradle.kts
settings.gradle.kts
gradle.properties
├── app/ # :app (Android)
│ ├── build.gradle.kts
│ └── src/
│ ├── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/example/magictoyboxgenericmobile/
│ │ │ ├── MyApp.kt # (Application)
│ │ │ └── core/
│ │ │ ├── BaseDrawerActivity.kt
│ │ │ ├── CoreNavigator.kt
│ │ │ ├── DrawerToggleHelper.kt
│ │ │ ├── Logging.kt
│ │ │ └── network/
│ │ │ └── NetworkStatusObserver.kt
│ │ │
│ │ └── res/
build.gradle.kts
Kotlin Source
│ │ └── res/
│ │ ├── layout/
│ │ │ ├── branding_header.xml
│ │ │ └── core_state_empty.xml
│ │ │
│ │ ├── drawable/
│ │ │ ├── header_background.xml
│ │ │ └── ic_menu_core.xml
│ │ │
│ │ ├── menu/
│ │ │ └── navigation_menu.xml
│ │ │
│ │ ├── values/
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ ├── dimens.xml
│ │ │ └── themes.xml
│ │ │
│ │ └── xml/
│ │ ├── network_security_config.xml
│ │ └── shortcuts_core.xml
├── shared/ # :shared (KMM shared module)
│ ├── build.gradle.kts
│ └── src/
│ ├── commonMain/
│ │ ├── kotlin/
│ │ │ └── com/example/magictoyboxgenericmobile/core/
│ │ │ ├── CoreConfig.kt
│ │ │ ├── AppRoutes.kt
│ │ │ ├── Result.kt
│ │ │ ├── Logger.kt
│ │ │ └── util/
│ │ │ ├── DateTimeUtils.kt
│ │ │ └── Validation.kt
│ │ └── resources/
│ │ └── core_strings.properties
│ │
│ ├── androidMain/
│ │ └── kotlin/
│ │ └── com/example/magictoyboxgenericmobile/core/
│ │ ├── PlatformCore.kt # actual for Android
│ │ └── AndroidLogger.kt
│ │
│ └── iosMain/
│ └── kotlin/
│ └── com/example/magictoyboxgenericmobile/core/
│ ├── PlatformCore.kt # actual for iOS
│ └── IOSLogger.kt
build.gradle.kts
commonMain
androidMain
iosMain
└── ios/ # iOS app target (Swift/SwiftUI)
├── MTGenericMobile.xcodeproj/
├── MTGenericMobile/
│ ├── Info.plist
│ ├── Core/
│ │ ├── CoreRootView.swift # SwiftUI host of “core” area
│ │ ├── DrawerHost.swift
│ │ ├── CoreNavigationCoordinator.swift
│ │ └── Utilities/
│ │ └── IOSLoggerBridge.swift # bridges to shared Logger if needed
│ ├── Assets.xcassets/
│ │ ├── AppIcon.appiconset/Contents.json
│ │ └── Core/
│ │ ├── HeaderBackground.colorset/Contents.json
│ │ └── DrawerIcon.imageset/Contents.json
│ └── Preview Content/
│ └── PreviewAssets.xcassets/Contents.json
│
└── MTGenericMobileTests/
└── CoreTests.swift