Implementing local notifications in Flutter | Flutter tutorials beginners guide

Implementing local notifications in flutter  Flutter tutorials beginners guide  SCODES

Local notifications in Flutter allow you to schedule and display notifications to the user, even if the app is not currently running. They are a great way to keep your users engaged and informed about important events or updates within your app.

To implement local notifications in Flutter, you will need to use the flutter_local_notifications package. This package provides a simple and easy-to-use API for scheduling and managing local notifications in your Flutter app.

Step 1: Adding the Package to Your Project

To add the flutter_local_notifications package to your Flutter project, you will need to add the following to your pubspec.yaml file:

flutter_local_notifications: ^1.5.0

Step 2: Initializing the Notifications Plugin

Next, you will need to initialize the notifications plugin in your Flutter app. You can do this by calling the initialize method and passing in the required parameters.

void main() async {
var initializationSettingsAndroid = AndroidInitializationSettings('app_icon');
var initializationSettingsIOS = IOSInitializationSettings(
requestAlertPermission: false,
requestBadgePermission: false,
requestSoundPermission: false,
onDidReceiveLocalNotification: (int id, String title, String body, String payload) async {});
var initializationSettings = InitializationSettings(
initializationSettingsAndroid, initializationSettingsIOS);
await flutterLocalNotificationsPlugin.initialize(initializationSettings,
onSelectNotification: (String payload) async {
if (payload != null) {
debugPrint('notification payload: ' + payload);

Step 3: Scheduling a Notification

Once you have initialized the notifications plugin, you can schedule notification by calling the schedule method and passing in the required parameters.

var scheduledNotificationDateTime =
new DateTime.now().add(new Duration(seconds: 5));
var androidPlatformChannelSpecifics = new AndroidNotificationDetails(
'your channel id', 'your channel name', 'your channel description',
importance: Importance.Max, priority: Priority.High, ticker: 'ticker');
var iOSPlatformChannelSpecifics = new IOSNotificationDetails();
var platformChannelSpecifics = new NotificationDetails(
androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.schedule(
'scheduled title',
'scheduled body',

In this example, we are scheduling a notification to be displayed in 5 seconds, with a title of “scheduled title” and a body of “scheduled body”.

Step 4: Displaying the Notification

Once you have scheduled a notification, it will be displayed to the user at the specified time. If the app is in the foreground, the notification will appear as a system-generated pop-up. If the app is in the background, the notification will appear as a banner or alert, depending on the user’s device settings.


Local notifications are a great way to keep your users engaged and informed within your Flutter app. By following the steps outlined in this article, you can easily implement local notifications in your Flutter app and customize them to meet your needs. Whether you are scheduling reminders, updates, or alerts, local notifications provide a simple and effective way to reach your users.

Don’t forget to handle permissions and other important aspects when implementing local notifications in your app. Always consider the user experience and ensure that the notifications you send are relevant, non-intrusive, and add value to the user.

In conclusion, local notifications in Flutter are a powerful tool for enhancing user engagement and providing important updates to your users. By following the steps outlined in this article, you can implement local notifications in your Flutter app with ease


Are you looking to learn a programming language but feeling overwhelmed by the complexity? Our programming language guide provides an easy-to-understand, step-by-step approach to mastering programming.

Leave a Reply

Your email address will not be published. Required fields are marked *