Skip to content

Instantly share code, notes, and snippets.

@marufsharia
Last active December 18, 2022 16:36
Show Gist options
  • Select an option

  • Save marufsharia/022da0f7753741927e20cc2090b180c2 to your computer and use it in GitHub Desktop.

Select an option

Save marufsharia/022da0f7753741927e20cc2090b180c2 to your computer and use it in GitHub Desktop.
To implement an alarm functionality in Flutter, you can use the flutter_local_notifications package. This package allows you to schedule and display local notifications in Flutter.

To implement an alarm functionality in Flutter

you can use the flutter_local_notifications package. This package allows you to schedule and display local notifications in Flutter.

Here's an example of how you can use the flutter_local_notifications package to schedule an alarm in Flutter:

First, add the flutter_local_notifications package to your project's pubspec.yaml file:

dependencies:
  flutter:
    sdk: flutter
  flutter_local_notifications: ^1.4.4

Next, initialize the flutter_local_notifications plugin in your Flutter app. You can do this in the initState() method of your app's main StatefulWidget:

import 'package:flutter_local_notifications/flutter_local_notifications.dart';

final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
    FlutterLocalNotificationsPlugin();

// Initialize the plugin. This is typically done in the `initState` method
// of your app's main `StatefulWidget`.
@override
void initState() {
  super.initState();
  var initializationSettingsAndroid =
      AndroidInitializationSettings('app_icon');
  var initializationSettingsIOS = IOSInitializationSettings();
  var initializationSettings = InitializationSettings(
      initializationSettingsAndroid, initializationSettingsIOS);
  flutterLocalNotificationsPlugin.initialize(initializationSettings,
      onSelectNotification: onSelectNotification);
}

After initializing the plugin, you can use the flutterLocalNotificationsPlugin.schedule() method to schedule an alarm for a specific time in the future. Here's an example of how you can schedule an alarm for 5 minutes from the current time:

// Get the current time
var scheduledNotificationDateTime =
    DateTime.now().add(Duration(minutes: 5));

// Create the notification details
var androidPlatformChannelSpecifics = AndroidNotificationDetails(
    'your channel id', 'your channel name', 'your channel description',
    importance: Importance.Max, priority: Priority.High, ticker: 'ticker');
var iOSPlatformChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics = NotificationDetails(
    androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);

// Schedule the notification
await flutterLocalNotificationsPlugin.schedule(
    0,
    'Alarm',
    'Your alarm is scheduled for 5 minutes from now',
    scheduledNotificationDateTime,
    platformChannelSpecifics);
    

When the scheduled time arrives, the notification will be displayed to the user. You can handle the notification by defining a callback function, such as onSelectNotification, which is called when the user taps on the notification:

Future onSelectNotification(String payload) async {
  if (payload != null) {
    debugPrint('notification payload: ' + payload);
  }
  // Do something with the payload
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment