GLMap for Flutter, Kotlin Multiplatform, and React Native: Now in Beta
GLMap for Flutter, Kotlin Multiplatform, and React Native is now available in beta. Install the packages from pub.dev, the Globus Maven repository, or npm to bring native maps, search, routing, and offline data to Android and iOS apps while writing your feature code in Dart, Kotlin, or TypeScript.
Try the demos, add GLMap to your app, and tell us what works—and what gets in the way. Your feedback will help shape the APIs, examples, and integration experience before a stable release.
Choose your framework
| Project | Integration | Repository |
|---|---|---|
glmap | Flutter widgets and Dart APIs | GLMap/flutter |
globus:glmap-kmp | Shared Kotlin APIs and a Compose Multiplatform map UI | GLMap/kmp |
@globus-software/glmap | React Native components and TypeScript APIs, with Expo integration | GLMap/react-native |
All three use the native GLMap SDK 2.2.0 on Android and iOS. The cross-platform packages have their own version, 0.1.0-beta.1: this announcement is about the new integrations, not a beta of the native SDK.
More than a map view
The betas cover the features needed to build a location-based app:
- Map display: online maps, downloaded offline maps, camera controls, dark themes, and 3D terrain.
- Your data on the map: markers and clustering, images, tracks, lines, polygons, and GeoJSON.
- Search: online and offline place search, autocomplete, and selecting map objects.
- Routing: car, bicycle, and pedestrian routes, custom routes, and route tracking.
- Offline data management: regional and bounding-box downloads, progress reporting, cancellation, and deletion.
Offline use requires data covering the area your app needs. Map, navigation, and elevation data are separate: downloading a map does not by itself enable offline road routing or 3D terrain.
Use only the modules you need
Each integration separates Core, Map, Search, and Route. Core handles initialization, shared types, datasets, and downloads; the feature modules depend on Core rather than on one another.
Search and Route can be used without a map view or renderer. A destination picker or route-planning tool does not need to embed a map just to use those services. In Kotlin Multiplatform, only the Map UI requires Compose; Core, Search, and Route can run without it.
Add GLMap to your app
Start with the published Map package for your framework. Add Search and Route separately when you need them; you do not need to copy the SDK source into your app. The snippets below add dependencies to an existing app—native-host setup is still required.
Flutter
From your Flutter app:
flutter pub add 'glmap:0.1.0-beta.1'
Map includes and re-exports Core. Follow the Flutter setup guide for the Android Maven repository, asset settings, iOS deployment target, and Flutter's Swift Package Manager integration.
Kotlin Multiplatform
Add the public repository to dependencyResolutionManagement.repositories in settings.gradle.kts, alongside google() and mavenCentral():
maven { url = uri("https://maven.globus.software/artifactory/libs") }
Then add Map to your Compose Multiplatform shared module:
kotlin {
sourceSets {
commonMain.dependencies {
implementation("globus:glmap-kmp:0.1.0-beta.1")
}
}
}
Map includes Core. Follow the Kotlin Multiplatform setup guide for Android asset settings and iOS framework linking. The iOS host must also link the matching native GLMap SDK 2.2.0 through Swift Package Manager; the Maven dependency does not replace that step.
React Native / Expo
From your Expo app:
npx expo install @globus-software/[email protected] @globus-software/[email protected] expo-dev-client
Add @globus-software/glmap to expo.plugins in your app configuration, then follow the React Native setup guide to regenerate and build the native host. Core is listed explicitly because your app imports its initialization API. Use an Expo development build, not Expo Go.
For all three integrations, initialize Core before creating a map or calling Search or Route. Rebuild the native app after changing SDK packages; hot reload alone cannot update native dependencies.
Start with working examples
Each repository includes a demo with 20 API examples, covering map display, terrain, camera movement, drawings, search, routing, location, and downloads. Within each demo, the feature screens share one implementation across Android and iOS.
Browse the demo code guides for Flutter, Kotlin Multiplatform, and React Native. The repository demos use local workspace packages; for your own app, use the published dependencies above rather than copying the workspace configuration.
The demos also bundle Montenegro map data for offline map display and search. Navigation and elevation data need to be downloaded separately for offline road routing and terrain.
To get started:
- Open the repository for your framework and follow its README for installation and native-host setup.
- Run the demo and explore the features your app needs.
- Create a GLMap API key for online features and downloads.
- Try your own data and workflows on both Android and iOS.
What to expect from the beta
This release targets Android API 24+ and iOS 16.4+. It is a mobile integration, not a web or desktop release. React Native users need an Expo development build or a React Native app with Expo Modules installed; Expo Go is not supported.
The APIs and integration details may change as we learn from early adopters. Please evaluate the beta against your app’s requirements and check the repository README for the full toolchain requirements.
We want your feedback
We’re especially interested in:
- Getting started: was installation clear, and where did you get stuck?
- API design: do the APIs feel natural in Dart, Kotlin, or TypeScript?
- Missing capabilities: what does your app need that the wrappers do not expose yet?
- Real-world behavior: how do maps, offline workflows, and screen lifecycle behave on your devices?
Open an issue in Flutter, Kotlin Multiplatform, or React Native. For bug reports, include package versions, device and OS details, steps to reproduce, and expected versus actual behavior. A small reproducing example is especially helpful; leave API keys and other credentials out of reports.
Prefer to discuss your integration directly? Write to us at [email protected].
Try the beta and help us make GLMap a better fit for your framework.
