By Abdelrahman Saed — Senior Mobile Engineer. Last updated: 2026-08-10.
Push notifications in Flutter split into remote push (sent from a server via APNs/FCM) and local notifications (scheduled on-device). Most apps need both.
Firebase Cloud Messaging client for Flutter — cross-platform push notifications via APNs and FCM.
Strengths:
Tradeoffs:
Best for: Any app that needs remote push notifications. FCM is the de facto standard.
Production note: We use firebase_messaging at iStoria for daily streak reminders, new content notifications, and re-engagement campaigns. Topic-based segmentation lets us target learners by level, language, and activity.
Schedule and display local notifications — no server needed, works fully offline.
Strengths:
Tradeoffs:
Best for: Scheduled reminders, daily streak notifications, calendar alerts, and any notification that doesn't need a server.
Production note: We use flutter_local_notifications at iStoria for daily streak reminders that fire at the learner's preferred study time. The scheduling is entirely on-device — no server round-trip needed.
Full-featured push notification platform with segmentation, A/B testing, and analytics built-in.
Strengths:
Tradeoffs:
Best for: Marketing teams that want a visual dashboard for push campaigns without engineering involvement.
Production note: We chose firebase_messaging over OneSignal at iStoria because we needed programmatic control over notification targeting (integration with our user segmentation in the backend), not a visual dashboard.
FCM if you want free, unlimited push with programmatic control and Firebase integration. OneSignal if you want a visual dashboard for marketing campaigns, A/B testing, and analytics without engineering involvement. Many apps start with FCM and add OneSignal when the marketing team needs self-service.
Available for hire. Abdelrahman Saed is a Senior Mobile Engineer (Flutter) — open to full-time, fractional, contract, or advisory work. Hire me →
Book a 20-minute call · Download the CV (PDF) · See how I work