This project is a React Native application built using Expo, serving as a robust skeleton or starting point for other Expo projects. It includes essential tools and integrations to streamline development, testing, and deployment across multiple environments (development, testing, production). The app is pre-configured for error tracking, performance monitoring, authentication, and more.
app.config.ts
: Dynamically configures Expo based on the environment.app.json
: Static Expo configuration file.babel.config.js
: Configures Babel for module resolution, inline imports, and React Native Reanimated.metro.config.js
: Customizes Metro bundler settings (e.g., Sentry integration, SVG transformer).jest.config.js
: Jest configuration for testing.tsconfig.json
: TypeScript configuration.eas.json
: EAS CLI build and deployment configurations.
assets/
: Static assets (images, fonts, lottie).src/
: Application source code.scripts/
: Utility scripts for project management.
- Expo SDK: Provides core React Native features.
- Firebase: Pre-configured for Authentication, Firestore, Messaging, Performance monitoring, and Remote Configs.
- Google Sign-In: Google authentication.
- Apple Sign-In: Apple authentication.
- Sentry: Tracks errors and monitors app performance.
- UI Libraries: Enhanced UI/UX with
react-native-ui-lib
,lottie-react-native
, andreact-native-reanimated
. - State Management: Using
zustand
, withzustand-slices
andreact-native-mmkv
for storage. - Testing: Configured with Jest and Testing Library for unit and integration testing.
- Linting and Formatting:
eslint
,prettier
,@commitlint
andhusky
are set up to ensure code quality. - CI/CD: Configured with EAS CLI for building/deploying and GitHub Actions for continuous integration.
scripts/nuke.sh
: Cleans JavaScript dependencies and iOS project files.
.env
: Environment-specific variables..easignore
: Files to ignore during EAS builds..prettierignore
: Files ignored by Prettier during formatting..gitignore
: Specifies files and directories Git should ignore.
yarn
yarn ios:rebuild
yarn
yarn eas-run-ios