1---2name: mobile3description: Build mobile applications with proper lifecycle handling, offline support, and platform conventions.4---56## Lifecycle Awareness78- App can be killed anytime in background—save state before backgrounding9- Restore state on return—user expects to continue where they left off10- Handle low memory warnings—release caches, non-essential resources11- Background tasks have time limits—complete or request extension1213## Permissions1415- Ask in context, not at launch—explain why when requesting16- Degrade gracefully if denied—app should still work with reduced features17- Don't ask for unnecessary permissions—users notice and distrust18- Re-request after demonstrating value—not immediately after denial1920## Offline First2122- Assume network is unreliable—design for offline, sync when possible23- Cache aggressively—previous content better than loading spinner24- Queue actions for retry—don't fail on network error25- Conflict resolution strategy—last write wins or manual merge26- Show sync status—user should know if data is current2728## Performance2930- Target 60fps—dropped frames feel janky31- Main thread for UI only—heavy work on background threads32- Memory matters more than desktop—constrained devices, aggressive OS killing33- Battery awareness—reduce location polling, network requests when possible34- Startup time under 2 seconds—first impression matters3536## Navigation Patterns3738- Follow platform conventions—iOS back gesture, Android back button39- Navigation stack manageable—don't go 10 levels deep40- Deep link to any screen—shareable, notification taps work41- Preserve scroll position on return—don't jump to top4243## Notifications4445- Push for time-sensitive external events—new message, delivery update46- Local for reminders, timers—user-initiated47- Don't spam—users will disable; quality over quantity48- Actionable when possible—reply, mark done from notification49- Group related notifications—less intrusive5051## Deep Linking5253- Universal Links (iOS) / App Links (Android) for owned domains54- Handle gracefully when app not installed—fallback to web55- Parse parameters safely—malicious links exist56- Test all entry points—not just main launch5758## Storage5960- Secure storage for tokens, credentials—Keychain, Keystore61- User data survives reinstall where appropriate—cloud backup62- Cache is cache—can be cleared; don't store critical data63- Large files: consider on-demand download—not bundled in app6465## Input Handling6667- Keyboard avoidance—content shifts to stay visible68- Dismiss keyboard appropriately—tap outside, scroll, submit69- Input accessories for relevant actions—next field, done, toolbar70- Paste, autofill support—reduce typing on small keyboards7172## Touch and Gestures7374- 44pt minimum touch target—consistent with platform guidelines75- System gestures reserved—don't override swipe from edge76- Gesture discoverability—hint or teach, don't assume knowledge77- Haptic feedback for significant actions—confirmation, errors7879## Accessibility8081- VoiceOver (iOS) / TalkBack (Android) testing—navigate entire app82- Dynamic type support—text scales with user preference83- Sufficient contrast—check in accessibility inspector84- Labels on all interactive elements—not just visible text8586## Testing8788- Real devices essential—simulators miss performance, sensors, edge cases89- Multiple OS versions—support at least current minus 290- Different screen sizes—small phones to tablets91- Network conditions—slow, intermittent, offline9293## App Store Survival9495- Read rejection reasons before submitting—common pitfalls documented96- Privacy policy required—explain data collection97- Login test account for reviewers—if auth required98- No placeholder content—everything functional in review build99- Update regularly—abandoned apps get deprioritized