A beautiful and interactive map application built with SwiftUI and MapKit, allowing users to explore famous landmarks in Paris and Rome with detailed information, images, and smooth navigation.
mapApp/
├── mapApp/
│ ├── Assets.xcassets/ # App icons, images, and assets
│ │ ├── Locations/ # Location-specific images (Paris, Rome)
│ │ └── Logos/ # App logos
│ ├── ContentView.swift # Main content view
│ ├── mapAppApp.swift # App entry point
│ ├── Models/
│ │ └── location.swift # Location data model
│ ├── ViewModels/
│ │ └── LocationsViewModel.swift # Business logic and state management
│ ├── Views/
│ │ ├── LocationsView.swift # Main map view
│ │ ├── LocationsListView.swift # Location list overlay
│ │ ├── LocationDetailView.swift # Detailed location information
│ │ ├── LocationPreviewView.swift # Location preview card
│ │ └── LocationMapAnnotationView.swift # Custom map annotations
│ └── DataServices/
│ └── LocationsDataService.swift # Location data provider
└── mapApp.xcodeproj/
- 🗺️ Interactive Map – Explore locations on a beautiful MapKit interface
- 📍 Location Annotations – Custom map markers with smooth animations
- 📋 Location List – Toggleable list view to browse all locations
- 🖼️ Image Galleries – Multiple images for each landmark
- 📖 Detailed Information – Rich descriptions and Wikipedia links
- 🎨 Smooth Animations – Elegant transitions between locations
- 🎯 Location Navigation – Easy switching between landmarks
- 📱 Native iOS Design – Built with SwiftUI best practices
- Colosseum – Ancient amphitheatre and iconic Roman landmark
- Pantheon – Former Roman temple, now a Catholic church
- Trevi Fountain – Largest Baroque fountain in Rome
- Eiffel Tower – Iconic wrought-iron lattice tower
- Louvre Museum – World's most-visited museum
- Xcode 14.0+ (recommended: latest version)
- iOS 15.0+ deployment target
- macOS for development
git clone https://github.com/venusbhatia/mapApp.git
cd mapAppopen mapApp.xcodeproj- Select your target device or simulator in Xcode
- Press
⌘ + Ror click the Run button - The app will launch on your selected device/simulator
# Build for iOS device
xcodebuild -scheme mapApp -configuration Release
# Or use Xcode: Product → Archive- SwiftUI – Modern declarative UI framework
- MapKit – Apple's mapping framework
- Combine – Reactive programming for state management
- MVVM Architecture – Clean separation of concerns
The app follows the MVVM (Model-View-ViewModel) pattern:
- Models (
location.swift) – Data structures representing locations - Views (
Views/) – SwiftUI views for UI presentation - ViewModels (
LocationsViewModel.swift) – Business logic and state management - Data Services (
LocationsDataService.swift) – Data provisioning layer
- 🧩 Clean Architecture – Separation of concerns with MVVM
- 🎉 Smooth UX – Fluid animations and transitions
- 🔁 Extensible – Easy to add new locations and features
- 📱 Native Feel – Leverages iOS design patterns and conventions
Manages app state including:
- Current map location
- Map region updates
- Location list visibility
- Navigation between locations
Represents a landmark with:
- Name and city
- Coordinates (latitude/longitude)
- Description
- Image gallery
- Wikipedia link
- Custom annotations with tap gestures
- Smooth region transitions
- Visual feedback for selected locations
Potential features to add:
- Search functionality
- User location tracking
- Favorites/bookmarks
- More cities and landmarks
- Offline map support
- Custom themes
- Social sharing
This project is open source and available for personal and educational use.
Venus Bhatia
Created on December 12-13, 2025
Built with SwiftUI and MapKit, showcasing modern iOS development practices.