Skip to content

Maps for Native and Multi-platform Apps

Numerous frameworks will help you integrate Stadia Maps in your mobile, desktop, or multi-platform application. The variety of choices can be overwhelming at first, so we've written a high-level overview of some popular options. This should help you decide what's best for your use case.

MapLibre Native

MapLibre Native is the premier open-source vector map rendering library. Ongoing development is sponsored by a number of industry leaders, and Stadia Maps was instrumental in creating the organization. The core is mostly written in C++, has wrappers that provide a more native interface for iOS, Android, and other platforms, and supports native rendering APIs per-platform (ex: Metal on iOS).

Tip

If you are developing a native iOS, Android, or desktop app with the first-party stack (ex: Xcode + Swift for iOS), MapLibre Native is probably the best fit.

Get Started with MapLibre Native

Flutter MapLibre GL

Flutter MapLibre GL is a Flutter wrapper around MapLibre Native (iOS and Android) and MapLibre GL JS (web).

Tip

This package should probably be your first choice if you need to use vector tiles in a Flutter application, or if you care a lot about rendering performance and smoothness.

Flutter MapLibre GL uses the battle-tested MapLibre libraries under the hood, so it's both correct and performant on a variety of platforms. If you've used MapLibre on other platforms, this will feel at least somewhat familiar. And it even makes it easy to add annotations in a cross-platform way.

Get Started with Flutter MapLibre GL

flutter_map

flutter_map is a Flutter-first map library. It is currently built from the ground up (not a wrapper for an existing native library), and boasts broad cross-platform compatibility due to its design. It is loosely inspired by Leaflet, a JavaScript raster map library known for its simple API, and features a wide range of plugins.

Tip

flutter_map excels at interactive raster maps. Of the available multi-platform libraries, it has the simplest API and has compatibility with the greatest number of platforms.

flutter_map is a good choice if you only need a 2D raster map and want broad compatibility. However, if you want to render vector tiles, Flutter MapLibre GL is a better choice at this time. There are ongoing efforts within the flutter_map community to add a performant vector tile renderer.

Get Started with flutter_map

MapLibre React Native

MapLibre React Native is a React Native wrapper around MapLibre Native. You get all the performance of native and any improvements in the core library for free! If you previously used rnmapbox, it is essentially a drop-in replacement. The project also has extensive examples and documentation in the project's GitHub repository.

Get Started with MapLibre React Native