How to build mobile apps with maps using SDK
You can create a mobile app with maps either using an SDK or JavaScript and HTML. You can also use QT SDK to develop desktop software.
It is possible to combine map data from MapTiler Cloud with data from MapTiler Data for offline mode.
Native mobile apps
Using mobile SDK to create a native mobile app is mostly the best choice. The code is translated into native code and has lower hardware requirements. There are SDKs for both Android and iOS.
The maps are encoded in the widely used and openly documented vector tile format. This means the tiles are compatible with all software tools implementing this format specification. MapTiler Cloud uses the open GL Style for defining the map design.
The open-source MapLibre SDK for iOS and SDK for Android provides the most natural way how to display the tiles and styles in a mobile app natively. The source code of the MapLibre SDKs is available on GitHub.
There are other open-source SDKs for native mobile apps like TangramES or Carto/Nutiteq SDK.
Sample app for Android and iOS
There is a sample app for iOS and Android, which demonstrates the capabilities of mobile SDK and its’ performance. You can download it for free from Google Play and App Store or get the source code for further development of their own app.
These apps show the vector map tiles displayed from a custom tile server, so you can choose MapTiler Cloud service or implement your own. Map tiles can be also bundled with the mobile app or users can download a tileset for a region of their choice.
MapLibre SDK is able to display the tiles directly from MBTiles and is running in an offline environment.
Packed web applications
An alternative way for the development of multiplatform mobile apps is the use of the existing JavaScript web viewers while using HTML, CSS, and JavaScript and packaging the web applications into native applications with a framework like Apache Cordova.
Modern mobile phones support WebGL and maps are acceptably performant, however native apps are still faster and ensure better compatibility with various devices.
While developing the mobile apps in JavaScript users can also use native components such as the Cordova app React Native.
Desktop and embedded apps
For the development of native desktop applications and software for hardware appliances with embedded mapping systems powered by Linux, one can use the open-source QT SDK. It also has the ability to load the vector tiles from the OpenMapTiles project and run completely offline.
Mapbox GL Native does not compile (yet) on Microsoft Windows. So for fully multiplatform desktop apps with vector tile maps inside, the embedded web window (possibly with CEF - Chromium Embedded Framework and enabled WebGL support) is still the best option.
Related guides
- Automatically created API key
- Check if MapLibre GL JS is supported
- Coordinates API
- Dataset upload - formats and limits
- Difference between 256x256, 512x512, and HiDPI/Retina rasterized tiles
- Exported Tiles Multiplier
- Generalization in maps
- How are the tile requests cached in web browser?
- How MapTiler map tiles are Generated and Delivered
- How to add Geocoding control to Maplibre GL JS map