Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Android
  3. Permission Dispatcher

Permission Dispatcher

Apache-2.0Java4.8.0

A declarative annotation-based library for handling Android runtime permissions in Kotlin and Java.

Visit WebsiteGitHubGitHub
11.1k stars1.4k forks0 contributors

What is Permission Dispatcher?

PermissionsDispatcher is an open-source Android library that provides a declarative, annotation-based API for handling runtime permissions. It solves the problem of verbose and error-prone permission-checking code by generating the necessary logic at compile time, allowing developers to focus on app functionality instead of permission boilerplate.

Target Audience

Android developers building apps that require runtime permissions, particularly those using Kotlin or Java who want a type-safe, maintainable solution.

Value Proposition

Developers choose PermissionsDispatcher because it offers a clean, reflection-free approach that reduces boilerplate, integrates seamlessly with Android lifecycle, and supports both Kotlin and Java with special permission handling.

Overview

A declarative API to handle Android runtime permissions.

Use Cases

Best For

  • Simplifying runtime permission requests in Android apps
  • Reducing boilerplate code for permission checks
  • Handling special permissions like system overlay or write settings
  • Integrating permission logic with Android Activities and Fragments
  • Building maintainable permission flows in Kotlin or Java
  • Ensuring type-safe permission handling without runtime reflection

Not Ideal For

  • Projects using AndroidX ActivityResult API or other modern permission helpers that prefer callback-based approaches
  • Apps with minimal permission needs where a few lines of native code suffice, avoiding extra dependencies
  • Teams that avoid annotation processors due to increased build times or toolchain complexity
  • Cross-platform frameworks like Flutter or React Native where permission handling is managed through platform channels

Pros & Cons

Pros

Annotation-Based Simplicity

Uses concise annotations like @RuntimePermissions and @NeedsPermission to declare permission requirements, drastically reducing boilerplate code as shown in the Kotlin example with generated methods like showCameraWithPermissionCheck.

Reflection-Free Performance

Generates all permission-handling code at compile time, avoiding runtime reflection for better performance and safety, which is emphasized as a core feature in the README.

Special Permissions Support

Handles tricky permissions like system overlay or write settings with specific annotations and documentation, making it easier to manage beyond standard runtime permissions.

Kotlin and Java Compatibility

Works seamlessly with both Kotlin (via kapt or ktx) and Java (via apt), offering flexibility for diverse codebases without sacrificing functionality.

Cons

Annotation Processor Overhead

Requires setting up kapt for Kotlin or apt for Java, which can slow down build times and add configuration complexity, especially in large projects.

Limited Component Scope

Only supports Activities and Fragments, not other Android components like Services or ViewModels, forcing workarounds for broader use cases.

Version Fragmentation

Has separate versions for Jetpack and appcompat (4.x vs 3.x), requiring careful migration and potentially causing compatibility issues, as noted in the installation section.

Frequently Asked Questions

Quick Stats

Stars11,147
Forks1,429
Contributors0
Open Issues29
Last commit2 years ago
CreatedSince 2015

Tags

#permission#android#annotation-processing#java#android-library#permission-handling#compile-time-generation#mobile-development#kotlin#permissions#runtime-permissions

Built With

A
Android
A
Annotation Processing
K
Kotlin
J
Java
G
Gradle

Links & Resources

Website

Included in

Android12.0k
Auto-fetched 1 day ago

Related Projects

RxPermissionsRxPermissions

Android runtime permissions powered by RxJava2

Stars10,389
Forks1,370
Last commit4 years ago
EasyPermissionsEasyPermissions

Simplify Android M system permissions

Stars9,855
Forks1,464
Last commit3 years ago
NoPermissionNoPermission

Android library for permissions request (updated 27.11.2017)

Stars107
Forks18
Last commit4 years ago
Ask-PermissionAsk-Permission

Ask Permission - Simple RunTime permission manager

Stars78
Forks11
Last commit8 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub