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
applicationId
inbuild.gradle
. - Update
BACKEND_LINK
incommon/src/commonMain/kotlin/io/xorum/network/HttpClientFactory.kt
. If needed changeprotocol
toURLProtocol.HTTPS
- Rename package
io.xorum
inapp
andcommon
modules. - Paste project name into the
cocoapods
andxcode
incommon/build.gradle
. - Rename
XorumApplication
class. - Change
app_name
instrings.xml
. - Change
root.project.name
insettings.gradle
. - Change
group
ingradle.properties
- Change
spec.homepage
andspec.summary
incommon.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 Template
to your project name. - Change all occurrences of
KMP Mobile Template
inPodfile
to your project name. - Change all occurrences of
KMP Mobile Template
inproject.yml
to your project name. - Update
PRODUCT_BUNDLE_IDENTIFIER
inproject.yml
. - Give executable permission to
init.sh
(chmod +x init.sh
). - Execute
./init.sh
every time you need updatedcommon
in iOS app. - Don't forget to remove api.open-notify.org from plist later
- Generate
app/app.keystore
with "app" key alias, and secure passwords (updatesigningConfigs
). - Generate provisioning profiles, and include them in
project.yml
.