A React Native mobile application built with Expo and TypeScript for the Coursera React Native Specialization.
- React Native 0.76.7
- Expo SDK 52.0.35
- TypeScript 5.3.3
- React 18.3.1
- Expo Router 4.0.17
- React Navigation 7.0.14
- React Native Async Storage 1.23.1
- Expo SQLite 15.1.2
- Expo Secure Store 14.0.1
- Expo Vector Icons 14.0.2
- Expo Blur 14.0.3
- Expo Haptics 14.0.1
- Expo Checkbox 4.0.1
- Axios 1.7.9
- Lodash Debounce 4.0.8
- ESLint 8.57.0
- Prettier 3.4.2
- Husky 9.1.7
- Jest 29.2.1
- TypeScript 5.3.3
- Node.js >= 20
- Yarn
- Expo CLI
- iOS Simulator / Android Emulator
- Install dependencies:
yarn install
- Start the development server:
yarn start
- Run on specific platform:
# iOS
yarn ios
# Android
yarn android
# Web
yarn web
yarn start
- Start Expo development serveryarn ios
- Run on iOSyarn android
- Run on Androidyarn web
- Run on web browser
yarn test
- Run Jest testsyarn lint
- Run ESLintyarn format
- Format code with Prettier
yarn clean-cache
- Clean Babel loader cacheyarn reset-project
- Reset project to initial state
little-lemon-food-ordering-app/
├── app/ # Expo Router configuration and route groups
│ ├── (app)/ # Main app routes
│ ├── (auth)/ # Authentication-related routes
│ ├── +not-found.tsx # 404 page configuration
│ └── _layout.tsx # Root layout configuration
├── assets/ # Static assets (images, fonts)
├── components/ # Reusable React components
├── constants/ # App-wide constants and configuration
├── contexts/ # React context providers
├── hooks/ # Custom React hooks
├── interfaces/ # TypeScript interface definitions
├── screens/ # Screen components
│ ├── Home.tsx
│ ├── Onboarding.tsx
│ └── Profile.tsx
├── scripts/ # Utility scripts
├── themes/ # App theming and styling
├── utils/ # Utility functions and helpers
├── app.json # Expo app configuration
├── package.json # Project dependencies and scripts
└── tsconfig.json # TypeScript configuration
app/
: Contains Expo Router configuration, including route groups and layout filesassets/
: Stores static resources like images and fontscomponents/
: Reusable UI components used across the appconstants/
: Stores constant values and configuration settingscontexts/
: React context providers for state managementhooks/
: Custom React hooks for reusable logicinterfaces/
: TypeScript interface and type definitionsscreens/
: Full-page components for different app viewsthemes/
: Styling and theming configurationsutils/
: Helper functions and utility scripts
- Follow TypeScript best practices
- Write unit tests for new features
- Use meaningful variable and function names
- Keep components small and focused
- Use async/await for asynchronous operations
This project is for educational purposes only.
Quang Pham