Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xorum-io/kmp_mobile_template
Template for the development of native iOS and Android apps with shared business-logic using KMP, Redux architecture and XcodeGen.
https://github.com/xorum-io/kmp_mobile_template
android ios kotlin kotlin-multiplatform mobile redux swift xcodegen
Last synced: about 6 hours ago
JSON representation
Template for the development of native iOS and Android apps with shared business-logic using KMP, Redux architecture and XcodeGen.
- Host: GitHub
- URL: https://github.com/xorum-io/kmp_mobile_template
- Owner: xorum-io
- Created: 2021-03-21T16:13:53.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-11-13T07:58:40.000Z (almost 3 years ago)
- Last Synced: 2023-03-05T18:01:22.452Z (over 1 year ago)
- Topics: android, ios, kotlin, kotlin-multiplatform, mobile, redux, swift, xcodegen
- Language: Kotlin
- Homepage:
- Size: 179 KB
- Stars: 22
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## KMP Mobile Template
This is a template for the development of native iOS and Android apps with shared business-logic using [KMP](https://kotlinlang.org/lp/mobile/).
[Redux architecture](https://medium.com/xorum-io/redux-for-android-with-kotlin-in-practice-part-1-initial-setup-8f1a417d466e) is used to facilitate interactions between **Android / iOS** user-facing and **common** modules.
[XcodeGen](https://github.com/yonaskolb/XcodeGen) is used to generate `.xcodeproj` file from source files and `project.yml` file.
Find more details on this template in [our Medium blog](https://yev-kanivets.medium.com/battle-tested-template-project-for-kotlin-multiplatform-54d0692bb00c?sk=399363810f81c43301472a08cbfef50d).
## To Do
Once cloned do the following to adapt template to your needs.
### Android (app and common folders)
1. Update `applicationId` in `build.gradle`.
2. Update `BACKEND_LINK` in `common/src/commonMain/kotlin/io/xorum/network/HttpClientFactory.kt`. If needed change `protocol` to `URLProtocol.HTTPS`
3. Rename package `io.xorum` in `app` and `common` modules.
4. Paste project name into the `cocoapods` and `xcode` in `common/build.gradle`.
5. Rename `XorumApplication` class.
6. Change `app_name` in `strings.xml`.
7. Change `root.project.name` in `settings.gradle`.
8. Change `group` in `gradle.properties`
9. Change `spec.homepage` and `spec.summary` in `common.podspec`
10. Change package in `common/src/main/AndroidManifest.xml`
11. Don't forget to remove api.open-notify.org from network-security-config later### iOS (ios folder)
1. Install XcodeGen (`brew install xcodegen`).
2. Change all 3 folders prefixes from `KMP Mobile Template` to your project name.
3. Change all occurrences of `KMP Mobile Template` in `Podfile` to your project name.
4. Change all occurrences of `KMP Mobile Template` in `project.yml` to your project name.
5. Update `PRODUCT_BUNDLE_IDENTIFIER` in `project.yml`.
6. Give executable permission to `init.sh` (`chmod +x init.sh`).
7. Execute `./init.sh` every time you need updated `common` in iOS app.
8. Don't forget to remove api.open-notify.org from plist later## Release
1. Generate `app/app.keystore` with "app" key alias, and secure passwords (update `signingConfigs`).
2. Generate provisioning profiles, and include them in `project.yml`.