{"id":17540157,"url":"https://github.com/kiliankoe/karte","last_synced_at":"2025-08-22T03:31:58.082Z","repository":{"id":53500177,"uuid":"88142362","full_name":"kiliankoe/Karte","owner":"kiliankoe","description":"🗺 Conveniently launch directions in other iOS apps","archived":false,"fork":false,"pushed_at":"2024-02-01T10:27:31.000Z","size":192,"stargazers_count":108,"open_issues_count":11,"forks_count":13,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-12-10T08:10:26.152Z","etag":null,"topics":["action-sheet","apple-maps","cocoapod","navigation","navigation-apps","transport","url-scheme","url-schemes"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kiliankoe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2017-04-13T08:26:01.000Z","updated_at":"2024-11-25T20:04:58.000Z","dependencies_parsed_at":"2024-06-11T19:17:14.696Z","dependency_job_id":null,"html_url":"https://github.com/kiliankoe/Karte","commit_stats":{"total_commits":140,"total_committers":3,"mean_commits":"46.666666666666664","dds":0.02857142857142858,"last_synced_commit":"bb5af904ac38d3ecdbf742c29ab1b5cd0f6a00d6"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiliankoe%2FKarte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiliankoe%2FKarte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiliankoe%2FKarte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiliankoe%2FKarte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kiliankoe","download_url":"https://codeload.github.com/kiliankoe/Karte/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230554330,"owners_count":18244234,"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":["action-sheet","apple-maps","cocoapod","navigation","navigation-apps","transport","url-scheme","url-schemes"],"created_at":"2024-10-20T22:08:33.972Z","updated_at":"2024-12-20T08:08:46.084Z","avatar_url":"https://github.com/kiliankoe.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003eKarte\n  \u003cimg src=\"https://user-images.githubusercontent.com/2625584/39985249-4a74987c-575e-11e8-9c4a-8c0dbd07e8ef.png\"\n       align=\"right\" width=\"128\" height=\"128\" /\u003e\n\u003c/h1\u003e\n\n[![Travis](https://img.shields.io/travis/kiliankoe/Karte.svg?style=flat-square)](https://travis-ci.org/kiliankoe/Karte)\n[![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/kiliankoe/karte?style=flat-square)](https://github.com/kiliankoe/Karte/releases)\n\nSmall library for opening a location or route in other popular iOS navigation apps.\n\nCurrently supported are **Apple Maps, Google Maps, Citymapper, Transit, Lyft, Uber, Navigon, Waze, DB Navigator, Yandex.Navi and Moovit**.\n\nKnow of any other navigation apps that can be opened via URL scheme or universal link? Please open an issue and/or PR 🙃\n\n\n## Quick Start\n\nCheck if an app is installed.\n\n```swift\nif Karte.isInstalled(.citymapper) {\n    print(\"Citymapper is installed 🎉\")\n}\n```\n\nLaunch a specific app with directions.\n\n```swift\nlet coordinate = CLLocationCoordinate2D(latitude: 52.5162746, longitude: 13.3755153)\nlet berlin = Karte.Location(name: \"Brandenburger Tor Berlin\", coordinate: coordinate)\nKarte.launch(app: .googleMaps, destination: berlin)\n```\n\nOr directly present the user with an action sheet listing all installed navigation apps to pick from.\n\n```swift\nKarte.presentPicker(destination: location, presentOn: viewController)\n```\n\nIf you need more control in how to present the action sheet (e.g. on an iPad), you can get a configured one from Karte without having it presented directly.\n\n```swift\nlet alert = Karte.createPicker(destination: location)\n```\n\n\n\n`.launch()`, `.presentPicker()` and `.createPicker()` have a few extra parameters with default values set that you can change to your liking. Most important to note would be an origin location, which can of course also be specified. Leaving it blank defaults to the user's current location in most apps.\n\nA mode of transport can also be specified, which would then filter unsupported apps from the picker. Be aware that trying to launch an app directly with a specific mode of transport will verify if the app supports that mode and throw a `Karte.Error.unsupportedMode` otherwise.\n\n\n## Caveat\n\nPlease be aware that for `.isInstalled()`, `.presentPicker()` and `.createPicker()` to work you will have to have added the necessary URL schemes to your app's `Info.plist` beforehand. See [Apple's Docs](https://developer.apple.com/reference/uikit/uiapplication/1622952-canopenurl#discussion) for more info on this. The necessary URL schemes can be found [here](https://github.com/kiliankoe/Karte/blob/master/Sources/App.swift#L24). You're still free to try and launch apps via `Karte.launch(app:to:)` regardless of registered URL schemes, although that obviously might result in nothing happening if the app isn't there. Don't forget that even Apple Maps can be \"uninstalled\" now 😉\n\nThe section to add to your `Info.plist` should look like this:\n\n```xml\n\u003ckey\u003eLSApplicationQueriesSchemes\u003c/key\u003e\n    \u003carray\u003e\n        \u003cstring\u003ecomgooglemaps\u003c/string\u003e\n        \u003cstring\u003ecitymapper\u003c/string\u003e\n        \u003cstring\u003etransit\u003c/string\u003e\n        \u003cstring\u003elyft\u003c/string\u003e\n        \u003cstring\u003euber\u003c/string\u003e\n        \u003cstring\u003enavigon\u003c/string\u003e\n        \u003cstring\u003ewaze\u003c/string\u003e\n        \u003cstring\u003edbnavigator\u003c/string\u003e\n        \u003cstring\u003eyandexnavi\u003c/string\u003e\n        \u003cstring\u003emoovit\u003c/string\u003e\n    \u003c/array\u003e\n```\n\n\n\n## Installation\n\nKarte is available through SwiftPM. Just copy `https://github.com/kiliankoe/Karte` into Xcode ✌️ \n\n\n## Credits\n\nThis library is based on [CMMapLauncher](https://github.com/citymapper/CMMapLauncher). Unfortunately development on that library seems to have been stopped, so this is a reimplementation in Swift including a few changes and other apps to make usage even more pleasant 😊\n\n\n\n## Authors\n\nKilian Koeltzsch, [@kiliankoe](https://github.com/kiliankoe)\n\n\n\n## \"Karte\"?\n\nIt's German for \"Map\" and that seemed fitting 🤷‍♀️\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiliankoe%2Fkarte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkiliankoe%2Fkarte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiliankoe%2Fkarte/lists"}