Welcome to the React Native Expo Shop Template repository! This project is your go-to starter kit for building stunning, high-performance mobile applications using React Native and Expo. This template implements a lightweight e-commerce shop for customizable products. Plenty of features are available, although shopping cart is out of scope.
Run the app on your own device using Expo GO:
- Seamless Expo Integration: Effortlessly develop, build, and deploy your app with Expo's powerful tools.
- Built-in UI: Leverage custom UI element, without any third party library.
- Pre-configured Navigation: Ready-to-use navigation setup with Expo Router.
- State Management: Integrated state management with Redux Toolkit
- Internationalization: Multi-language support using i18n.
- Stripe Integration: Accept payments easily using Stripe.
- Customizable Themes: Easily switch between light and dark themes.
- Responsive Design: Built with responsive design principles to look great on any device.
- TypeScript Support: Includes full TypeScript setup for safer and more robust code.
- Component Library: Pre-built, reusable components to accelerate your development process.
- ESLint & Prettier: Pre-configured with ESLint and Prettier for consistent and clean code.
- Husky pre-commit hooks: Run ESLint & Prettier before you push your code.
- Testing Ready: Setup for unit and integration tests with Jest and React Native Testing Library.
- Video Player: Integrated modal with VideoPlayer component.
- Splash Screen: Custom splash screen using Lottie animation:
- Clone the repository:
git clone https://github.com/yourusername/react-native-expo-template.git
- Navigate to the project directory:
cd react-native-expo-shop-template
Note: If you want to skip Step 3, just clone the test branch which uses hardcoded data and does not require a web server. 3. Setup dummy server.
cd dummy_server
npm install
node index.js
Note: If you run the app on a real device, you will have to set EXPO_PUBLIC_BACKEND_URL accordingly inside .env. Otherwise, the emulator will resolve the 10.0.2.2 address to the host machine.
- Install app dependencies:
npm install
- Run the app:
npx expo start
-
Optional - Set-up Stripe backend URL and publishable key Note: If you skip this step, the app will use the default Stripe backend from their official example.
-
Linting & testing
npm run style:all
npm run test
This template is easily customizable to fit your specific project needs.
Designed with a modular architecture to make it easy to add, remove, or update features without breaking the entire app.
Built-in support for internationalization (i18n), making it simple to localize your app for different languages and regions.
We welcome contributions! Feel free to submit PRs and reach out to me.
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.