flutter_activity_kit 0.5.0
flutter_activity_kit: ^0.5.0 copied to clipboard
Declarative iOS Live Activities (Dynamic Island & Lock Screen) and Android Ongoing Notifications with push token sync, rich state models, and preview widgets.
Changelog #
0.5.0 #
- Fixed
ActivitySessionsnapshots so sequential quick updates preserve prior state and ended sessions reportended. - Added explicit Android action behavior (
background,opensApp, anddeepLink) plus action payloads. - Added cold-start action buffering and reliable foreground iOS deep-link routing.
- Removed broken cross-process iOS
NotificationCenterAppIntent bridge; documented native background-action boundary. - Persisted Android activity metadata and notification IDs across process restarts.
- Added Android not-found errors, lifecycle events, delayed dismissal, alert sounds, large icons, categories, visibility timestamps, and priority handling.
- Stopped swallowing Android notification permission failures.
- Added
iosPushTypeto quick start for APNs push-to-update token requests. - Added controller sync error reporting and synchronization/end ordering.
- Fixed Swift generator to emit plugin-compatible
FlutterActivityAttributes. - Added CI verification for analysis, tests, Android build, iOS build, and publish validation.
- Corrected package docs and CocoaPods metadata.
- Fixed duplicate iOS action delivery caused by routing the same URL through
SceneDelegate,AppDelegate, and the plugin. - Fixed workout taps incorrectly opening match statistics and routed Call Driver through the app before launching the phone dialer.
0.4.1 #
- Documentation Overhaul & Developer Guide:
- Comprehensive documentation covering the Fluent Quick-Start API, reactive
ActivityController<T>, andActivityActionListener. - Added full guide for backend integration with WebSockets, Firebase Cloud Firestore, Apple APNs HTTP/2 Live Activity Pushes, and FCM background handlers.
- Added setup instructions for Swift Package Manager (SPM), iOS actions, and Android 13+ notification permissions.
- Added native chronometer and countdown guides.
- Comprehensive documentation covering the Fluent Quick-Start API, reactive
- Smart Concurrency Debouncing in
ActivityController:- Built-in
syncDebounce(150ms) and in-flight concurrency queue to eliminate platform channel throttling and latency during rapid UI state mutations.
- Built-in
0.4.0 #
- Fluent Quick-Start API (
FlutterActivityKit.start(),quickUpdate(),quickEnd()):- Start, update, and end Live Activities and Ongoing Notifications in 1 concise line of code without needing nested wrapper classes.
- Automatically resolves hardware countdowns, custom activity types, and channel options.
- Reactive State Controller (
ActivityController<T>):- Bind any Flutter data model or
ValueNotifierdirectly to an activity. - Updating
controller.value = newStateautomatically pushes synchronization to the Dynamic Island & Android Notification. - Includes
ActivityBuilder<T>widget for reactive UI binding.
- Bind any Flutter data model or
- Declarative Action Routing & Push Hooks (
FlutterActivityKit.onAction(),ActivityActionListener):- Register action callbacks anywhere without manual
StreamSubscriptionlifecycle management. FlutterActivityKit.onPushToken()helper for easy backend token synchronization.
- Register action callbacks anywhere without manual
- Updated Example App:
- Refactored example app to showcase the Fluent Quick-Start API, reactive
ActivityController,ActivityBuilder, andActivityActionListener.
- Refactored example app to showcase the Fluent Quick-Start API, reactive
0.3.0 #
- Fluent Quick-Start API (
FlutterActivityKit.start(),quickUpdate(),quickEnd()):- Start, update, and end Live Activities and Ongoing Notifications in 1 concise line of code without needing nested wrapper classes.
- Automatically resolves hardware countdowns, custom activity types, and channel options.
- Reactive State Controller (
ActivityController<T>):- Bind any Flutter data model or
ValueNotifierdirectly to an activity. - Updating
controller.value = newStateautomatically pushes synchronization to the Dynamic Island & Android Notification. - Includes
ActivityBuilder<T>widget for reactive UI binding.
- Bind any Flutter data model or
- Declarative Action Routing & Push Hooks (
FlutterActivityKit.onAction(),ActivityActionListener):- Register action callbacks anywhere without manual
StreamSubscriptionlifecycle management. FlutterActivityKit.onPushToken()helper for easy backend token synchronization.
- Register action callbacks anywhere without manual
- Native Hardware Countdowns & Chronometers (
ActivityTimer):- Hardware-rendered real-time countdown timers and elapsed stopwatches.
- Rendered by SwiftUI on Dynamic Island and Lock Screen using
Text(timerInterval:pauseTime:countsDown:)without a Dart polling loop. - Rendered in Android Ongoing Notifications via SystemUI
setUsesChronometerandsetChronometerCountDown. - Added
ActivityTimer.countdown()andActivityTimer.chronometer()factory constructors.
- Deep Linking & Foreground Intent Launching:
- Added foreground app-opening actions from Dynamic Island / Lock Screen buttons.
- Native Phone dialer launcher (
Link(destination: "tel://...")). SceneDelegate/AppDelegateURL context bridge.- Android
PendingIntent.getActivitywithFLAG_ACTIVITY_SINGLE_TOPfor seamless foreground navigation.
0.2.0 #
- Interactive iOS actions:
- Added initial action-routing support; replaced in 0.5.0 because extension-local notifications cannot reach Dart across processes.
- Fixed platform channel threading to guarantee all action events dispatch on the platform main thread.
- Android Runtime Permission (
POST_NOTIFICATIONS):- Added native
FlutterActivityKit.requestPermissions()with automatedActivityAwareruntime permission handling on Android 13+ (API 33+).
- Added native
- iOS 16.1 & 16.2+ Compatibility:
- Full compatibility branching between
Activity.content(iOS 16.2+) andActivity.contentState(iOS 16.1). - Made
IOSOptions.pushTypeoptional/nullable for seamless local activities without requiring remote APNs certificates.
- Full compatibility branching between
- Swift Package Manager (SPM):
- Added full Swift Package Manager compatibility for modern Flutter iOS builds.
- Automatic Live Sports Match Simulation:
- Added real-time auto-updating match simulation to the example application.
0.1.0 #
- Initial release of
flutter_activity_kit. - Unified Declarative API:
startActivity,updateActivity,endActivity,listActivities,getActivityState,areActivitiesEnabled.
- iOS Live Activities & Dynamic Island Support:
- Full Swift ActivityKit bridge for iOS 16.1+.
- Support for Dynamic Island (Expanded, Compact, Minimal) and Lock Screen banners.
- Push-to-update and push-to-start token management and streams.
- Live activity state change streams.
- Swift code generator CLI tool (
dart run flutter_activity_kit:generate_swift).
- Android Ongoing Notifications Support:
- Ongoing, pinned notification channel management.
- Progress bars, chronometer/countdown timers, badges, and custom action buttons.
- Broadcast receiver bridging action clicks back to Dart event stream.
- Flutter In-App Previews:
DynamicIslandPreviewandOngoingNotificationPreviewwidgets to inspect and preview live activities inside any Flutter view.
- Rich Models & Configuration:
ActivityAttributes,ActivityContentState,ActivityContent,ActivityAlert,ActivityAction,AndroidOptions,IOSOptions.
- Comprehensive example application with delivery tracking, sports live score, and timer use cases.