mirror of
https://github.com/jjbrunton/Sauci.git
synced 2026-10-31 18:19:43 +00:00
Extend release-preflight to reject an Android manifest missing the READ_MEDIA_IMAGES/READ_MEDIA_VIDEO tools:node="remove" attributes and an iOS Info.plist that regained dev-launcher-only keys, both regressions introduced silently by expo prebuild during the SDK 54 to 56 upgrade. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
934 B
934 B
Mobile application
Expo React Native with Expo Router, Zustand, Supabase, RevenueCat, Firebase, and native iOS/Android targets.
- Read
DESIGN.mdbefore UI changes. - Routes belong under
app; feature logic belongs undersrc/features. - Reuse existing Zustand stores and clear user-scoped state during sign-out.
- Check RevenueCat availability before native purchase operations.
- Use
.maybeSingle()when zero rows are valid and handle nullable profiles. - Keep route files thin; extract focused components/hooks when responsibilities diverge rather than enforcing a mechanical line limit.
- Add stable accessibility labels or
testIDvalues for critical interactions. - Verify focused Jest tests, typecheck, lint, then native/Expo behavior as risk requires. UI work needs observable simulator evidence.
- Before and after any
expo prebuild, follow the "After native regeneration" checklist indocs/releasing.md.