{"id":19680138,"url":"https://github.com/touchlab/compose-swift-bridge","last_synced_at":"2025-04-07T06:12:08.936Z","repository":{"id":261287076,"uuid":"813654371","full_name":"touchlab/compose-swift-bridge","owner":"touchlab","description":"Automate the boilerplate of blending Compose UI and native UI on iOS","archived":false,"fork":false,"pushed_at":"2024-12-03T21:12:33.000Z","size":418,"stargazers_count":92,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-31T05:05:37.277Z","etag":null,"topics":["compose-multiplatform","ios","kotlin","kotlin-multiplatform","swift","swiftui"],"latest_commit_sha":null,"homepage":"https://touchlab.co/composeswiftbridge","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/touchlab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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-06-11T13:43:12.000Z","updated_at":"2025-03-25T18:15:19.000Z","dependencies_parsed_at":"2025-01-31T13:10:37.424Z","dependency_job_id":"943859c7-5eea-452a-95af-813eb75c3e20","html_url":"https://github.com/touchlab/compose-swift-bridge","commit_stats":null,"previous_names":["touchlab/compose-swift-bridge"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Fcompose-swift-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Fcompose-swift-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Fcompose-swift-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Fcompose-swift-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/touchlab","download_url":"https://codeload.github.com/touchlab/compose-swift-bridge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601449,"owners_count":20964864,"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":["compose-multiplatform","ios","kotlin","kotlin-multiplatform","swift","swiftui"],"created_at":"2024-11-11T18:04:07.483Z","updated_at":"2025-04-07T06:12:08.917Z","avatar_url":"https://github.com/touchlab.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Compose Swift Bridge\n\nCompose Swift Bridge is an experimental tool that helps you define expect composable functions to be\nimplemented later on the iOS Project using Swift. The tool works by generating Kotlin and Swift code\nbased on the Expect Composable functions annotated with `@ExpectSwiftView` and generate a View factory interface that will be implemented\nby hand in the iOS Project. Also, the tool generates an ObservableObject for each parameter in the Expect Composable function\nallowing to easily keep the state parameter updated in the SwiftUI View without any hassle. This is all possible by using [SKIE](https://skie.touchlab.co/) Sub Plugin API and KSP.\n\nSee docs at [Compose Swift Bridge](https://touchlab.co/composeswiftbridge)\n\n### Running The Sample\n\nThe sample project showcases the Compose Swift Bridge by defining an expect/actual `MapView`. The\nsample displays a [SwiftUI MapKit Map](https://developer.apple.com/documentation/mapkit/mapkit_for_swiftui) on iOS, \nand a [Google Maps Composable](https://github.com/googlemaps/android-maps-compose) on Android.\n\nIn order to run the sample you'll need to correctly configure Google Maps on Android (iOS does not need an API key). \nFor that you will need a [Google Maps API key](https://developers.google.com/maps/documentation/android-sdk/get-api-key).\n\nThen you'll need to create a `secrets.properties` file in the root and add that API key to your `secrets.properties` like so:\n\n```\nMAPS_API_KEY=YOUR_API_KEY\n```\n\n\u003e If you don't need to view the actual map, then you can leave the API key blank like so: `MAPS_API_KEY=`\n\n\n## License\n\n```\nCopyright 2024 Touchlab, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftouchlab%2Fcompose-swift-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftouchlab%2Fcompose-swift-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftouchlab%2Fcompose-swift-bridge/lists"}