A modern, highly customizable Swift library for presenting popovers in iOS apps, supporting SwiftUI, UIKit, and iPadOS multitasking.
Popovers is a Swift library for presenting popovers in iOS applications. It allows developers to display any view as a popover above their app's main content, with support for both SwiftUI and UIKit. The library solves the problem of creating modern, customizable popovers that work across iOS versions and device types, including iPadOS multitasking.
iOS developers building apps with SwiftUI or UIKit who need flexible, customizable popover presentations. It's particularly useful for those targeting iOS 13+ and wanting a drop-in replacement for system menus or custom overlay UI.
Developers choose Popovers for its highly customizable API, zero dependencies, and seamless support for both SwiftUI and UIKit. Its modern design, built-in templates, and extensive configuration options make it a superior alternative to basic system popovers or building custom solutions from scratch.
A library to present popovers. Simple, modern, and highly customizable. Not boring!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works seamlessly with both SwiftUI and UIKit, including support for iPadOS multitasking windows, as highlighted in the Key Features section of the README.
Offers extensive configuration for positioning, animations, dismissal behavior, and accessibility through the Attributes struct, detailed in the Customization section with code examples.
Built with a SwiftUI-based core and has no external dependencies, ensuring a lightweight and easy-to-integrate library, as stated in the GitHub description.
Includes full VoiceOver support with configurable focus shifting and dismiss buttons, making it suitable for accessible app development, as specified in the Key Features and Accessibility section.
In UIKit, developers must manually set the source frame in window coordinates, which is error-prone and requires careful management, as cautioned in the Usage section.
For SwiftUI, updating state within popovers requires using Bindings and separate view structs to avoid rendering issues, adding complexity as explained in the Notes on State Re-Rendering.
While the README is comprehensive, it lacks in-depth guidance for edge cases or advanced scenarios, such as complex multi-window setups or performance optimization.