// the find
ennioma/arek
AREK is a clean and easy way to request any kind of iOS permission (with some nifty features 🤖)
AREK is a Swift wrapper that adds a pre-permission prompt layer before iOS system permission dialogs, giving users context before iOS burns its one-shot native dialog. It covers 16 permission types with configurable re-prompt frequency for denied permissions. Aimed at iOS developers who want to follow Apple's HIG on permission timing without hand-rolling the same pattern for every permission type.
The pre-prompt pattern is genuinely useful — showing a custom dialog before the system one means you can educate the user and avoid wasting the irrecoverable native prompt on a cold launch. Per-permission frequency throttling (once a day, once a week, etc.) for re-enable prompts is a real UX problem solved correctly. Modular CocoaPods subspecs let you pull in only the permissions you need, which matters for App Store review — including HealthKit without using it gets your app rejected, and the README actually warns you about this. The API surface is clean: one `manage {}` callback handles all status cases.
Last commit was December 2023 and the README badges still reference Swift 3/4.2/Xcode 10 — the project is effectively unmaintained. iOS 17+ changed several permission APIs (notably Bluetooth requiring NSBluetoothAlwaysUsageDescription and location accuracy), and there's no indication any of this was updated. The PMAlertController dependency is a third-party UI library that is itself barely maintained, and coupling your permission UX to it means you inherit its staleness. Swift Package Manager support is listed as a TODO and was never finished, which is a dealbreaker for anyone not still using CocoaPods or Carthage.