A fully customizable iOS library to handle system permissions through a unified ViewController API.
PAPermissions is an iOS library that provides a unified, customizable ViewController for handling system permissions like camera, microphone, location, and more. It solves the problem of managing disparate permission APIs across iOS by offering a single interface that reduces boilerplate code and ensures consistent user prompts.
iOS developers building apps that require multiple system permissions, especially those using Swift 4 or Objective-C who want a streamlined, maintainable way to handle permission requests.
Developers choose PAPermissions because it offers a ready-to-run, fully customizable solution with out-of-the-box support for common permissions, saving development time while allowing deep UI and behavior customization to fit app-specific needs.
A unified API to ask for permissions on iOS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a single ViewController to handle multiple permission types, reducing repetitive code for checks and requests across different iOS APIs. The README shows an example with setupData method for multiple permissions like microphone and camera.
Allows full control over appearance with background colors or images, ensuring permission dialogs match app branding. README includes screenshots demonstrating plain backgrounds and background images.
Works with both Swift 4 and Objective-C, with legacy branches for older Swift versions, making it versatile for mixed or migrating codebases. README specifies compatibility and provides links to legacy branches.
Enables developers to define and handle non-standard permission types beyond Apple's built-in ones, offering flexibility for unique app requirements. The README lists custom as a supported permission type and shows handler setup.
Tied to UIKit's ViewController architecture, making it incompatible with modern SwiftUI-based apps without additional bridging layers, which limits adoption in newer projects.
Requires inheriting from a custom ViewController and manually configuring permissions and handlers, as shown in the README's viewDidLoad example, which can be more involved than drop-in solutions.
With legacy branches for older Swift versions and no mention of updates beyond iOS8+, it might not keep pace with new iOS features or Swift changes, risking obsolescence for latest APIs.