{"id":19680317,"url":"https://github.com/touchlab/compose-swiftui-codelab","last_synced_at":"2025-07-12T17:36:43.139Z","repository":{"id":240796046,"uuid":"801194704","full_name":"touchlab/compose-swiftui-codelab","owner":"touchlab","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-28T15:59:59.000Z","size":225,"stargazers_count":34,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-06-02T22:51:13.771Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/touchlab.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-15T19:17:12.000Z","updated_at":"2025-04-06T19:48:48.000Z","dependencies_parsed_at":"2024-05-22T11:10:55.689Z","dependency_job_id":null,"html_url":"https://github.com/touchlab/compose-swiftui-codelab","commit_stats":null,"previous_names":["touchlab/compose-swiftui-codelab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/touchlab/compose-swiftui-codelab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Fcompose-swiftui-codelab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Fcompose-swiftui-codelab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Fcompose-swiftui-codelab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Fcompose-swiftui-codelab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/touchlab","download_url":"https://codeload.github.com/touchlab/compose-swiftui-codelab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Fcompose-swiftui-codelab/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265026073,"owners_count":23699882,"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":[],"created_at":"2024-11-11T18:04:43.124Z","updated_at":"2025-07-12T17:36:43.115Z","avatar_url":"https://github.com/touchlab.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multiplatform Compose + SwiftUI = The Native App Future\n\nIn this codelab, we will look in KMP's killer feature, interop! Compose and SwiftUI can work together.\nRender “native” UI or shared Compose UI, with the same underlying logic.\nMake more UI “native”, or build more features with shared UI, and make those decisions incrementally.\n\n## Requirements\n\nYou will need the following:\n\n- JVM 17\n- Android SDK and the latest stable Android Studio (2023.3+)\n- Mac with Xcode 15.1+ for the iOS build\n\nYou can validate if everything is setup properly by using [kdoctor](https://github.com/Kotlin/kdoctor).\n\n## Getting Started\n\nClone this repository at your machine\n\n`git clone git@github.com:touchlab/compose-swiftui-codelab.git`\n\nOnce cloned, open the project in Android Studio. Wait for Gradle to complete sync and run the Android app.\n\nNext, open `iosApp/iosApp.xcodeproj` in Xcode or execute in terminal `xed iosApp/`. Run the project in a real device or iOS Simulator.\n\nOn Android, we will use Google Maps, it requires setup the Maps Key on the `gradle.properties`. [Google Maps Documentation for setup key](https://developers.google.com/maps/documentation/android-sdk/get-api-key)\n\n`MAPS_API_KEY=Your Api Key`\n\n## Stack\n\n- [Compose KMP](https://github.com/JetBrains/compose-multiplatform)\n- [Voyager](https://github.com/adrielcafe/voyager) for Compose Multiplatform navigation\n- [Jetpack ViewModel KMP](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-lifecycle.html#viewmodel-implementation) recently announced ViewModel KMP with Voyager experimental support\n- [SKIE](https://github.com/touchlab/SKIE) Swift friendly API\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftouchlab%2Fcompose-swiftui-codelab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftouchlab%2Fcompose-swiftui-codelab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftouchlab%2Fcompose-swiftui-codelab/lists"}