Skip to content

feat: unify native map views into single LuggMapView host#26

Merged
lodev09 merged 1 commit intomainfrom
feat/unified-map-view
Feb 6, 2026
Merged

feat: unify native map views into single LuggMapView host#26
lodev09 merged 1 commit intomainfrom
feat/unified-map-view

Conversation

@lodev09
Copy link
Collaborator

@lodev09 lodev09 commented Feb 6, 2026

Summary

Replace separate LuggGoogleMapView and LuggAppleMapView Fabric components with a single LuggMapView that delegates to provider-specific content classes (GoogleMapProvider, AppleMapProvider) via a shared MapProvider protocol.

Architecture

  • Host view (LuggMapView) — owns Fabric lifecycle (props, commands, child mounting, events)
  • Provider classes (GoogleMapProvider, AppleMapProvider) — plain objects managing the actual map view inside LuggMapWrapperView
  • iOS host selects provider based on provider prop; Android always uses Google

Changes

  • Unified LuggMapViewNativeComponent spec with provider prop
  • iOS: MapProvider/MapProviderDelegate protocol in ios/core/
  • iOS: GoogleMapProvider and AppleMapProvider content classes in ios/core/
  • iOS: LuggMapView host view selects provider based on prop
  • Android: GoogleMapProvider extracted to core/
  • Android: LuggMapView as thin host delegating to provider
  • Removed old LuggGoogleMapView/LuggAppleMapView native components

Type of Change

  • Breaking change

Test Plan

  • Build iOS example with both apple and google providers
  • Build Android example
  • Verify camera events, commands (moveCamera, fitCoordinates), markers, polylines

Checklist

  • I tested on iOS
  • I tested on Android
  • I tested on Web
  • I updated the documentation (if needed)

Replace separate LuggGoogleMapView and LuggAppleMapView Fabric components
with a single LuggMapView that delegates to provider-specific content classes
(GoogleMapProvider, AppleMapProvider) via MapProvider protocol.

- Add unified LuggMapViewNativeComponent spec with provider prop
- iOS: MapProvider/MapProviderDelegate protocol in core/
- iOS: GoogleMapProvider and AppleMapProvider content classes
- iOS: LuggMapView host view selects provider based on prop
- Android: GoogleMapProvider extracted to core/
- Android: LuggMapView as thin host delegating to provider
- Remove old LuggGoogleMapView/LuggAppleMapView native components
@lodev09 lodev09 merged commit e6e8983 into main Feb 6, 2026
3 checks passed
@lodev09 lodev09 deleted the feat/unified-map-view branch February 6, 2026 17:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant