A custom iOS view controller presentation library that mimics the interactive drawer behavior of Apple's Maps app.
DrawerKit is a Swift library for iOS that lets a UIViewController modally present another UIViewController as an interactive drawer, similar to the behavior in Apple's Maps app. It solves the need for a polished, native-like drawer presentation with smooth animations and customizable states. The library supports partial and full expansion, dragging, tap gestures, and extensive visual configuration.
iOS developers building apps that require interactive, drawer-style modal presentations, such as those needing map-like detail panels, settings drawers, or contextual overlays.
Developers choose DrawerKit for its native iOS Maps-like feel, extensive customization options, and smooth, physics-based animations. It provides a production-ready solution that is more flexible and polished than building a custom drawer presentation from scratch.
DrawerKit lets an UIViewController modally present another UIViewController in a manner similar to the way Apple's Maps app works.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Delivers smooth, physics-based animations that closely mimic Apple's Maps app, ensuring a polished and familiar user experience as highlighted in the philosophy section.
Offers a comprehensive DrawerConfiguration struct with over 20 properties for timing, behavior, and appearance, allowing fine-tuned control over drawer presentation and interactions.
Includes dragging, tapping, and flick detection with configurable thresholds, enabling intuitive drawer control and skipping intermediate states based on user input.
Supports collapsed, partially expanded, and fully expanded states with configurable transitions, making it adaptable to various UI contexts like detail panels or settings drawers.
The README explicitly states it's 'not (yet) a complete implementation,' which may lead to missing features or unhandled edge cases in production use.
Requires conforming to DrawerCoordinating and DrawerPresentable protocols, adding boilerplate code and complexity compared to simpler modal presentation libraries.
Only compatible with iOS 10 and above, excluding older devices and versions without fallback options or backward compatibility.
With numerous configuration options, setting up a basic drawer can be overwhelming and error-prone, especially for developers needing quick, simple implementations.