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
Modern mobile phones support WebGL and maps are acceptably performant, however native apps are still faster and ensure better compatibility with various devices.
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.