Skip to content

ImmersiveMap 0.1.1

Latest

Choose a tag to compare

@artembobkin artembobkin released this 10 Jul 21:38

ImmersiveMap is a native Swift + Metal vector-tile map engine for SwiftUI, running natively on iOS (UIKit) and macOS (AppKit) - no Mac Catalyst, no WebView, no JavaScript bridge.

Features

  • SwiftUI ImmersiveMapView with builder-style modifiers (.camera, .tileProvider, .mapStyle, .labelSettings, …); the public API is identical on iOS and macOS.
  • Native Metal rendering pipeline (on-demand frame loop, multi-pass render graph).
  • Native iOS (UIKit) and macOS (AppKit) hosts behind a single SwiftUI surface.
  • Mapbox vector tile provider (MapboxTileProvider / MapboxMapStyle).
  • OpenStreetMap / Shortbread provider (OpenStreetMapTileProvider / OpenStreetMapMapStyle).
  • Custom tile providers via ImmersiveMapTileProvider / VectorTileProvider.
  • Globe and flat presentation with continuous morphing between sphere and plane; the day/night terminator fades out as the camera zooms into the surface.
  • Labels, starfield, and avatar / live markers.
  • Disk (raw + prepared) and in-memory tile caches.

Requirements

  • Swift 6.0+, Xcode 16+
  • iOS 18+ or macOS 15+ (native AppKit, not Mac Catalyst)
  • A Metal-capable device or simulator

Known Limitations

  • The public API is unstable and may change.
  • Documentation is incomplete.
  • Not production-ready yet.
  • Not a drop-in replacement for Mapbox, MapLibre, or MapKit.

Install: add https://github.com/artembobkin/ImmersiveMap.git as a Swift Package dependency and select 0.1.1.