Skip to content

Best Practices Reference

Comprehensive best-practices guides for TwoMore, covering all aspects of React Native (Expo SDK 55) app development. Researched 2026-03-24 from official docs, maintainer blogs, and production community patterns.

Documents

DocumentTopicsKey Actions
Performance & MemoryJS thread, re-renders, FlashList, images, bundle size, startup, Hermes, animations, memory leaks, cleanup patternsFlashList migration, InteractionManager for heavy work, image sizing
Networking & CachingHTTP clients, TanStack Query cache, offline-first, Supabase realtime, prefetching, paginationWire onlineManager, optimistic mutations, realtime cache updates
SecurityToken storage, OAuth PKCE, RLS, API key protection, OTA signing, deep link validationSecureStore for tokens, Edge Function proxy, code signing
State & ArchitectureZustand patterns, hexagonal arch, i18n, package boundaries, TypeScript strictness, code qualityArchitecture fitness tests, noUncheckedIndexedAccess, reactive t()
Testing & CI/CDTest pyramid, Jest/RNTL, Maestro E2E, error boundaries, Sentry, EAS Build/UpdateGitHub Actions CI, Sentry setup, EAS Secrets migration
UI/UX & AccessibilityComponent patterns, dark mode, touch targets, a11y, navigation, forms, animationsReducedMotionConfig, a11y labels audit, hitSlop on icons
Accessibility (WCAG Test Plan)WCAG 2.1 AA + Korean Web Accessibility Guidelines, mechanical-enforcement table, manual gaps, 5-screen TalkBack/VoiceOver test planPre-launch screen-reader audit; Image accessibilityLabel + role="header" sweeps
Review ChecklistSemantic guidance reviewers must apply at PR time (the things AGENTS.md mechanical gates can't catch)Per-PR checklist; complements AGENTS.md hard constraints
Research MethodologyMulti-dimensional research: verify what actually RUNS + ground in concrete references, not abstract principles; multi-modal sources; cross-validationInvoked every RESEARCH phase + agent spawn; pre-conclusion checklist

Cross-Cutting Priority Actions

These items appear across multiple documents and have the highest impact:

P0 — Before Production

  1. Wire onlineManager + focusManager to AppState (Networking)
  2. Tokens in SecureStore, not AsyncStorage (Security)
  3. RLS on every table with correct policies (Security)
  4. GitHub Actions CI: npm run check on PRs (Testing)
  5. Sentry crash reporting setup (Testing)
  6. EAS Secrets for credentials (Testing)

P1 — Before Public Launch

  1. Optimistic mutations for RSVP/scores (Networking + State)
  2. noUncheckedIndexedAccess in tsconfig (Architecture)
  3. Keep architecture fitness tests green for package-boundary enforcement (Architecture)
  4. Per-tab error boundaries (Testing)
  5. FlashList for all 20+ item lists (Performance)
  6. accessibilityLabel + accessibilityRole audit (UI/UX)

P2 — Growth Phase

  1. MMKV persistence for TanStack Query cache (Networking)
  2. Maestro E2E for critical paths (Testing)
  3. Reactive t() via Zustand for dynamic language switching (Architecture)
  4. Prefetch on list item render (Networking)
  5. OTA code signing (Security)

Markdown remains the source of truth. Run yarn docs:check before handoff.