Move the interactive map into a new MapLibreShim framework

Second step towards loading MapLibre on demand: everything that touches it now
lives in one framework, so that framework can later be left unlinked.

The interactive map view, its annotation view and the coordinate animator move
into MapLibreShim, which reaches the app through MapLibreShimProtocol. The app
side keeps its MapLibreMapView call site and becomes a thin wrapper that builds
a MapViewConfiguration, passing the app-only pieces (map style URLs, marker
views, tint colour) across as closures so the shim needs nothing from the app.

LocationAnnotation loses its MapLibre conformance and becomes a plain struct,
with the shim mapping it onto its own annotation type. MapLibre's log
forwarding moves into the shim as well, since TargetConfiguration can no longer
reach it.
This commit is contained in:
Stefan Ceriu
2026-08-12 11:22:55 +03:00
parent 5724e65d8e
commit 8753fe3980
14 changed files with 778 additions and 381 deletions
+1
View File
@@ -60,6 +60,7 @@ settings:
include:
- path: app.yml
- path: ElementX/MapLibre/MapLibreInterface/SupportingFiles/target.yml
- path: ElementX/MapLibre/MapLibreShim/SupportingFiles/target.yml
- path: ElementX/SupportingFiles/target.yml
- path: NSE/SupportingFiles/target.yml
- path: ShareExtension/SupportingFiles/target.yml