Open ianthetechie opened 6 months ago
Update in case anyone is looking for an update, we have reports from a user in Slack successfully using this with Platform Views (the second approach). So this is not a prod onboarding blocker, but it is still something we'd like to make easier.
Basically there are two paths toward a Flutter frontend.
I'll lay out the pros and cons of each approach here.
Flutter native
We can leverage Flutter MapLibre GL to get MapLibre on all platforms with Flutter bindings that are idiomatic and (ostensibly) easy to optimize for efficiency. There would only be one additional layer of binding between the C++ core and Flutter's state management (which determines redraw timing, much like other modern composable reactive frameworks). In fact, it would even let us support flutter web and (once MapLibre adds macOS support back) desktop through a single library. That'd be pretty cool ;)
The only downside here is that we have to maintain another platform and its UI components.
Wrapping SwiftUI and Compose
We already did a lot of the work for iOS and Android; maybe we can reuse it? It seems like Flutter supports SwiftUI views and Compose.
I do not know how much work this is, or how efficient it is. This is a question we'll need to answer before deciding on a path forward. Specifically: