React Native Architecture
Priority: P0 (CRITICAL)
Feature-first organization for scalable mobile apps.
Project Structure
src/
├── features/ # Feature modules (Home, Auth, Profile)
│ └── home/
│ ├── screens/ # Screens for this feature
│ ├── components/ # Feature-specific components
│ ├── hooks/ # Feature-specific hooks
│ └── services/ # Feature-specific business logic
├── components/ # Shared components
├── navigation/ # Navigation configuration
├── services/ # Shared services (API, storage)
├── hooks/ # Shared custom hooks
├── utils/ # Utility functions
├── theme/ # Colors, typography, spacing
└── types/ # TypeScript types
Implementation Guidelines
- Feature-First: Organize by feature/module, not by type.
- Colocation: Keep related files together (screens, components, hooks within feature).
- Separation: UI (screens/components) separate from logic (hooks/services).
- Atomic Components: Reusable components in
/components. Feature-specific in feature folder. - Absolute Imports: Configure
tsconfig.jsonpaths (@/components,@/features). - Single Responsibility: Each file has one clear purpose.
- Expo vs CLI: Structure works for both. Expo uses
app.json, CLI usesindex.js.
Anti-Patterns
- No Type-Based Folders: Avoid
/containers,/screensat root. Use features. - No Logic in Screens: Extract to hooks or services.
- No Circular Deps: Features should not import from each other directly.
- No Deep Nesting: Max 3 levels deep.
Reference & Examples
See references/folder-structure.md for full directory tree, path mapping, and service layer patterns.
Related Topics
common/system-design | components | navigation | react/hooks | react/component-patterns