@reuvenorg/react-native-boilerplate-ultimate
Version:
A powerful CLI tool for creating React Native projects with modular architecture. Generate, manage, and scaffold React Native applications with pre-built modules and best practices.
175 lines (112 loc) • 6.17 kB
Markdown
A new [**React Native**](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli).
[](https://expo.dev/)
[](https://reactjs.org/)
[](https://reactnative.dev/)
# React Native Template Expo Modules
This project includes Expo modules support to leverage the best of both worlds. This hybrid approach allows us to:
- Use Expo's pre-built native modules without ejecting
- Maintain full control over native code when needed
- Access Expo's development tools and services
- Easily integrate new Expo modules as they become available
This template implements the following libraries with examples and configurations:
Navigation:
[](https://reactnavigation.org/docs/getting-started/)
[](https://reactnavigation.org/docs/stack-navigator/)
[](https://reactnavigation.org/docs/bottom-tab-navigator/)
Animation and UI:
[](https://github.com/th3rdwave/react-native-safe-area-context)
[](https://callstack.github.io/react-native-paper/)
[](https://docs.swmansion.com/react-native-reanimated/)
[](https://shopify.github.io/react-native-skia/)
Capabilities:
[](https://github.com/react-native-sensors/react-native-sensors)
[](https://docs.swmansion.com/react-native-gesture-handler/)
State Management:
[](https://redux-toolkit.js.org/)
[](https://react-redux.js.org/)
[](https://github.com/LogRocket/redux-logger)
[](https://github.com/rt2zz/redux-persist)
[](https://react-native-async-storage.github.io/async-storage/)
Performance:
[](https://shopify.github.io/flash-list/)
[](https://github.com/DylanVann/react-native-fast-image)
## Getting Started
> **Note**: Make sure you have completed the [React Native - Environment Setup](https://reactnative.dev/docs/environment-setup) instructions till "Creating a new application" step, before proceeding.
Install dependencies:
```bash
npm install --legacy-peer-deps
```
### For Android
```bash
npm run android
```
### For iOS
First, install the pods:
```bash
npm run ios:pod-install
```
Then, run the iOS app:
```bash
npm run ios
```
## Optional Feature Modules
This template includes three optional feature modules that can be enabled or disabled independently:
### 🤖 Chat AI Module
**AI with ExecuTorch** - **works best on real high-tier devices**
[](https://github.com/pytorch/executorch)
AI chat functionality with ExecuTorch integration for on-device inference.
### 🔄 Redux Module
State management examples with Redux Toolkit, including counter examples and middleware demonstrations.
### 🎨 Skia Accelerometer Module
Interactive graphics using React Native Skia combined with device accelerometer sensors for motion-based animations.
### Module Management
```bash
# Interactive module setup
npm run modules:setup
# Check status of all modules
npm run modules:status
# Enable specific modules
npm run modules:enable md-chat-ai-screen
# Disable specific modules
npm run modules:disable md-chat-ai-screen
```
Each module is implemented as a separate React Native library that can be linked/unlinked independently. When disabled, modules show placeholder screens with re-enabling instructions. This modular approach helps reduce bundle size and dependencies when features aren't needed.
## App Icons and Splash Screens
This template includes custom scripts to generate app icons and splash screens for both iOS and Android:
### Generate icons and splash screens for bare React Native with Expo modules
```bash
npm run icons:generate
```
This script generates:
- App icons for Android in various densities (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi)
- Round icons for Android
- App icons for iOS in all required dimensions
- Splash screen images for Android
- Splash screen background color for iOS
- Standard Expo assets in the assets/ directory for compatibility
### Generate iOS splash screen logo
```bash
npm run icons:splash-logo
```
This script generates:
- iOS splash screen logo image in 1x, 2x, and 3x resolutions
- Updates the necessary Contents.json file
### Additional Commands
```bash
# Check Expo installation
npm run expo:doctor
# Check for package updates
npm run expo:check
# Clean and refresh the project
npm run refresh
# Clean iOS build
npm run ios:clean
# Clean Android build
npm run android:clean
# Get iOS devices
npm run ios:devices
# Get Android devices
npm run android:devices
```
## License
MIT