A mobile app PRD template must include platform-specific requirements for iOS and Android, offline behavior for every user flow, notification permission handling, OS-level constraints, app store metadata, and crash reporting. The template below covers all eight mobile-specific sections that generic PRD templates miss. Applicable to native iOS, native Android, and cross-platform React Native / Flutter apps.
What mobile PRDs need that desktop PRDs don't
A mobile app PRD is not a web PRD with "iOS and Android" added to the scope. Mobile-specific constraints create requirements that don't exist on web: background processing limits, OS permission gates, offline-first behavior, app store review requirements, push notification opt-in flows, and device-specific hardware access. Every one of these is a potential rejection reason from the App Store or a post-launch bug that bypasses QA because no one wrote it down.
The mobile app PRD template
1. Platform targets
iOS: iOS 16.0 minimum (covers 94% of active iPhone devices as of May 2026). iPhone primary; iPad optional (state explicitly if iPad layout required).
Android: Android 10 (API level 29) minimum (covers 87% of active Android devices). Phone primary; tablet not required for v1.
Cross-platform: [React Native 0.73 / Flutter 3.19 / specify framework and version]
2. Offline behavior
Define what each user story does when network connectivity is unavailable. This is the most commonly skipped section in mobile PRDs.
Core read flows (view dashboard, view history): available offline using cached data up to 24 hours old. Cache staleness indicator displayed when data is over 6 hours old.
Write actions (submit form, create entry): queued locally and synced when connectivity resumes. User shown "will sync when online" confirmation. No data loss on app close.
Authentication: if auth token is valid (not expired), user can access cached data offline. If token is expired, user sees "you're offline, please reconnect to continue" with a retry button.
3. Notification permissions
Notification types required: Push notifications for order status updates (critical), promotional messages (optional), in-app badge for unread items.
Permission request timing: Request push permission after the user completes their first successful action (not on first launch). iOS requires explicit permission; Android 13+ requires explicit permission.
Permission denied state: App functions without notifications. Settings screen shows "enable notifications" prompt with deep link to OS settings. Do not re-prompt more than once per 30 days.
Permission granted state: Register device token with backend within 5 seconds of permission grant. Handle token refresh on iOS (APNs token rotation) and Android (FCM token refresh).
4. OS-level constraints
Background processing (iOS): Background App Refresh required for sync. Handle the case where the user has disabled Background App Refresh, sync on foreground only, no silent notifications. Do not rely on background processing for time-sensitive operations.
Battery optimization (Android): App must function correctly when placed in Android's "battery saver" or "restricted" modes. Doze mode will defer background sync, acceptable; document expected sync delay (up to 15 minutes in Doze).