A React Native mobile application built with Expo and TypeScript.
- React Native 0.76.5
- Expo SDK 52.0.17
- TypeScript 5.3.3
- React 18.3.1
- @tanstack/react-query 5.62.3
- Context API
- @react-navigation/native 7.0.0
- @gorhom/bottom-sheet 5.0.6
- expo-blur
- expo-haptics
- @shopify/flash-list
- @lingui/core & @lingui/react 5.1.0
- @formatjs/intl-locale
- @formatjs/intl-numberformat
- @formatjs/intl-pluralrules
- expo-localization
- ESLint
- Prettier
- Husky
- Jest
- SVGO
- Node.js >= 20
- npm or yarn
- iOS Simulator / Android Emulator
- Expo CLI
- Install dependencies:
npm install- Start the development server:
npm start- Run on specific platform:
# iOS
npm run ios
# Android
npm run android
# Web
npm run webnpm start- Start Expo development servernpm run ios- Run on iOSnpm run ios:prod- Run production build on iOSnpm run android- Run on Androidnpm run android:prod- Run production build on Androidnpm run web- Run on web browsernpm run start:dev-client- Start with dev clientnpm run start:prod- Start production build
npm run prebuild- Clean and prepare buildnpm run export- Export project
npm run test- Run testsnpm run lint- Run ESLintnpm run format- Format code with Prettier
npm run lingui:extract- Extract i18n stringsnpm run lingui:compile- Compile i18n messages
npm run clean-cache- Clean babel cachenpm run icons:optimize- Optimize SVG iconsnpm run fix-deps- Check and fix dependenciesnpm run reset-project- Reset project to initial state
- Use kebab-case for file names
- Follow naming conventions
- Create feature branch from develop:
git checkout develop
git pull origin develop --ff-only
git checkout -b feature/my-feature- Follow commit message format:
- Format: "[JIRA-ID] Brief description"
- Example: "[JUD-123] Add login screen"
- Keep subject line under 50 characters
- Reference issues in commit body
- Implement code splitting at route level
- Use memoization (React.memo) appropriately
- Optimize images and implement lazy loading
- Use Flipper for debugging and performance monitoring
- Write unit tests for all new code
- Use Jest and React Native Testing Library
- Ensure good test coverage
This project is private and confidential. All rights reserved.