A fully customizable iOS location picker component that integrates with MapKit and supports current location, search, and custom location lists.
LocationPicker is an open-source iOS library that provides a customizable view controller for selecting geographic locations within an app. It integrates with Apple's MapKit to offer search, current location detection, and map interaction, handling the complexity of permissions and geocoding so developers can focus on their core features.
iOS developers building apps that require location selection functionality, such as check-in services, delivery apps, travel planners, or any application where users need to choose a place on a map.
Developers choose LocationPicker because it saves significant development time by providing a polished, fully-featured component out of the box, while offering deep customization options to match any app's design and complex callback patterns to fit any architecture.
A ready for use and fully customizable location picker for your app
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
As highlighted in the README, a fully functional picker can be added with just 5 lines of code, supporting both programmatic and storyboard setups for quick deployment.
Users can pick from current location, MapKit search results, or a custom list of alternative locations, covering common use cases without extra development.
Allows customization of text, colors, icons, and provides access to underlying UIKit and MapKit components for deep tweaks, as detailed in the Customization section.
Supports closures, delegate/data source patterns, and subclass overrides for handling picks, selections, and permission events, fitting various architectural preferences.
Built solely on UIKit, it doesn't natively support SwiftUI, requiring extra work like UIViewControllerRepresentable wrappers for modern iOS projects.
Relies exclusively on Apple's MapKit, lacking features from other mapping services and potentially limiting apps that need cross-platform consistency or advanced POI data.
The README mentions support for Swift 4.1 and iOS 8.0, suggesting it might not be actively updated for newer Swift versions or iOS features, risking compatibility gaps.