This is a template for the development of native iOS and Android apps with shared business-logic using KMP.
Redux architecture is used to facilitate interactions between Android / iOS user-facing and common modules.
XcodeGen is used to generate .xcodeproj file from source files and project.yml file.
Find more details on this template in our Medium blog.
Once cloned do the following to adapt template to your needs.
- Update
applicationIdinbuild.gradle. - Update
BACKEND_LINKincommon/src/commonMain/kotlin/io/xorum/network/HttpClientFactory.kt. If needed changeprotocoltoURLProtocol.HTTPS - Rename package
io.xoruminappandcommonmodules. - Paste project name into the
cocoapodsandxcodeincommon/build.gradle. - Rename
XorumApplicationclass. - Change
app_nameinstrings.xml. - Change
root.project.nameinsettings.gradle. - Change
groupingradle.properties - Change
spec.homepageandspec.summaryincommon.podspec - Change package in
common/src/main/AndroidManifest.xml - Don't forget to remove api.open-notify.org from network-security-config later
- Install XcodeGen (
brew install xcodegen). - Change all 3 folders prefixes from
KMP Mobile Templateto your project name. - Change all occurrences of
KMP Mobile TemplateinPodfileto your project name. - Change all occurrences of
KMP Mobile Templateinproject.ymlto your project name. - Update
PRODUCT_BUNDLE_IDENTIFIERinproject.yml. - Give executable permission to
init.sh(chmod +x init.sh). - Execute
./init.shevery time you need updatedcommonin iOS app. - Don't forget to remove api.open-notify.org from plist later
- Generate
app/app.keystorewith "app" key alias, and secure passwords (updatesigningConfigs). - Generate provisioning profiles, and include them in
project.yml.