INTEGRATION · PUSH NOTIFICATIONS · FCM · APNS
AVAILABLE FOR WORKFreelance · Contract · Full-time

Push notification integration for Flutter apps.

Notifications that arrive, open the right screen and can be measured — Firebase Cloud Messaging and APNs wired across Android, iOS and your backend, including the quiet failure cases most apps never notice.

FCM · APNs · Topics · Deep links · Scheduled campaigns

01 · DELIVERY

Why notifications silently stop working

Push is not guaranteed. Tokens expire, users disable notifications, iOS throttles background delivery, and Android battery optimisation can delay messages for hours. Apps that assume every send arrives build the wrong product behaviour around it.

The reliable pattern is: notifications are a nudge, and the app always fetches current state from the API when it opens.

02 · PLATFORMS

Android and iOS are different jobs

Android uses FCM channels with user-visible importance levels, and Android 13+ requires a runtime permission prompt. iOS uses APNs with its own permission flow, provisional delivery and notification service extensions for images.

Both need correct handling for foreground, background and terminated states, plus deep links so tapping a notification lands on the relevant screen rather than the home tab.

03 · BACKEND

Tokens, topics and targeting

Sending from the backend means storing device tokens per user and platform, removing stale tokens when FCM reports them, and choosing between topic broadcasts and direct user targeting.

Scheduled and triggered messages — cart reminders, booking updates, subscription expiry — are usually built as backend jobs rather than admin broadcasts.

04 · MEASUREMENT

Knowing whether it worked

Delivery is only half the story. Tracking opens, taps and the screen reached tells you whether the copy and timing are working. Without that, notification strategy becomes guesswork and users start disabling them.

I wire notification events into your analytics alongside the in-app action they trigger.

WHAT'S INCLUDED

Push that behaves on both platforms

  • ✓
    FCM setup
    Android and iOS configuration, channels and payload structure.
  • ✓
    APNs
    Certificates or keys, entitlements and production delivery.
  • ✓
    Permissions
    Android 13+ and iOS permission flows with sensible timing.
  • ✓
    Deep links
    Taps opening the correct screen, including from terminated state.
  • ✓
    Token management
    Per-user tokens, refresh handling and stale token cleanup.
  • ✓
    Topics
    Segmented broadcasts by user interest or plan.
  • ✓
    Scheduling
    Backend jobs for reminders, renewals and time-based messages.
  • ✓
    Measurement
    Delivery, open and tap events wired into analytics.
SELECTED EXPERIENCE

Real products, practical engineering.

Explore examples of mobile, Smart TV and integrated product work.

Browse all projects ↗
COMMON QUESTIONS

Working together

Why are my Flutter push notifications not arriving on iOS?

The usual causes are a missing APNs key, the wrong entitlement, testing on a simulator instead of a device, or sending an FCM payload without the required alert structure. iOS also needs explicit user permission.

Can you send notifications to a specific user?

Yes, by storing a user-to-token mapping on your backend and sending to that token. Topic subscriptions handle broader segments.

Do push notifications work when the app is closed?

Yes, with platform limits. Android may delay non-priority messages under battery optimisation, and iOS decides delivery timing for background notifications.

LET’S TALK

Need this kind of help on your product?

Share the product, current stage and the support you need. I will review the context and suggest a practical next step.