Metadesign Solutions

Integrating Push Notifications in Flutter Apps with Code Samples

Integrating Push Notifications in Flutter Apps with Code Samples
  • April 18, 2023
  • Amit Gupta
  • 6 minutes read

Blog Description

Integrating Push Notifications in Flutter Apps with Code Samples

Integrating Push Notifications in Flutter Apps

Flutter app development has gained immense popularity in recent years, with businesses and individuals alike opting for Flutter app development services to build their mobile applications. Push notifications are an important feature in any mobile app that helps engage users by sending them timely updates and alerts. In this article, we will discuss how to integrate push notifications in Flutter apps, along with code samples.

Before diving into the code, it’s important to understand the basic concepts of push notifications. A push notification is a message that is sent from a server to a
mobile device, prompting the device to display a message or perform an action. Push notifications are typically used to inform users about important updates, promotions, or reminders. They can be delivered even when the app is not currently in use, ensuring that users are kept up-to-date with the latest information.

To implement push notifications in Flutter, we will be using Firebase Cloud Messaging (FCM), a messaging service provided by Google. FCM provides a reliable and scalable infrastructure for delivering push notifications to mobile devices. Here are the steps involved in integrating push notifications in a Flutter app:

Step 1: Set up Firebase Cloud Messaging

The first step is to set up Firebase Cloud Messaging in your Flutter app. To do this, you will need to create a Firebase project and add the necessary Firebase SDK to your Flutter app . Here are the steps to set up Firebase Cloud Messaging:

  • Create a Firebase project and add the necessary Firebase SDK to your Flutter app. This involves adding the following dependencies to your pubspec.yaml file:

    dependencies:

				
					  firebase_core: ^1.0.0;
  firebase_messaging: ^10.0.0;

				
			
  • Configure Firebase Cloud Messaging by adding the Firebase messaging configuration file (google-services.json for Android or GoogleService-Info.plist for iOS) to your Flutter project.

  • Initialize Firebase by adding the following code in your main.dart file:

				
					  import 'package:firebase_core/firebase_core.dart';
  void main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    runApp(MyApp());
  }
				
			

This code initializes Firebase and ensures that the app is properly set up to receive push notifications.

Step 2: Configure AndroidManifest.xml and Info.plist

Next, you need to configure the AndroidManifest.xml file for Android and the Info.plist file for iOS to enable push notifications in your Flutter app. Here are the steps to configure these files:

For Android:

				
					<uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.WAKE_LOCK" />

				
			
				
					<service android:name="com.example.myapp.MyFirebaseMessagingService" android:exported="false">
    <intent-filter>
      <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
  </service>
				
			

This code sets up a service that listens for incoming push notifications.
For iOS:

				
					 <key> FirebaseAppDelegateProxyEnabled </key>
  <false/>
  <key> UIBackgroundModes </key>
  <array>
    <string> remote-notification </string> 
  </array>
				
			
				
					 import Firebase
  @UIApplicationMain
  class AppDelegate: UIResponder, UIApplicationDelegate {

				
			
				
					 ifunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:
    [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
      FirebaseApp.configure() return true 
    } 
    func application(_ application:
    UIApplication, didReceiveRemoteNotification user
				
			

Step 3: Handle incoming notifications

Once you have configured Firebase Cloud Messaging and set up the necessary files, you need to handle incoming push notifications in your Flutter app. Here is an example of how to handle incoming notifications in your Flutter app:

  • Create a new file called MyFirebaseMessagingService.dart and add the following code:

				
					  class MyFirebaseMessagingService extends FirebaseMessagingService {
    @override Future onMessage(RemoteMessage message) async {
      print("Received message: message.notification?.title");
    }
    @override Future onBackgroundMessage(RemoteMessage message) async {
      print("Received background message: message.notification?.title");
    }
    @override Future onBackgroundMessage(RemoteMessage message) async {
      print("Received background message: message.notification?.title"); 
    } 
  }
  
				
			
  • This code creates a service that listens for incoming push notifications and prints the notification title to the console.

  • Add the following code to your main.dart file:

				
					  import 'package:firebase_messaging/firebase_messaging.dart';
  import 'MyFirebaseMessagingService.dart';
  void main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    FirebaseMessaging.onBackgroundMessage(MyFirebaseMessagingService()
    .onBackgroundMessage);
    runApp(MyApp());
  }
				
			

This code registers the MyFirebaseMessagingService service to handle incoming push notifications.

 

Step 4: Testing push notifications

To test push notifications in your Flutter app, you can use the Firebase Cloud Messaging console to send a test message to your app. Here’s how to do it:

  • Go to the Firebase console and select your project.

  • Click on “Cloud Messaging” in the left-hand menu.

  • Click on “New Notification” to create a new test message.

  • Enter a title and body for the notification, and select your app from the “Target” dropdown.

  • Click “Send Test Message” to send the notification to your app.

 

If everything is set up correctly, you should see the notification appear on your device.

In addition to the steps outlined above, there are a few other things to keep in mind when integrating push notifications in a Flutter app:

 

  • 1.Handling app states

     

    When your app is in the background or not running, incoming push notifications will be handled differently than when the app is in the foreground. You will need to handle these different states accordingly to ensure that your users receive the notifications in a timely and effective manner.

  • 2.Handling notification payloads

     

    Push notifications can include additional data or payloads that can be used to provide more context or functionality to your app. You will need to handle these payloads and extract the relevant information to ensure that your app functions as intended.

  • 3.User permissions

     

    In order to receive push notifications, your app must request and receive permission from the user. You will need to handle these permissions and provide clear messaging to the user about the benefits and potential drawbacks of enabling push notifications.

     

    As with any feature in a mobile app, it’s important to thoroughly test push notifications before releasing your app to the public. Make sure to test the feature on a variety of devices and with different network conditions to ensure that it functions as intended.

 

Conclusion:

Integrating push notifications in a Flutter app can be a powerful way to engage users and keep them informed about the latest updates and information. By using Firebase Cloud Messaging and following the steps outlined in this article, you can easily set up push notifications in your app and provide a valuable feature to your users. If you’re looking for Flutter app development services, make sure to ask about their experience with push notifications and other key features. With the right team of developers, you can create a high-quality Flutter app that meets the needs of your users and helps you achieve your business goals.

0 0 votes
Blog Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Scroll to Top

GET a QUOTE

Contact Us for your project estimation
We keep all information confidential and automatically agree to NDA.