Ayush Upadhyay
07/22/2024, 4:30 AMhfhbd
07/22/2024, 4:35 AMSkaldebane
07/22/2024, 4:59 AMAyush Upadhyay
07/22/2024, 5:04 AMSkaldebane
07/22/2024, 5:06 AMSkaldebane
07/22/2024, 5:08 AMAyush Upadhyay
07/22/2024, 5:11 AMproject-name-sdk-project/
├── project-name-core/
│ ├── src/
│ │ ├── commonMain/
│ │ │ └── kotlin/
│ │ │ └── com/project-name/core/
│ │ │ ├── ProjectName.kt
│ │ │ └── ProjectNamePlatform.kt
│ │ ├── androidMain/
│ │ │ └── kotlin/
│ │ │ └── com/project-name/core/
│ │ │ └── ProjectNamePlatform.kt
│ │ └── iosMain/
│ │ └── kotlin/
│ │ └── com/project-name/core/
│ │ └── ProjectNamePlatform.kt
│ └── build.gradle.kts
│
├── project-name-android/
│ ├── src/
│ │ └── main/
│ │ ├── kotlin/
│ │ │ └── com/project-name/android/
│ │ │ └── ProjectNameAndroid.kt
│ │ └── res/
│ └── build.gradle
│
├── project-name-android-ui/
│ ├── src/
│ │ └── main/
│ │ ├── kotlin/
│ │ │ └── com/project-name/android/ui/
│ │ │ ├── ProjectNameErrorDialog.kt
│ │ │ └── ProjectNamePerformanceView.kt
│ │ └── res/
│ └── build.gradle
│
├── project-name-ios/
│ ├── ProjectNameiOS/
│ │ ├── ProjectNameiOS.h
│ │ └── ProjectNameiOS.swift
│ └── ProjectNameiOS.xcodeproj
│
├── project-name-flutter/
│ ├── android/
│ │ └── src/
│ │ └── main/
│ │ └── kotlin/
│ │ └── com/project-name/flutter/
│ │ └── ProjectNameFlutterPlugin.kt
│ ├── ios/
│ │ └── Classes/
│ │ └── ProjectNameFlutterPlugin.swift
│ ├── lib/
│ │ └── project_name_flutter.dart
│ └── pubspec.yaml
│
├── project-name-react-native/
│ ├── android/
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/project-name/reactnative/
│ │ └── ProjectNameReactNativeModule.kt
│ ├── ios/
│ │ └── ProjectNameReactNative.swift
│ ├── src/
│ │ └── index.ts
│ └── package.json
│
├── samples/
│ ├── android-sample/
│ ├── ios-sample/
│ ├── flutter-sample/
│ └── react-native-sample/
│
├── docs/
│ ├── getting-started.md
│ ├── android-guide.md
│ ├── ios-guide.md
│ ├── flutter-guide.md
│ └── react-native-guide.md
│
├── scripts/
│ ├── build.sh
│ └── test.sh
│
├── .gitignore
├── README.md
└── settings.gradle.ktsAyush Upadhyay
07/22/2024, 5:11 AMSkaldebane
07/22/2024, 5:14 AMSkaldebane
07/22/2024, 5:17 AMproject-name-android
and project-name-android-ui
, if the non-UI one is just for logic, you don't need a separate subproject for it, just include it in the Android side of the shared KMP module.Skaldebane
07/22/2024, 5:21 AMjsMain
target to the shared module to support that too.
Same for Flutter, but I think there it's primarily through WebAssembly, so you'll probably need to add wasmJsMain
if you want to support web. Flutter also supports desktop, in that case a jvmMain
(without Android specifics) would be useful (and since androidMain
depends on jvmMain
, you could share the same code).hfhbd
07/22/2024, 5:23 AMAyush Upadhyay
07/22/2024, 5:23 AMAyush Upadhyay
07/22/2024, 5:24 AMAyush Upadhyay
07/22/2024, 5:24 AMAyush Upadhyay
07/22/2024, 5:25 AMSkaldebane
07/22/2024, 5:25 AMSkaldebane
07/22/2024, 5:26 AMSkaldebane
07/22/2024, 5:27 AMAyush Upadhyay
07/22/2024, 5:28 AMSkaldebane
07/22/2024, 5:30 AMSkaldebane
07/22/2024, 5:34 AMJokubas Trinkunas
07/22/2024, 7:31 AMJokubas Trinkunas
07/22/2024, 7:33 AMAyush Upadhyay
07/22/2024, 11:07 AMJokubas Trinkunas
07/22/2024, 11:13 AM