Convert Figma logo to code with AI

invertase logonotifee

⚛️ A feature rich notifications library for React Native.

1,806
213
1,806
34

Top Related Projects

Firebase Android SDK

Parse Server for Node.js / Express

React Native Local and Remote Notifications

Quick Overview

Notifee is a powerful and feature-rich notification library for React Native applications. It provides a cross-platform API for creating and managing notifications on both Android and iOS, offering advanced features like notification channels, grouping, and actions.

Pros

  • Cross-platform compatibility with a unified API for both Android and iOS
  • Advanced notification features like channels, grouping, and custom actions
  • Extensive documentation and examples for easy implementation
  • Active development and community support

Cons

  • Requires additional setup and configuration compared to basic notification libraries
  • May have a steeper learning curve for developers new to advanced notification concepts
  • Some features may be platform-specific, requiring separate handling for Android and iOS

Code Examples

Creating a basic notification:

import notifee from '@notifee/react-native';

async function displayNotification() {
  await notifee.requestPermission();

  const channelId = await notifee.createChannel({
    id: 'default',
    name: 'Default Channel',
  });

  await notifee.displayNotification({
    title: 'Notification Title',
    body: 'This is the notification body',
    android: {
      channelId,
      smallIcon: 'name_of_a_small_icon',
    },
  });
}

Creating a notification with actions:

import notifee, { AndroidImportance } from '@notifee/react-native';

async function displayNotificationWithActions() {
  const channelId = await notifee.createChannel({
    id: 'actions',
    name: 'Action Channel',
    importance: AndroidImportance.HIGH,
  });

  await notifee.displayNotification({
    title: 'New Message',
    body: 'You have a new message from John',
    android: {
      channelId,
      actions: [
        {
          title: 'Reply',
          pressAction: { id: 'reply' },
        },
        {
          title: 'Mark as Read',
          pressAction: { id: 'mark-read' },
        },
      ],
    },
  });
}

Handling notification events:

import notifee, { EventType } from '@notifee/react-native';

function setupNotificationListeners() {
  return notifee.onForegroundEvent(({ type, detail }) => {
    switch (type) {
      case EventType.DISMISSED:
        console.log('User dismissed notification', detail.notification);
        break;
      case EventType.PRESS:
        console.log('User pressed notification', detail.notification);
        break;
    }
  });
}

Getting Started

  1. Install the library:

    npm install @notifee/react-native
    
  2. For iOS, add the following to your Podfile:

    pod 'RNNotifee', :path => '../node_modules/@notifee/react-native'
    
  3. Run pod install:

    cd ios && pod install
    
  4. Import and use Notifee in your React Native app:

    import notifee from '@notifee/react-native';
    
    // Request notification permissions
    await notifee.requestPermission();
    
    // Display a notification
    await notifee.displayNotification({
      title: 'Hello World',
      body: 'This is your first notification!',
    });
    

Competitor Comparisons

Firebase Android SDK

Pros of firebase-android-sdk

  • Comprehensive suite of tools for app development, including analytics, authentication, and cloud storage
  • Robust documentation and extensive community support
  • Seamless integration with other Google Cloud services

Cons of firebase-android-sdk

  • Larger SDK size and potential performance overhead
  • Limited customization options for certain features
  • Vendor lock-in to Google's ecosystem

Code Comparison

firebase-android-sdk:

FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        val token = task.result
        // Use the FCM token
    }
}

notifee:

import notifee from '@notifee/react-native';

const channelId = await notifee.createChannel({
  id: 'default',
  name: 'Default Channel',
});

await notifee.displayNotification({
  title: 'Notification Title',
  body: 'Main body content of the notification',
  android: { channelId },
});

Summary

While firebase-android-sdk offers a comprehensive suite of tools for Android app development with excellent documentation and integration with Google services, it may introduce performance overhead and limit customization. Notifee, on the other hand, focuses specifically on notifications, providing a more lightweight and flexible solution for managing notifications in React Native applications.

Parse Server for Node.js / Express

