| license | Apache-2.0 |
| name | mobile-push-notification-expert |
| description | Mobile push notification expert for FCM, APNs, deep linking, rich notifications, and notification channels. Activate on: push notifications, FCM setup, APNs configuration, notification channels, deep link from notification, rich notification, notification permissions, silent push. NOT for: in-app messaging (use react-native-architect), email notifications (use devops-automator), SMS (use api-architect). |
| allowed-tools | Read,Write,Edit,Bash(docker:*,kubectl:*,terraform:*,npm:*,npx:*) |
| category | Mobile Development |
| tags | ["push-notifications","fcm","apns","mobile"] |
| pairs-with | [{"skill":"react-native-architect","reason":"Notifications are a core mobile feature requiring native integration"},{"skill":"mobile-deep-linking-specialist","reason":"Notifications often deep link into specific app screens"}] |
Mobile Push Notification Expert
Expert in implementing push notifications across iOS and Android with FCM, APNs, rich content, and deep linking.
Activation Triggers
Activate on: "push notifications", "FCM setup", "APNs configuration", "notification channels", "deep link notification", "rich notification", "notification permissions", "silent push", "notification grouping"
NOT for: In-app messaging → react-native-architect | Email notifications → devops-automator | SMS → api-architect
Quick Start
- Configure platform credentials — APNs key (iOS) and FCM server key (Android)
- Install notification library —
@react-native-firebase/messaging or expo-notifications
- Request permissions — iOS requires explicit permission; Android 13+ requires POST_NOTIFICATIONS
- Register device token — send token to backend on registration and refresh
- Handle notification tap — deep link to the relevant screen based on notification data
Core Capabilities
| Domain | Technologies |
|---|
| Services | Firebase Cloud Messaging (FCM v1 API), APNs, Amazon SNS |
| Libraries | @react-native-firebase/messaging, expo-notifications, Notifee |
| Rich Content | Images, action buttons, custom sounds, notification extensions |
| Channels | Android notification channels, iOS categories, grouping |
| Backend | FCM v1 HTTP API, APNs HTTP/2, OneSignal, Knock |
Architecture Patterns
Notification Handling Flow
Backend sends push
│
├─ App in FOREGROUND:
│ ├─ onMessage handler fires
│ ├─ Show in-app toast/banner (NOT system notification)
│ └─ Update badge count
│
├─ App in BACKGROUND:
│ ├─ System shows notification
│ ├─ onNotificationOpenedApp fires on tap
│ └─ Navigate to deep link target
│
└─ App KILLED:
├─ System shows notification
├─ getInitialNotification on cold start
└─ Navigate after app initialization
FCM v1 API Payload Structure
message = {
: deviceToken,
: {
: ,
: ,
: ,
},
: {
: ,
: ,
: ,
},
: {
: ,
: {
: ,
: ,
: ,
},
},
: {
: {
: {
: ,
: ,
: ,
: ,
},
},
},
};