PackageTrack
Sign in Get early access

map_launcher

Map Launcher is a flutter plugin to find available maps installed on a device and launch them with a marker or show directions.

6.0.0 175K downloads/mo #901 most downloaded on pub.dev mattermoran/map_launcher

What this package is like to depend on

Last release 27 days ago

27 Jul 2026

Release timing varies

gaps range from 8 days to 11 months

Nearly every release is documented

notes for 68 of 68 stable releases

1 version withdrawn

withdrawn after publishing

7 years old

70 releases · first in 2019

7 releases in the last 12 months

see the full history below

Release timeline

70 releases · Oct 2019 to Jul 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 70
  1. 6.0.0 27 Jul 2026
    Release notes

    Add your own map apps, ship only the maps you use, and launch them in one line.

    Maps are now MapApp objects instead of enum values. Subclass MapApp to
    add any map app without forking the plugin. Only the maps you reference are
    compiled into your app
    , so URL schemes, package names, and icons of unused
    maps never touch your binary. And discovery results are directly launchable:
    maps.first.show().

    See MIGRATION.md for the full 5.x → 6.0 guide.

    New Features:

    • Custom maps: subclass MapApp to add any map app (regional, proprietary,
      internal) without forking the plugin. Works everywhere a built-in map does,
      including discovery and launching.
    • Tree-shakeable maps: referencing MapApp.waze compiles in only Waze's
      code, strings, and icon. Unreferenced maps are stripped completely from
      release binaries, verified by scanning AOT snapshots.
    • Launchable discovery results: final maps = await request.getSupportedMaps([...])
      then maps.first.show(). No more request/mapType plumbing in pickers.
    • Misconfiguration warning (iOS): debug builds print a warning when a map
      passed to discovery is missing from LSApplicationQueriesSchemes, naming
      the exact scheme to add. Previously indistinguishable from "not installed".
    • Official app icons: 256×256 PNG icons sourced from iTunes and Google Play
      Store APIs, embedded as Uint8List. No flutter_svg dependency needed.
      Run dart run tool/fetch_icons.dart to refresh.
    • Generic native layer: iOS/Android detection is driven entirely from
      Dart. The native code has zero map-specific knowledge.

    Breaking Changes:

    • MapType enum → MapApp objects: MapType.googleMapApp.google.
      Dot-shorthand call sites like show(map: .google) compile unchanged.
    • Discovery takes an explicit list: getSupportedMaps()
      getSupportedMaps([.apple, .google, .waze]), getAvailableMaps()
      getAvailableMaps(myMaps). Use MapApp.all for every supported map (this
      opts out of tree shaking).
    • Icons are PNG bytes, not SVG assets: SvgPicture.asset(map.icon)
      Image.memory(map.iconBytes). No extra dependencies needed. flutter_svg
      is no longer required.
    • SupportedMap: map.mapTypemap.map (a MapApp),
      map.displayNamemap.name. Entries returned by a request are directly
      launchable via map.show().
    • Persisted map names: MapType.values.byName(saved)
      myMaps.firstWhere((m) => m.id == saved). MapApp.id matches the old
      enum names, so stored preferences keep working.
    • Removed maps: truckmeister (discontinued by Flitsmeister) and
      spedionNavigation (integrated module in the SPEDION fleet app, not a
      standalone map) have been removed. Use the custom MapApp subclass feature
      to add them back if needed.

    What's Changed

    Full Changelog: v5.0.1...v6.0.0

    Open source →
    Release notes

    Add your own map apps, ship only the maps you use, and launch them in one line.

    Maps are now MapApp objects instead of enum values. Subclass MapApp to add any map app without forking the plugin. Only the maps you reference are compiled into your app, so URL schemes, package names, and icons of unused maps never touch your binary. And discovery results are directly launchable: maps.first.show().

    See MIGRATION.md for the full 5.x → 6.0 guide.

    New Features:

    • Custom maps: subclass MapApp to add any map app (regional, proprietary, internal) without forking the plugin. Works everywhere a built-in map does, including discovery and launching.
    • Tree-shakeable maps: referencing MapApp.waze compiles in only Waze's code, strings, and icon. Unreferenced maps are stripped completely from release binaries, verified by scanning AOT snapshots.
    • Launchable discovery results: final maps = await request.getSupportedMaps([...]) then maps.first.show(). No more request/mapType plumbing in pickers.
    • Misconfiguration warning (iOS): debug builds print a warning when a map passed to discovery is missing from LSApplicationQueriesSchemes, naming the exact scheme to add. Previously indistinguishable from "not installed".
    • Official app icons: 256×256 PNG icons sourced from iTunes and Google Play Store APIs, embedded as Uint8List. No flutter_svg dependency needed. Run dart run tool/fetch_icons.dart to refresh.
    • Generic native layer: iOS/Android detection is driven entirely from Dart. The native code has zero map-specific knowledge.

    Breaking Changes:

    • MapType enum → MapApp objects: MapType.googleMapApp.google. Dot-shorthand call sites like show(map: .google) compile unchanged.
    • Discovery takes an explicit list: getSupportedMaps()getSupportedMaps([.apple, .google, .waze]), getAvailableMaps()getAvailableMaps(myMaps). Use MapApp.all for every supported map (this opts out of tree shaking).
    • Icons are PNG bytes, not SVG assets: SvgPicture.asset(map.icon)Image.memory(map.iconBytes). No extra dependencies needed. flutter_svg is no longer required.
    • SupportedMap: map.mapTypemap.map (a MapApp), map.displayNamemap.name. Entries returned by a request are directly launchable via map.show().
    • Persisted map names: MapType.values.byName(saved)myMaps.firstWhere((m) => m.id == saved). MapApp.id matches the old enum names, so stored preferences keep working.
    • Removed maps: truckmeister (discontinued by Flitsmeister) and spedionNavigation (integrated module in the SPEDION fleet app, not a standalone map) have been removed. Use the custom MapApp subclass feature to add them back if needed.
    Open source →
  2. 5.0.1 23 Jul 2026
    Release notes
    • fix: remove dart:io from web import

    Full Changelog: v5.0.0...v5.0.1

    Open source →
    Release notes
    • fix: remove dart:io from web import
    Open source →
  3. 5.0.0 22 Jul 2026
    Release notes

    What's Changed

    • v5: add support for desktop and web platforms, universal links and store urls by @mattermoran in #224

    Breaking Changes

    • MapLauncher.showMarker() / showDirections()MapLauncher.marker(...).show() / .directions(...).show(). Methods on AvailableMap are gone.
    • AvailableMapSupportedMap. Name and icon moved to MapType.displayName / MapType.icon. SupportedMap only pairs a MapType with isInstalled.
    • CoordsLocationCoords: Coords(latitude, longitude).coords(lat, lng, title: '...'). Title moved into the location.
    • Waypoint removed. Use LocationCoords directly.
    • DirectionsModeTravelMode.
    • extraParamsextra: accepts typed extras (GoogleExtra, AppleExtra, etc.) or raw Map<String, String>.
    • MapType enum reordered, now carries displayName, playStoreId, appStoreId, hasUniversalLink, icon.
    • getAvailableMaps() returns List<SupportedMap> instead of List<AvailableMap>.
    • isMapAvailable() removed. Use getSupportedMaps() on a request.
    • Minimum SDK: Dart 3.11+, Flutter 3.3+.

    New Features

    • Desktop & web support (macOS, Windows, Linux, web) via universal links.
    • Scheme-to-universal fallback when native app isn't installed.
    • Search-based markers and directions (Google, Apple).
    • URL inspection: getUrl(), getUniversalUrl(), getSchemeUrl().
    • Typed extras: GoogleExtra, AppleExtra, WazeExtra, TencentExtra, YandexNaviExtra.
    • getSupportedMaps() — per-request discovery that respects capabilities.
    • Store URLs: MapType.appStoreUrl / MapType.playStoreUrl.
    • MapLaunchException with URL and cause.

    Docs

    • Added CONTRIBUTING.md for adding new map providers.

    Full Changelog: v4.6.0...v5.0.0

    Open source →
    Release notes

    New Features:

    • Desktop & web support: macOS, Windows, Linux, and web platforms via universal links (HTTPS URLs).
    • Scheme-to-universal fallback: On mobile, if a native app scheme URL fails (app not installed), automatically falls back to the universal HTTPS URL.
    • Search-based markers and directions: Google and Apple Maps support text queries for both markers and destinations.
    • URL inspection: getUrl(), getUniversalUrl(), and getSchemeUrl() let you preview URLs without launching.
    • Extras system: Type-safe, map-specific parameters via GoogleExtra, AppleExtra, WazeExtra, TencentExtra, YandexNaviExtra.
    • getSupportedMaps(): Per-request map discovery that respects capabilities (marker support, search support, waypoint support).
    • getAvailableMaps(): Platform-wide map discovery returning both installed and universal-link maps.
    • Store URLs on MapType: appStoreUrl and playStoreUrl getters for linking to app store pages.
    • MapLaunchException: Typed exception with the URL and underlying cause when a launch fails.

    Breaking Changes:

    • New builder-style API: MapLauncher.showMarker() / MapLauncher.showDirections()MapLauncher.marker(...).show() / MapLauncher.directions(...).show(). Methods on AvailableMap are gone too.
    • AvailableMapSupportedMap: No longer carries mapName or icon. Those are now properties on MapType itself (MapType.displayName, MapType.icon). SupportedMap only pairs a MapType with isInstalled.
    • CoordsLocationCoords: Coords(latitude, longitude).coords(lat, lng, title: '...'). Title moved from showMarker() into the location. latitude/longitude fields renamed to lat/lng.
    • Waypoint removed: Use LocationCoords directly in the waypoints list.
    • DirectionsModeTravelMode: Same values (driving, walking, transit, bicycling), renamed.
    • extraParamsextra: Now accepts typed extras (GoogleExtra, AppleExtra, etc.) or raw Map<String, String>. Passed via show(extra: ...) instead of the old method parameter.
    • MapType enum values reordered: google is now before googleGo. Enum carries displayName, playStoreId, appStoreId, hasUniversalLink, icon.
    • MapLauncher.getAvailableMaps()MapLauncher.getAvailableMaps(): Same name, but returns List<SupportedMap> instead of List<AvailableMap>.
    • isMapAvailable() removed: Use getSupportedMaps() on a request instead.
    • Minimum SDK: Dart 3.11+, Flutter 3.3+.

    Docs:

    • Added CONTRIBUTING.md with step-by-step guide for adding new map providers.
    Open source →
  4. 4.6.0 22 Jul 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v4.5.0...v4.6.0

    Open source →
    Release notes
    • feat: add support for SPEDION Navigation (#220) (@D3nn7)
    • feat: add support for Magic Earth (#222) (@APopaMagicLane)
    Open source →
  5. 4.5.0 17 Mar 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v4.4.3...v4.5.0

    Open source →
    Release notes
    • feat: add support for Air Navigation Pro (#219) (@BranislavKljaic96)
    Open source →
  6. 4.4.3 29 Jan 2026
    Release notes
    • fix: gracefully handle invalid urls (#216)
    Open source →
  7. 4.4.2 01 Sep 2025
    Release notes

    What's Changed

    Full Changelog: v4.4.1...v4.4.2

    Open source →
    Release notes
    • fix: preserve url scheme casing (#212) (@eryanwcp)
    Open source →
  8. 4.4.1 28 Aug 2025
    Release notes

    What's Changed

    Full Changelog: v4.4.0...v4.4.1

    Open source →
    Release notes
    • fix: isMapAvailable method regression (#210)
    Open source →
  9. 4.4.0 22 Aug 2025
    Release notes

    What's Changed

    Full Changelog: v4.3.0...v4.4.0

    Open source →
    Release notes
    • feat: add support for neshan map (#208) (@AmirJabbari)
    Open source →
  10. 4.3.0 22 Aug 2025
    Release notes

    What's Changed

    Full Changelog: v4.2.0...v4.3.0

    Open source →
    Release notes
    • feat: add support for moovit map (#207) (@kfiross)
    Open source →
  11. 4.2.0 21 Aug 2025
    Release notes
    • feat: add waypoints support for yandex maps and yandex navi (#206) (@ahmetcj4)
    Open source →
  12. 4.1.0 21 Aug 2025
    Release notes
    • Add support for swift package manager and bump min ios to 13 (#205)
    Open source →
  13. 4.0.2 21 Aug 2025
    Release notes
    • Fix parsing available map json (#204)
    Open source →
  14. 4.0.1 19 Aug 2025 withdrawn
    Release notes
    • Fix search param URL encoding (#201)
    • Improve public API documentation (#200)
    Open source →
  15. 4.0.0 27 Jul 2025
    Release notes
    • Recreate the plugin with new structure to prepare for multiplatform support
    • Bump android min sdk to 21
    Open source →
  16. 3.5.0 25 Aug 2024
    Release notes
    • Add Mappls MapmyIndia (@Ajaay7 & @Saksham66)
    Open source →
  17. 3.4.0 13 Aug 2024
    Release notes
    • Remove support for apps using android v1 embedding
    Open source →
  18. 3.3.1 05 Jun 2024
    Release notes
    • Remove support for Maps.me on android as it stopped working a while ago
    Open source →
  19. 3.3.0 09 Apr 2024
    Release notes
    • Add privacy manifest
    • Bump flutter min version to 3.13.0
    • Bump dart min version to 3.1.0
    Open source →
  20. 3.2.0 07 Mar 2024
    Release notes
    • Add Mapy.cz (@TheHumr)
    Open source →
  21. 3.1.0 19 Nov 2023
    Release notes
    • Add Naver Map, KakaoMap and TMAP (@trentcharlie & @JulyWitch)
    • Add support for AGP 7.4.2 and up (@bitsydarel)
    Open source →
  22. 3.0.1 17 Oct 2023
    Release notes
    • Rename Sygic to Sygic Truck
    • Remove deprecated launchMap method. use showMarker instead
    Open source →
  23. 3.0.0 17 Oct 2023
    Release notes

    BREAKING: waypoints parameter now uses List<Waypoint> instead of `List<Coord>``

    • Add CoPilot map (@tjeffree)
    • Add Go Fleet and Sygic Truck maps (@amrahmed242)
    • Add Flitsmeister and Truckmeister (@robinbonnes & @frankvollebregt)
    • Add waypoint labels for Apple Maps (@manafire)
    • Add support for gradle 8 (@m-derakhshi)
    • Fix future not completing on iOS
    Open source →
  24. 2.5.0 14 Feb 2023
    Release notes
    • Add support for waypoints on Apple Maps
    Open source →
  25. 2.5.0+1 14 Feb 2023
    Release notes
    • Update screenshots
    Open source →
  26. 2.4.0 19 Sep 2022
    Release notes
    • Bump kotlin version to 1.5.31
    Open source →
  27. 2.3.0 10 Aug 2022
    Release notes
    • Add TomTom Go #125 (@frankvollebregt)
    Open source →
  28. 2.3.0+1 11 Aug 2022
    Release notes
    • Cleanup
    Open source →
  29. 2.2.3 27 May 2022
    Release notes
    • Fix empty title in Google Maps
    Open source →
  30. 2.2.2 02 May 2022
    Release notes
    • Fix originTitle on showDirections method
    Open source →
  31. 2.2.1+1 14 Feb 2022
    Release notes
    • Update README with information that title should now work in Google Maps for Android starting from v11.12
    Open source →
  32. 2.2.1+2 10 Apr 2022
    Release notes
    • Add dartdoc comments
    • Update directions_url.dart formatting
    • Update broken link in the README
    Open source →
  33. 2.2.0 02 Feb 2022
    Release notes
    • Add Petal maps #103 (@mericgerceker)
    Open source →
  34. 2.1.2 13 Jan 2022
    Release notes
    • Replace jcenter with mavenCentral #100
    Open source →
  35. 2.1.1 23 Jun 2021
    Release notes
    • Fix iOS crash when using unsupported MapTypes #83 (@bridystone)
    Open source →
  36. 2.1.0 20 Jun 2021
    Release notes
    • Add OSMAnd+ #82 (@bridystone)
    • Add Here WeGo #77 (@aleksandr-m)
    • Add zoom level for OSMAnd on iOS #79 (@bridystone)
    • Fix deprecation compiler warning in Xcode #78 (@bridystone)
    • Bump minimum iOS version to 10
    Open source →
  37. 2.0.0 05 Apr 2021
    Release notes
    • Stable null safety
    Open source →
  38. 2.0.0-nullsafety.0 23 Feb 2021 pre-release
    Release notes
    • Migrate to null safety
    • Thanks to @LDevineau-eVtech
    Open source →
  39. 1.1.3 01 Feb 2021
    Release notes

    Breaking change! See here for migration

    • Fix Android 11 not showing installed maps #58
    • Thanks to @BasPhair, @olsisaqe
    Open source →
  40. 1.1.3+1 23 Feb 2021
    Release notes
    • Add warning for v1.1.3
    Open source →
  41. 1.1.2 08 Jan 2021
    Release notes
    • Fix Tencent Maps and 2GIS url scheme on ios #56
    Open source →
  42. 1.1.1 22 Dec 2020
    Release notes
    • Add extraParams option to support passing additional query parameters that might be needed like api keys etc
    Open source →
  43. 1.0.0 05 Nov 2020
    Release notes
    • BREAKING CHANGE: not depending on flutter_svg anymore. See README for migration
    • Add support for Google Maps GO
    • Under the hood changes
    • Thanks to @andoni97, @Pavel-Sulimau, @grinder15 for contribution
    Open source →
  44. 0.12.2 07 Sep 2020
    Release notes
    • Add import fallback for #import <map_launcher/map_launcher-Swift.h>
    • Thanks to @fisherjoe
    Open source →
  45. 0.12.1 07 Sep 2020
    Release notes
    • Fix default zoom level
    Open source →
  46. 0.12.0 14 Aug 2020
    Release notes
    • Add support for 2GIS
    Open source →
  47. 0.11.0 10 Aug 2020
    Release notes
    • Add waypoints for Google Maps
    Open source →
  48. 0.10.0 31 Jul 2020
    Release notes
    • Add zoom parameter
    Open source →
  49. 0.9.0 26 Jul 2020
    Release notes
    • Add showDirections method
    • Update example app
    Open source →
  50. 0.8.2 22 Jul 2020
    Release notes
    • Update flutter_svg constraint </br> Thanks to @tuarrep and @jcsena
    Open source →
  51. 0.8.1 15 Jul 2020
    Release notes
    • Fix #31 </br> Thanks to @LeonidVeremchuk
    Open source →
  52. 0.8.0 14 Jul 2020
    Release notes
    • Add support for android embedding v2
    Open source →
  53. 0.7.1 12 Jul 2020
    Release notes
    • Add constraint for flutter_svg
    Open source →
  54. 0.7.0 12 Jul 2020
    Release notes
    • Replace png icons with svgs </br> Thanks to @shinsenter
    Open source →
  55. 0.6.0 20 Jun 2020
    Release notes
    • Add support for Maps.Me and OsmAnd </br> Thanks to @gsi-yoan and @gsi-alejandrogomez
    Open source →
  56. 0.5.0 02 Jun 2020
    Release notes
    • Add support for Citymapper </br> Thanks to @Kiruel
    Open source →
  57. 0.4.5 22 Apr 2020
    Release notes
    • Fix Google Maps title issue on iOS </br> Thanks to @illiashvedov
    Open source →
  58. 0.4.4 27 Mar 2020
    Release notes
    • Specify swift version in map_launcher.podspec file
    Open source →
  59. 0.4.3 22 Feb 2020
    Release notes
    • Add license
    Open source →
  60. 0.4.2 22 Jan 2020
    Release notes
    • Add code to show title in Google Maps for Android. Should work once fixed in Google Maps. Update README.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive