flutter_alarmkit 0.0.8 copy "flutter_alarmkit: ^0.0.8" to clipboard
flutter_alarmkit: ^0.0.8 copied to clipboard

PlatformiOS

A Flutter plugin for AlarmKit.

flutter_alarmkit #

A Flutter plugin that provides access to Apple's AlarmKit framework, introduced in iOS 26 (WWDC 2025). This plugin allows you to schedule and manage prominent alarms and countdowns in your Flutter applications on iOS devices.

Your alarms will ring even when Do Not Disturb is enabled or if the app has been terminated.

See more: https://developer.apple.com/documentation/alarmkit

Simulator Screenshot - iPhone 16 - 2025-06-20 at 20 30 28 IMG_4596 IMG_4597 IMG_4598

⚠️ Important Notes #

  • This plugin is in active development and relies on Apple's AlarmKit framework (beta).
  • Requires iOS 26+ and macOS Tahoe with Xcode 26.0 (beta).
  • Critical: iOS 26 has known issues with Flutter's debug mode due to stricter memory protection. Use Profile mode for on-device testing and iOS 18.5 simulator for debugging. See more.

Features #

Available features #

  • Request authorization to schedule alarms
  • Schedule one-shot alarms
  • Schedule countdown alarms
  • Schedule recurrent alarms
  • Listen to alarm updates
  • Cancel alarms
  • Stop alarms

More customizations coming soon.

Installation #

Please carefully follow the installation steps in InstallationSteps.md.

Usage #

Request Authorization #

Before scheduling any alarms, you need to request authorization from the user:

import 'package:flutter_alarmkit/flutter_alarmkit.dart';

try {
  final isAuthorized = await FlutterAlarmkit.requestAuthorization();
  if (isAuthorized) {
    print('Alarm authorization granted');
  } else {
    print('Alarm authorization denied or not determined');
  }
} catch (e) {
  print('Error requesting authorization: $e');
}

Listen to alarm updates #

To listen to alarm updates (when alarms are added, updated, or removed):

final stream = FlutterAlarmkit.alarmUpdates();

stream.listen((alarmUpdate) {
  print('Alarm updated: $alarmUpdate');
});

Schedule a One-Shot Alarm #

To schedule a one-time alarm:

try {
  final alarmId = await FlutterAlarmkit.scheduleOneShotAlarm(
    dateTime: DateTime.now().add(Duration(hours: 1)),
    label: 'My Alarm',
  );
  print('Alarm scheduled with ID: $alarmId');
} catch (e) {
  print('Error scheduling alarm: $e');
}

Schedule a Countdown Alarm #

To schedule a countdown alarm:

final alarmId = await FlutterAlarmkit.scheduleCountdownAlarm(
  countdownDurationInSeconds: 10, // Duration before the alarm triggers
  repeatDurationInSeconds: 5, // Duration between each repetition
  label: 'My Countdown Alarm',
  tintColor: '#0000FF',
);

Schedule a Recurrent Alarm #

To schedule a recurrent alarm:

final alarmId = await FlutterAlarmkit.scheduleRecurrentAlarm(
  weekdays: {Weekday.monday, Weekday.wednesday, Weekday.friday},
  hour: 10,
  minute: 0,
  label: 'My Recurrent Alarm',
  tintColor: '#0000FF',
);

Cancel an Alarm #

To cancel an alarm:

await FlutterAlarmkit.cancelAlarm(alarmId: alarmId);

Stop an Alarm #

To stop an alarm:

await FlutterAlarmkit.stopAlarm(alarmId: alarmId);

Contributing #

Contributions are welcome! Please feel free to submit a Pull Request.

License #

This project is licensed under the MIT License - see the LICENSE file for details.

8
likes
150
points
399
downloads

Publisher

verified publishergdelataillade.me

Weekly Downloads

A Flutter plugin for AlarmKit.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on flutter_alarmkit