app_blocker
Cross-platform app blocking plugin for Flutter. Block apps with custom block screen (Android) and Screen Time Shield (iOS). Supports scheduling and profiles.
2.2.0
237 downloads/mo
#1185 most downloaded on pub.dev
kaneiof/app_blocker
What this package is like to depend on
Last release 14 days ago
10 Aug 2026
Release timing varies
gaps range from 2 weeks to 4 months
Most releases are documented
notes for 12 of 17 stable releases
Nothing withdrawn
no release was ever pulled
5 months old
17 releases · first in 2026
17 releases in the last 12 months
see the full history below
Release timeline
17 releases · Mar 2026 to Aug 2026Releases
latest 17-
2.2.010 Aug 2026Release notes
Open source →- Migrates to Built-in Kotlin. The Android build no longer applies the Kotlin Gradle Plugin itself, which is required for Android Gradle Plugin 9 and removes the "plugins that apply KGP" warning on Flutter 3.44+.
- Updates the minimum supported SDK version to Flutter 3.44 / Dart 3.12. Earlier Flutter versions cannot supply the Kotlin toolchain this plugin now relies on, so apps on older Flutter must stay on 2.1.x.
- Updates Android dependencies:
core-ktx1.18.0,work-runtime-ktx2.11.2,kotlinx-coroutines-android1.10.2,gson2.14.0. - Removes the obsolete
packageattribute from the Android manifest, which AGP 8 replaced with thenamespacebuild setting. - Fixes the iOS podspec version, which was still pinned at 2.0.0.
- Example app: updates to AGP 9.0.1 / Kotlin 2.3.20 / Gradle 9.1.0 and aligns its iOS deployment target with the plugin's 16.0 minimum.
-
2.1.010 Apr 2026Release notes
Open source →- One-time schedules: Added optional
scheduleDateparameter toBlockSchedulefor non-recurring schedules. Automatically disables after completion. Fully backward compatible with existing recurring schedules. - Improved validation for recurring schedules: schedules with an empty
weekdaysnow throw an ArgumentError instead of silently doing nothing.
- One-time schedules: Added optional
-
2.0.709 Apr 2026 -
2.0.609 Apr 2026 -
2.0.509 Apr 2026 -
2.0.409 Apr 2026 -
2.0.309 Apr 2026 -
2.0.209 Apr 2026Release notes
Open source →- Add pub.dev topics for better discoverability
- Improve README structure with Features, Getting Started, and Additional Information sections
- Add pub points, popularity, and likes badges
- Add dartdoc comments to all public constants
- Enable
public_member_api_docslint rule
-
2.0.105 Apr 2026 -
2.0.005 Apr 2026Release notes
Open source →⚠️ Breaking Changes
General:
- getBlockedApps() now returns a list of all currently blocked app IDs, including those blocked by schedules and profiles (previously only directly blocked apps).
- unblockAll() now also deactivates any active profile and disables all schedules (otherwise leads to inconsistent state with all apps unblocked but potentially active schedules/profiles).
- Capability
canShowOverlayrenamed tocanCustomizeBlockScreeninBlockerCapabilities.
Android:
- Replaced foreground service with AccessibilityService (better battery efficiency than polling)
- Important: Users must now enable Settings → Accessibility → App Blocker - checkPermission() and requestPermission() correctly handle this
FOREGROUND_SERVICE,PACKAGE_USAGE_STATS, andSYSTEM_ALERT_WINDOWpermissions no longer needed, can be removed from AndroidManifest if manually added- Replaced overlay window with a normal Android Activity for the block screen (needed for robust behavior with AccessibilityService-based approach)
SYSTEM_ALERT_WINDOWpermission no longer required setOverlayConfig()/getOverlayConfig()renamed tosetBlockScreenConfig()/getBlockScreenConfig();OverlayConfigrenamed toBlockScreenConfig.
iOS:
- Minimum version bumped to iOS 16.0
- App token format changed for stability
- before (indexed: "app_token_0"): same id could refer to different apps
- now (JWT: "eyJkXR..."): stable unique identifier for each app
- APIs stay the same but old app tokens will no longer work if stored from previous versions
Features
- Added
getBlockScreenConfig()API - New events:
profileActivated,profileDeactivated - Improved
getBlockedApps()to include schedules and profiles
Fixes
- Fixed custom Android block screen config not being applied
- Fixed
SCHEDULE_EXACT_ALARMpermission not requested - Fixed iOS token stability issues
- Fixed schedules not activating when enabled during active time
- Fixed schedules lost after app restart
Changes
- Improved error handling in native code
- Clarified iOS schedule limitations in docs
- Extended example app to demonstrate all features
-
1.0.631 Mar 2026 -
1.0.523 Mar 2026Nothing published for this version
-
1.0.423 Mar 2026Nothing published for this version
-
1.0.323 Mar 2026Nothing published for this version
-
1.0.223 Mar 2026Nothing published for this version
-
1.0.123 Mar 2026Nothing published for this version
-
1.0.023 Mar 2026Release notes
Open source →- Initial release
- Cross-platform app blocking (Android overlay + iOS Screen Time Shield)
- Permission management
- App discovery (Android installed apps list, iOS FamilyActivityPicker)
- Real-time blocking events via Stream
- Customizable overlay (Android)
- Schedule-based blocking with AlarmManager (Android) and UserDefaults (iOS)
- Focus profiles for grouping blocked apps and schedules
- Boot persistence (Android)