// the find
rafaelsetragni/awesome_notifications
A complete solution to create Local Notifications and Push Notifications, throught Firebase or another services, using Flutter.
Notifications plugin for Flutter covering local scheduling and Firebase push. It wraps Android and iOS notification APIs into a single Dart interface with channel management, action buttons, scheduled triggers, and event callbacks. Aimed at Flutter developers who need more control than flutter_local_notifications offers and want Firebase push in the same package.
The event model is well-thought-out — callbacks fire via static methods with @pragma vm:entry-point, which is the correct way to survive tree-shaking and background isolate boundaries. Scheduling has second-level precision with calendar, interval, and cron-style triggers, which covers most real-world use cases without reaching for a separate package. The plugin correctly separates local notification state from push delivery by offloading FCM to a companion package (awesome_notifications_fcm) instead of bundling firebase_messaging, which avoids the permission conflicts that plagued older approaches. Migration guides between breaking versions are specific and include before/after code, which saves hours when upgrading.
The README carries a prominent 'UNDER DEVELOPMENT' warning with progress percentages, which is not reassuring for a package at v0.11 — it signals the API surface is still unstable. Web and desktop are explicitly not supported, so if your Flutter app targets anything beyond Android/iOS, this does not work and you'll need a different solution anyway. The plugin is incompatible with flutter_local_notifications and any other notification library, meaning if you're adding this to an existing app that already uses another notification plugin you must rip it out entirely — a significant adoption cost. iOS configuration requires non-obvious Podfile surgery with two separate Ruby blocks that must not be confused with each other; getting it wrong produces cryptic build failures with no clear error message pointing back to this setup step.