NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
A Flutter plugin to limit screen time or block apps on Android and iOS
Last release 7 days ago
01 Oct 2026
Release timing varies
gaps range from 2 weeks to 1.3 years
Nearly every release is documented
notes for 6 of 6 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
6 releases · first in 2025
One column per month.
Android namespace changed from com.example.app_limiter to io.github.connectrizwan.app_limiter. Saved blocking state is kept.
com.example.app_limiter to
io.github.connectrizwan.app_limiter. Saved blocking state is kept.events emits typed AppLimiterEvents instead of maps (event.toMap() gives the old shape).AppLimiterException (with AppLimiterErrorCode) instead of
PlatformException / ArgumentError.AppLimiterPlatform implementations must be updated.getPermissionStatus(), requestPermission(),
getBlockingState(), unblockAll(), AppLimiter.isSupported.limiter.android and limiter.ios.android.getInstalledApps() with names, categories, system flag and optional PNG icons.android.blockApps() / android.unblockApps() for several packages at once.android.isEnterpriseCapable().requestPermission() completes when the user returns from the settings screen.IosSchedule type for iOS schedules.setBlockScreen(BlockScreenConfig): custom title, message, footer, colors,
icon and an optional button that closes the blocked app or opens the host app.setNotification() to change the blocking notification text.blockAllApps(except: [...]) allowlist; BlockingState.allowedPackages.AppLimiterEventType.blockedAppOpened event with the package name (Android).duration: on blockApp, blockApps and blockAllApps.setSchedule(BlockSchedule), removeSchedule,
getSchedules, with overnight windows, weekdays and "all apps except".BlockingState.blockedUntil, blockAllUntil and activeScheduleIds.blockExpired, scheduleStarted and scheduleEnded (Android).notDetermined (and
blocking failed with permissionDenied) although access was granted.ForegroundServiceDidNotStartInTimeException when blocking was turned off
right after it was turned on (for example a quick toggle) on Android 12+.block_overlay layout no longer prevents the block screen
from showing.dart run app_limiter:setup_ios command that adds them to an Xcode project.ios.setShield(IosShieldConfig): custom block screen with {app} placeholder.ios.blockSelectedApps(duration: ...): timed blocks that end while the app is closed.ios.setSchedule(IosBlockSchedule), removeSchedule, getSchedules.ios.getExtensionStatus() and AppLimiterErrorCode.extensionMissing.BlockingState.iosBlockedUntil; activeScheduleIds now also covers iOS.Deprecated blocAndroidApp(), unblocAndroidApp() and blockAndUnblockIOSApp().
MissingForegroundServiceTypeException when blocking (#1, #4).
The blocking service is now a specialUse foreground service.blockApp method, which blocked every app on Android.[AnyHashable: Any] passed as [String: Any]).events threw MissingPluginException on Android.showIOSAppPicker(), blockIOSApps(), unblockIOSApps(), isIOSAppsBlocked(),
getIOSAuthorizationStatus() to separate selection from blocking (#6).blockAllAndroidApps(), unblockAllAndroidApps(), getBlockedAndroidApps(),
isAndroidBlockingActive().android_blocking_state_changed, android_blocking_stopped).blockAndroidApp/unblockAndroidApp reject empty package names; use the All variants.PERMISSION_DENIED instead of silently doing nothing.requestIosPermission() returns false when the user declines instead of throwing.SCHEDULE_EXACT_ALARM from the plugin manifest.blocAndroidApp(), unblocAndroidApp() and blockAndUnblockIOSApp().Readme File updated for configuration
Added Dartdoc comments for public API
Added Dartdoc comments for public API
Supports blocking/unblocking Android and iOS apps.
Your coding agent can read these notes before it upgrades. Set up the MCP server →