Yatmo mobile SDKs
The same neighbourhood map, points of interest, travel times and summaries as the web plugins, inside your native iOS and Android app. Swift, Kotlin, React Native and Flutter, all built on MapLibre Native and the Yatmo REST API. If your app is a WebView, you do not even need an SDK.
Three ways in
| Native SDK | WebView / hybrid | Bring your own map | |
|---|---|---|---|
| Best for | Apps written in Swift, Kotlin, React Native or Flutter that want a native map with native gestures and performance. | Capacitor, Ionic, Cordova apps, or a native app that can host a WebView on the listing page. | Teams that already run MapLibre (or another vector-tile stack) and only want Yatmo’s tiles, styles and data. |
| Effort | One dependency, ten lines of code. | One URL. Same parameters as the iframe plugin. | You draw the markers and polygons yourself from the REST API. |
| Look and feel | Native map, Yatmo POI icons, isochrones, your own popups and UI. | Exactly the web plugin (map, summary, scores, tabs). | Whatever you build. |
| Start here | iOS · Android · React Native · Flutter | WebView, Capacitor, Ionic | Tiles, styles and POIs |
Platforms
| Name | In | Type | Description |
|---|---|---|---|
| iOS | Swift Package |
YatmoSDK, iOS 15+, Swift 5.9, MapLibre Native 6. UIKit view and SwiftUI wrapper. Guide · GitHub.
|
|
| Android | Gradle library |
com.github.Yatmo:yatmo-sdk-android (JitPack), minSdk 24, Kotlin coroutines, MapLibre Android 11. Guide · GitHub.
|
|
| React Native | npm package |
@yatmo/react-native, TypeScript, on top of @maplibre/maplibre-react-native 11. Guide · GitHub.
|
|
| Flutter | Dart package |
yatmo_sdk on pub.dev, on top of maplibre_gl. Guide · GitHub.
|
|
| Capacitor, Ionic, Cordova | no SDK | The JavaScript and iframe plugins work as they do on the web. Guide. | |
| Kotlin Multiplatform, .NET MAUI, Xamarin | REST | No dedicated SDK yet. Use the bring your own map path with the platform’s MapLibre binding, or a WebView. |
What the SDKs contain
Every SDK exposes the same three building blocks, with names adapted to the platform’s conventions:
- YatmoMapView: a MapLibre map preconfigured with a Yatmo style, the property pin, POI markers that follow the viewport, optional 5 / 10 / 20 minute isochrones, category filtering, and a callback when a POI is tapped. You keep full control of the surrounding UI.
- YatmoClient: a typed, asynchronous client for the REST endpoints a listing page needs: Summary, Summary as text, Scores, Listing enrichment, Points, Isochrones, Geocoding and Simplified categories. It sets the licence and app id headers for you.
- YatmoWebView: a WebView preloaded with the iframe plugin, for the screens where you want the full web experience (summary panel, scores, tabs) without rebuilding it natively.
How it works
The web plugins render vector tiles served by Yatmo with a style written in the Mapbox / MapLibre style specification. MapLibre Native reads exactly the same style file, so the native map looks like the web map: same colours, same fonts, same seven styles. On top of that base map, the SDK:
- calls
GET /Pointswith the visible bounds each time the camera settles (debounced), and places one marker per POI using the same icon set as the web plugin, served from the Yatmo CDN; - calls
GET /Isochrone/GetMultipleTimeswhen you enable isochrones and draws the three nested polygons; - leaves data screens to you: call
summary,scores,enrichmentorsummaryTextand render the result with your own components.
No Google Maps or Apple MapKit dependency. No API key from Google or Apple. Country coverage and languages are the same as the plugins: see Countries & languages.
Authentication
Mobile apps use your frontend key, the same one as the plugins. On the web that key is locked to your domain names. In an app it is locked to your app ids: the iOS bundle identifier and the Android application id, which you register once in your Yatmo account. The SDK reads the id from the running app and sends it with every request. Read Mobile authentication before shipping.
Next steps
- Register your app ids: Mobile authentication.
- Pick a guide: iOS, Android, React Native, Flutter, WebView.
- Need the data on your backend too (scoring, search, content)? That is the REST API with your backend key, unchanged.