|
1 | 1 | # Expo Mobile Skeleton |
2 | 2 |
|
3 | | -A scalable mobile app skeleton built with Expo React Native and TypeScript. |
| 3 | +A production-ready mobile app skeleton built with Expo React Native and TypeScript, featuring comprehensive development tools, state management, and a complete authentication flow. |
4 | 4 |
|
5 | 5 | ## Features |
6 | 6 |
|
7 | | -- 🚀 Expo SDK 50+ with TypeScript |
8 | | -- 📱 Cross-platform (iOS, Android, Web) |
9 | | -- 🎨 Structured component architecture |
10 | | -- 🧭 Navigation ready (React Navigation) |
11 | | -- 🔧 Development tools configured (ESLint, Prettier, Husky) |
12 | | -- 📦 State management ready |
13 | | -- 🎯 Path aliases configured |
14 | | -- 🧪 Testing setup with Jest |
| 7 | +- 🚀 **Expo SDK 50+** with TypeScript and strict type checking |
| 8 | +- 📱 **Cross-platform** support (iOS, Android, Web) |
| 9 | +- 🎨 **Complete UI System** with theme support (light/dark/system modes) |
| 10 | +- 🧭 **Type-safe Navigation** with React Navigation 6 |
| 11 | +- 🔐 **Authentication Flow** with secure token management |
| 12 | +- 📦 **Modern State Management** with Zustand stores |
| 13 | +- 🛠️ **Development Tools** including debug menu and performance monitoring |
| 14 | +- 🧪 **Comprehensive Testing** setup with Jest and React Native Testing Library |
| 15 | +- 🔧 **Code Quality Tools** (ESLint, Prettier, Husky) |
| 16 | +- 🚀 **Production Ready** with EAS Build and deployment configuration |
| 17 | +- ♿ **Accessibility Support** with screen reader compatibility |
| 18 | +- 🎯 **Path Aliases** configured for clean imports |
15 | 19 |
|
16 | 20 | ## Project Structure |
17 | 21 |
|
18 | 22 | ``` |
19 | 23 | src/ |
20 | 24 | ├── components/ # Reusable UI components |
21 | | -│ ├── common/ # Generic components |
22 | | -│ └── forms/ # Form-specific components |
23 | | -├── screens/ # Screen components |
24 | | -│ ├── auth/ # Authentication screens |
25 | | -│ ├── home/ # Home/dashboard screens |
26 | | -│ └── profile/ # User profile screens |
27 | | -├── navigation/ # Navigation configuration |
28 | | -├── services/ # API and external service integrations |
29 | | -├── store/ # State management |
30 | | -│ ├── slices/ # Redux slices |
31 | | -│ └── api/ # RTK Query API definitions |
32 | | -├── utils/ # Utility functions and helpers |
| 25 | +│ ├── common/ # Generic components (Button, Input, Loading, DevMenu) |
| 26 | +│ ├── forms/ # Form-specific components with validation |
| 27 | +│ └── examples/ # Example/demo components |
| 28 | +├── screens/ # Screen components organized by feature |
| 29 | +│ ├── auth/ # Authentication flow screens |
| 30 | +│ ├── home/ # Home section screens |
| 31 | +│ ├── profile/ # User profile screens |
| 32 | +│ ├── settings/ # App settings screens |
| 33 | +│ └── debug/ # Development debug screens |
| 34 | +├── navigation/ # Navigation configuration and navigators |
| 35 | +├── store/ # Zustand state management |
| 36 | +│ ├── authStore.ts # Authentication state |
| 37 | +│ ├── appStore.ts # App settings and theme |
| 38 | +│ └── networkStore.ts # Network connectivity state |
| 39 | +├── services/ # API clients and external services |
33 | 40 | ├── hooks/ # Custom React hooks |
| 41 | +├── utils/ # Utility functions and helpers |
| 42 | +├── theme/ # Theme system and styling utilities |
34 | 43 | ├── types/ # TypeScript type definitions |
35 | | -├── constants/ # App constants and configuration |
36 | | -└── assets/ # Images, fonts, and other static assets |
| 44 | +├── contexts/ # React contexts |
| 45 | +├── providers/ # Provider components |
| 46 | +├── config/ # App configuration and environment |
| 47 | +└── constants/ # App constants and theme tokens |
37 | 48 | ``` |
38 | 49 |
|
39 | 50 | ## Getting Started |
@@ -161,13 +172,45 @@ EXPO_PUBLIC_SENTRY_DSN=your-sentry-dsn |
161 | 172 |
|
162 | 173 | For detailed configuration information, see [Configuration Guide](docs/CONFIGURATION.md) and [Build & Deployment Guide](docs/BUILD_AND_DEPLOYMENT.md). |
163 | 174 |
|
| 175 | +## Architecture & Documentation |
| 176 | + |
| 177 | +### Core Architecture |
| 178 | + |
| 179 | +- **State Management**: Zustand stores with persistence and TypeScript support |
| 180 | +- **Navigation**: Type-safe React Navigation with authentication flow |
| 181 | +- **Theme System**: Comprehensive theming with light/dark/system modes |
| 182 | +- **Error Handling**: Global error boundaries with crash reporting |
| 183 | +- **Performance**: Lazy loading, memory management, and optimization utilities |
| 184 | + |
| 185 | +### Development Tools |
| 186 | + |
| 187 | +- **Debug Menu**: In-app debugging interface (development only) |
| 188 | +- **Performance Monitoring**: Memory usage and performance tracking |
| 189 | +- **Network Monitoring**: API request/response logging |
| 190 | +- **State Inspection**: Real-time state debugging |
| 191 | +- **Crash Reporting**: Error tracking and reporting utilities |
| 192 | + |
| 193 | +### Documentation |
| 194 | + |
| 195 | +- 📖 [Architecture Guide](docs/ARCHITECTURE.md) - System architecture and design patterns |
| 196 | +- 🧩 [Components Documentation](docs/COMPONENTS.md) - Complete component library reference |
| 197 | +- 🛠️ [Development Tools](docs/DEVELOPMENT_TOOLS.md) - Debugging and development utilities |
| 198 | +- 🌐 [Services & API](docs/SERVICES_API.md) - API integration and services layer |
| 199 | +- 🔧 [Utils & Hooks](docs/UTILS_HOOKS.md) - Utility functions and custom hooks |
| 200 | +- ⚙️ [Configuration Guide](docs/CONFIGURATION.md) - Environment and build configuration |
| 201 | +- 🚀 [Build & Deployment](docs/BUILD_AND_DEPLOYMENT.md) - Build and deployment processes |
| 202 | +- 🔄 [Migration Summary](docs/MIGRATION_SUMMARY.md) - Redux to Zustand migration details |
| 203 | +- ✅ [Final Integration](docs/FINAL_INTEGRATION.md) - Integration completion status |
| 204 | + |
164 | 205 | ## Code Quality |
165 | 206 |
|
166 | | -This project uses: |
| 207 | +This project maintains high code quality with: |
167 | 208 |
|
168 | | -- **ESLint** for code linting |
169 | | -- **Prettier** for code formatting |
170 | | -- **Husky** for git hooks |
171 | | -- **TypeScript** for type safety |
| 209 | +- **TypeScript** with strict mode enabled |
| 210 | +- **ESLint** for code linting with React Native rules |
| 211 | +- **Prettier** for consistent code formatting |
| 212 | +- **Husky** for pre-commit hooks |
| 213 | +- **Jest** for unit and integration testing |
| 214 | +- **React Native Testing Library** for component testing |
172 | 215 |
|
173 | | -Pre-commit hooks automatically run linting and formatting. |
| 216 | +Pre-commit hooks automatically run linting, formatting, and type checking. |
0 commit comments