An innovative SwiftUI-based application that provides a detailed, interactive map experience. The app showcases how to integrate MapKit with SwiftUI, manage different device size classes, and utilize reusable components for a smooth and engaging user interface. It is designed to adapt seamlessly between iPhone and iPad layouts
- Map Integration: Leverages MapKit to provide dynamic and interactive map views.
- Location Details: Displays detailed location information with smooth transitions and animations.
- Reusable Components: Modularized code to ensure reusability and maintainability.
- Responsive Design: Adaptable layouts for both compact (iPhone) and regular (iPad) size classes.
- Animated Transitions: Smooth transitions between different views and state changes.
- Gesture Interaction: Tap and gesture-based interaction to update map regions and details dynamically.
The application includes a feature called "Address Breakdown" where the address is broken down into its constituent components such as street, city, state, zip code, and country. Each component can be selected, and the map or image will dynamically update based on the selected part of the address. This is particularly useful for detailed navigation and understanding of how different parts of the address correlate with geographical locations on the map.
- Street: One Apple Park Way
- City: Cupertino
- State: California
- Zip Code: 95014
- Country: United States Selecting any of these components will focus the map or imagery on that particular location.
- iOS 17.0+
- Xcode 15.0+
- Swift 5.5+
- Clone the repository:
git clone https://github.com/ashikask/InteractiveMapSwiftUI.git
- Open the project in Xcode:
cd InteractiveMap open InteractiveMap.xcodeproj
- Build and run the project in Xcode.
- Design Inspiration: Kumail Nanji - Refer to his UX design for interactive map ideas and inspiration.
If you want to contribute to this project, feel free to submit a pull request or open an issue. Your contributions are welcome!
For any inquiries or feedback, please reach out to Ashika at ashika.skalmady@gmail.com.
Follow me on LinkedIn: https://www.linkedin.com/in/ashika-kalmady-6485a889/