Pros of Parse Server

  • Full-featured backend solution with built-in user management, data storage, and cloud functions
  • Scalable and customizable, suitable for large-scale applications
  • Active community and extensive documentation

Cons of Parse Server

  • Steeper learning curve due to its comprehensive feature set
  • Requires more setup and configuration compared to simpler notification libraries

Code Comparison

Parse Server (server-side setup):

const express = require('express');
const ParseServer = require('parse-server').ParseServer;
const app = express();
const api = new ParseServer({
  databaseURI: 'mongodb://localhost:27017/dev',
  appId: 'myAppId',
  masterKey: 'myMasterKey',
  serverURL: 'http://localhost:1337/parse'
});
app.use('/parse', api);

Notifee (client-side usage):

import notifee from '@notifee/react-native';

async function displayNotification() {
  await notifee.requestPermission();
  await notifee.displayNotification({
    title: 'Notification Title',
    body: 'Main body content of the notification',
  });
}

Summary

Parse Server is a comprehensive backend solution offering a wide range of features, while Notifee focuses specifically on mobile notifications. Parse Server is better suited for complex applications requiring a full backend infrastructure, whereas Notifee excels in providing a streamlined notification experience for mobile apps.

React Native Local and Remote Notifications

Pros of react-native-push-notification

  • Simpler setup process for basic push notifications
  • Longer history and more established in the React Native ecosystem
  • Supports a wider range of older React Native versions

Cons of react-native-push-notification

  • Less frequent updates and maintenance
  • Limited support for advanced notification features
  • May require additional configuration for iOS background notifications

Code Comparison

react-native-push-notification:

PushNotification.configure({
  onNotification: function (notification) {
    console.log("NOTIFICATION:", notification);
  },
  permissions: {
    alert: true,
    badge: true,
    sound: true,
  },
});

Notifee:

import notifee from '@notifee/react-native';

async function onDisplayNotification() {
  await notifee.requestPermission()
  const channelId = await notifee.createChannel({
    id: 'default',
    name: 'Default Channel',
  });
  await notifee.displayNotification({
    title: 'Notification Title',
    body: 'Main body content of the notification',
    android: { channelId },
  });
}

Summary

react-native-push-notification offers a simpler setup for basic push notifications and has been around longer in the React Native ecosystem. However, Notifee provides more advanced features, better documentation, and more frequent updates. Notifee's code is more verbose but offers greater flexibility and control over notifications, especially for Android. The choice between the two depends on the project's specific requirements and the desired level of customization for push notifications.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README


Notifee Notifications

Chat on Discord


A feature rich Android & iOS notifications library for React Native.

> Learn More


Notifee is going Noti-'free' - free and fully open source. [Learn more]


Documentation

Android

The APIs for Android allow for creating rich, styled and highly interactive notifications. Below you'll find guides that cover the supported Android features.

Topic
AppearanceChange the appearance of a notification; icons, colors, visibility etc.
BehaviourCustomize how a notification behaves when it is delivered to a device; sound, vibration, lights etc.
Channels & GroupsOrganize your notifications into channels & groups to allow users to control how notifications are handled on their device
Foreground ServiceLong running background tasks can take advantage of an Android Foreground Service to display an on-going, prominent notification.
Grouping & SortingGroup and sort related notifications in a single notification pane.
InteractionAllow users to interact with your application directly from the notification, with actions.
Progress IndicatorsShow users a progress indicator of an on-going background task, and learn how to keep it updated.
StylesStyle notifications to show richer content, such as expandable images/text, or message conversations.
TimersDisplay counting timers on your notification, useful for on-going tasks such as a phone call, or event time remaining.

iOS

Below you'll find guides that cover the supported iOS features.

Topic
AppearanceChange how the notification is displayed to your users.
BehaviourControl how notifications behave when they are displayed on a device; sound, crtitial alerts, etc.
CategoriesCreate & assign categories to notifications.
InteractionHandle user interaction with your notifications.
PermissionsRequest permission from your application users to display notifications.

License


Built and maintained by Invertase.

NPM DownloadsLast 30 Days