{"id":18550258,"url":"https://github.com/xorum-io/kmp_mobile_template","last_synced_at":"2025-04-09T22:31:14.155Z","repository":{"id":47937847,"uuid":"350050758","full_name":"xorum-io/kmp_mobile_template","owner":"xorum-io","description":"Template for the development of native iOS and Android apps with shared business-logic using KMP, Redux architecture and XcodeGen.","archived":false,"fork":false,"pushed_at":"2021-11-13T07:58:40.000Z","size":183,"stargazers_count":25,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T12:39:45.128Z","etag":null,"topics":["android","ios","kotlin","kotlin-multiplatform","mobile","redux","swift","xcodegen"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xorum-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-21T16:13:53.000Z","updated_at":"2024-03-29T10:06:38.000Z","dependencies_parsed_at":"2022-08-12T14:40:45.592Z","dependency_job_id":null,"html_url":"https://github.com/xorum-io/kmp_mobile_template","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xorum-io%2Fkmp_mobile_template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xorum-io%2Fkmp_mobile_template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xorum-io%2Fkmp_mobile_template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xorum-io%2Fkmp_mobile_template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xorum-io","download_url":"https://codeload.github.com/xorum-io/kmp_mobile_template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248123464,"owners_count":21051478,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","ios","kotlin","kotlin-multiplatform","mobile","redux","swift","xcodegen"],"created_at":"2024-11-06T21:04:01.083Z","updated_at":"2025-04-09T22:31:13.680Z","avatar_url":"https://github.com/xorum-io.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"## KMP Mobile Template\n\nThis is a template for the development of native iOS and Android apps with shared business-logic using [KMP](https://kotlinlang.org/lp/mobile/).\n\n[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.\n\n[XcodeGen](https://github.com/yonaskolb/XcodeGen) is used to generate `.xcodeproj` file from source files and `project.yml` file.\n\nFind more details on this template in [our Medium blog](https://yev-kanivets.medium.com/battle-tested-template-project-for-kotlin-multiplatform-54d0692bb00c?sk=399363810f81c43301472a08cbfef50d).\n\n## To Do\n\nOnce cloned do the following to adapt template to your needs.\n\n### Android (app and common folders)\n\n1. Update `applicationId` in `build.gradle`.\n2. Update `BACKEND_LINK` in `common/src/commonMain/kotlin/io/xorum/network/HttpClientFactory.kt`. If needed change `protocol` to `URLProtocol.HTTPS`\n3. Rename package `io.xorum` in `app` and `common` modules.\n4. Paste project name into the `cocoapods` and `xcode` in `common/build.gradle`.\n5. Rename `XorumApplication` class.\n6. Change `app_name` in `strings.xml`.\n7. Change `root.project.name` in `settings.gradle`.\n8. Change `group` in `gradle.properties`\n9. Change `spec.homepage` and `spec.summary` in `common.podspec`\n10. Change package in `common/src/main/AndroidManifest.xml`\n11. Don't forget to remove api.open-notify.org from network-security-config later\n\n### iOS (ios folder)\n\n1. Install XcodeGen (`brew install xcodegen`).\n2. Change all 3 folders prefixes from `KMP Mobile Template` to your project name.\n3. Change all occurrences of `KMP Mobile Template` in `Podfile` to your project name.\n4. Change all occurrences of `KMP Mobile Template` in `project.yml` to your project name.\n5. Update `PRODUCT_BUNDLE_IDENTIFIER` in `project.yml`.\n6. Give executable permission to `init.sh` (`chmod +x init.sh`).\n7. Execute `./init.sh` every time you need updated `common` in iOS app.\n8. Don't forget to remove api.open-notify.org from plist later\n\n## Release\n\n1. Generate `app/app.keystore` with \"app\" key alias, and secure passwords (update `signingConfigs`).\n2. Generate provisioning profiles, and include them in `project.yml`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxorum-io%2Fkmp_mobile_template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxorum-io%2Fkmp_mobile_template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxorum-io%2Fkmp_mobile_template/lists"}