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 web
npm 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.