Easy Notifications

Easy Notifications Logo

Pub Version License: MIT Platform Support Flutter Support Pub Points Support me

A secure and privacy-focused Flutter plugin for handling local notifications with enhanced features and SOC 2 compliance considerations. Supports Android, iOS, Web platforms.

Features

  • 🔒 Secure handling of notification data
  • 🎯 Precise scheduling with timezone support
  • 🖼️ Rich media notifications (images, custom styles)
  • 📱 Cross-platform support (Android, iOS, Web)
  • 🔐 Granular permission controls
  • 📋 Action buttons support
  • ⏰ Exact timing with background wake-up support
  • 🛡️ Privacy-first approach
  • 🎨 Highly customizable appearance (NotificationStyle)
  • 🔧 Advanced configuration (NotificationSettings)
  • 🔄 JSON serialization support

Getting Started

Installation

Add this to your package's pubspec.yaml file:

dependencies:
  easy_notifications: ^1.2.5

Platform Setup

Android

Add the following permissions to your AndroidManifest.xml:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

iOS

Add the following keys to your Info.plist:

<key>UIBackgroundModes</key>
<array>
    <string>fetch</string>
    <string>remote-notification</string>
</array>

Web

To enable web notifications, you need to add the following script to your index.html file:

<script>
  if ('Notification' in window) {
    Notification.requestPermission().then(permission => {
      if (permission === 'granted') {
        console.log('Notification permission granted.');
      }
    });
  }
</script>

Basic Usage

// Initialize the plugin
await EasyNotifications.init();

// Show a simple notification
await EasyNotifications.show(
  title: 'Hello!',
  body: 'This is a notification',
);

// Show notification with image and custom style
await EasyNotifications.show(
  title: 'Styled Notification',
  body: 'With custom appearance',
  style: NotificationStyle(
    backgroundColor: '#FFFFFF',
    titleColor: '#000000',
    padding: const EdgeInsets.all(16),
  ),
);

// Schedule a notification
await EasyNotifications.schedule(
  title: 'Reminder',
  body: 'Time for your meeting!',
  scheduledDate: DateTime.now().add(Duration(hours: 1)),
);

Usage

EasyNotifications.showMessage(
  title: 'New Message',
  body: 'You have a new notification',
  id: 1001, // Optional custom ID
);

Notifications Preview

Preview

Recent Updates

1.2.5

  • Fixed web notifications registration
  • Added proper error handling for web platform

1.2.4

  • Added back NotificationLevel class for backwards compatibility

1.2.3

  • Fixed platform support documentation
  • Removed unsupported platforms from pubspec.yaml

Security & Privacy

Data Handling

  • 🔐 All sensitive data encrypted at rest
  • 🗑️ Automatic cleanup of temporary files
  • 📁 Secure local storage practices

Compliance

  • SOC 2 Type II compliant architecture
  • GDPR-ready data processing
  • CCPA privacy controls

Contributing

We welcome contributions! Please see our contributing guide.

License

MIT License - see LICENSE for details.

Libraries

easy_notifications
A Flutter plugin for handling local notifications with enhanced security and privacy features. This plugin provides a simple interface for sending and managing local notifications while ensuring user privacy and data protection.
easy_notifications_web