๐Ÿ“ฆ zeba_academy_notification_scheduler

A powerful, lightweight Flutter package for offline local notification scheduling with support for repeating alerts, customization, and easy integration.


๐Ÿš€ Features

  • ๐Ÿ”” Offline local notifications (no internet required)
  • โฐ Schedule one-time or repeating notifications
  • ๐Ÿ” Daily & weekly repeating support
  • ๐ŸŽจ Custom icons, sounds, and vibration patterns
  • ๐Ÿ“Š Notification grouping & priority control
  • โšก Simple and clean API for fast integration
  • ๐Ÿง  Timezone-aware scheduling

๐Ÿ“ฆ Installation

Add this to your pubspec.yaml:

dependencies:
  zeba_academy_notification_scheduler: ^0.0.1

Then run:

flutter pub get

โš™๏ธ Setup

๐Ÿ”น Initialize Notifications

await ZebaNotificationService.init();
await TimezoneHelper.init();

๐Ÿงช Basic Usage

๐Ÿ”น Create Notification

final notification = ZebaNotification(
  id: 1,
  title: "Reminder",
  body: "Time to study Flutter!",
  scheduledTime: DateTime.now().add(Duration(seconds: 10)),
);

๐Ÿ”น Schedule Notification

await ZebaScheduler.schedule(notification);

๐Ÿ” Repeating Notifications

โœ… Daily

final notification = ZebaNotification(
  id: 2,
  title: "Daily Reminder",
  body: "Stay consistent!",
  scheduledTime: DateTime.now().add(Duration(seconds: 10)),
  repeatDaily: true,
);

โœ… Weekly

final notification = ZebaNotification(
  id: 3,
  title: "Weekly Reminder",
  body: "Weekly check-in!",
  scheduledTime: DateTime.now().add(Duration(seconds: 10)),
  repeatWeekly: true,
);

โŒ Cancel Notifications

Cancel one

await ZebaScheduler.cancel(1);

Cancel all

await ZebaScheduler.cancelAll();

๐ŸŽจ Advanced Customization

๐Ÿ”Š Custom Sound

AndroidNotificationDetails(
  'zeba_channel',
  'Zeba Notifications',
  sound: RawResourceAndroidNotificationSound('custom_sound'),
);

๐Ÿ“ณ Vibration Pattern

vibrationPattern: Int64List.fromList([0, 1000, 500, 1000]),

๐Ÿ“ฆ Group Notifications

groupKey: 'zeba_group',

๐Ÿ“ฑ Platform Setup

๐Ÿค– Android

Add permissions in AndroidManifest.xml:

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

๐ŸŽ iOS

Enable notification permissions in AppDelegate.swift:

UNUserNotificationCenter.current().requestAuthorization(
  options: [.alert, .badge, .sound],
  completionHandler: { _, _ in }
)

๐Ÿง  Important Notes

  • Always initialize timezone before scheduling
  • Use unique notification IDs
  • Scheduled notifications persist after app restart (Android)
  • Works completely offline

๐ŸŽฏ Use Cases

  • ๐Ÿ“… Reminder apps
  • โฐ Alarm systems
  • ๐Ÿ“ข Offline alert systems
  • ๐Ÿ“š Study planners
  • ๐Ÿ’ผ Productivity tools

๐Ÿงช Testing

Make sure to initialize timezone in tests:

setUpAll(() {
  tz.initializeTimeZones();
});

๐Ÿค Contributing

Contributions are welcome! Feel free to open issues or submit pull requests to improve this package.


๐Ÿ“„ License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).


๐Ÿ‘จโ€๐Ÿ’ป About Me

โœจ Iโ€™m Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects. You can learn more about me and my work at sufyanism.com or connect with me on LinkedIn


๐ŸŒ Your all-in-one no-bloat hub!

๐Ÿš€ Explore cutting-edge resources in coding, tech, and development at zeba.academy and code.zeba.academy.

Empower yourself with practical skills through curated directives, real-world projects, and hands-on experience. Level up your tech game today! ๐Ÿ’ปโœจ

Zeba Academy is a learning platform dedicated to coding, technology, and development.

โžก Visit our main site: https://zeba.academy โžก Explore courses: https://code.zeba.academy โžก YouTube: https://www.youtube.com/@zeba.academy โžก Instagram: https://www.instagram.com/zeba.academy/


Thank you for visiting! โค๏ธ