Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tonidarodda/react-native-template
A React Native template featuring Redux for state management, react-i18next for internationalization, React Query for data fetching, customizable UI components, and seamless navigation. Includes Axios for API management, WebSocket support, and a modular architecture for scalable mobile app development, not using Expo at all for performance purpose.
https://github.com/tonidarodda/react-native-template
api-integration axios boilerplate cross-platform i18n internationalization mobile-app mobile-development modular-architecture navigation react-native react-query redux state-management template typescript ui-components websocket
Last synced: 2 months ago
JSON representation
A React Native template featuring Redux for state management, react-i18next for internationalization, React Query for data fetching, customizable UI components, and seamless navigation. Includes Axios for API management, WebSocket support, and a modular architecture for scalable mobile app development, not using Expo at all for performance purpose.
- Host: GitHub
- URL: https://github.com/tonidarodda/react-native-template
- Owner: ToniDarodda
- Created: 2024-08-05T10:50:13.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-08-20T16:50:22.000Z (4 months ago)
- Last Synced: 2024-10-11T18:13:42.660Z (3 months ago)
- Topics: api-integration, axios, boilerplate, cross-platform, i18n, internationalization, mobile-app, mobile-development, modular-architecture, navigation, react-native, react-query, redux, state-management, template, typescript, ui-components, websocket
- Language: TypeScript
- Homepage:
- Size: 8.17 MB
- Stars: 45
- Watchers: 1
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
---
# React Native Template
![React Native](https://img.shields.io/badge/React%20Native-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)
![Redux](https://img.shields.io/badge/Redux-764ABC?style=for-the-badge&logo=redux&logoColor=white)
![i18next](https://img.shields.io/badge/i18next-26A69A?style=for-the-badge&logo=i18next&logoColor=white)
![React Query](https://img.shields.io/badge/React%20Query-FF4154?style=for-the-badge&logo=react-query&logoColor=white)
![Yarn](https://img.shields.io/badge/Yarn-2C8EBB?style=for-the-badge&logo=yarn&logoColor=white)
![License](https://img.shields.io/badge/License-UNLICENSED-green?style=for-the-badge)This project is a React Native template designed to accelerate development by providing essential features such as state management, internationalization, data fetching, navigation, and reusable components.
## Screenshots
Created using the default components provided in the project.
### Welcome Screen
### Login Screen
### Register Screen
### Profile Screen
## Features
- **๐ Internationalization (i18n)**
- Multi-language support using `react-i18next` for seamless localization.- **๐๏ธ State Management with Redux**
- Centralized state management for efficient global state access and updates.- **๐ Data Fetching with React Query**
- Optimized data fetching, caching, and synchronization.- **๐งญ Navigation**
- Smooth and intuitive navigation using `react-navigation` with base components like `VStack` and `HStack`.- **โ๏ธ Component-Based Architecture**
- Modular design with reusable UI components and consistent styling.- **๐ฆ Common Utilities**
- Helper functions and utilities for streamlined development.- **๐ Axios Management**
- Configurable API requests using Axios with built-in error handling and response management.- **๐ WebSocket Management**
- Real-time communication support using WebSockets.- **๐ช Cookie Management**
- Simplified management of cookies for authentication and user sessions.- **๐ Authentication**
- User authentication and registration with secure token management.## Components
The project includes a set of reusable components for building user interfaces:
- **Button Components**
- `button.tsx`: Standard button component with customizable styling.- **Typography Components**
- `h1.tsx`, `h2.tsx`: Heading components for consistent typography.
- `text.tsx`: Customizable text component for displaying content.- **Input Components**
- `input.tsx`: Basic input field component.
- `input-with-icon.tsx`: Input field with an icon for enhanced user interaction.- **Layout Components**
- `vstack.tsx`: Vertical stack layout for arranging elements vertically.
- `hstack.tsx`: Horizontal stack layout for arranging elements horizontally.
- `spacer.tsx`: Spacer component for adding flexible space between elements.- **Navigation Components**
- `navbar.tsx`: Customizable navigation bar for app header.- **Image Components**
- `image.tsx`: Image component for displaying images with caching support.- **Utility Components**
- `separator.tsx`: Divider component for separating content.
- `separator-with-text.tsx`: Divider with text for enhanced UI.
- `switch.tsx`: Toggle switch component for boolean inputs.- **Index File**
- `index.ts`: Central export file for components.## ๐ Getting Started
### Prerequisites
Ensure you have the following installed:
- Node.js (v14 or higher)
- Yarn
- Android Studio / Xcode for Android/iOS development### Installation
1. **Clone the repository:**
```sh
git clone [email protected]:ToniDarodda/react-native-template.git
cd ReactNativeTemplate
```2. **Install dependencies:**
```sh
yarn install
```3. **Configure environment variables:**
Update the `.env` file in the root directory with your configuration settings:
```sh
API_URL='https://your-api-url.com'
SOCKET_URL='https://your-socket-url.com'
```### Running the Application
1. **Start the Metro Bundler:**
```sh
yarn start
```2. **Run the application on Android:**
```sh
yarn android
```3. **Run the application on iOS:**
```sh
yarn ios
```4. **Access the application:**
The app will be available on your emulator or device.
## ๐งช Testing
To run the tests, use the following command:
```sh
yarn test
```## ๐ ๏ธ Scripts
- **๐งน Format code using Prettier:** `yarn format`
- **๐โโ๏ธ Start the application:** `yarn start`
- **๐จโ๐ป Start in development mode:** `yarn android` or `yarn ios`
- **๐ Lint the code using ESLint:** `yarn lint`
- **๐งช Run the tests:** `yarn test`
- **๐ Run end-to-end tests:** `yarn test:e2e`## ๐ License
There is no license; you're free to use it.
## ๐ค Author
[Toni Da Rodda](mailto:[email protected])
## ๐ ๏ธ Icons
- **๐ Deployment**
- **โ๏ธ Configuration**
- **๐ Documentation**
- **๐ง Maintenance**
- **๐ Security**
- **๐ซ Email Integration**
- **๐ Performance Optimization**
- **โก Gain Time**---
Feel free to contribute to this project by submitting issues or pull requests.
For any questions or support, please contact [Toni Da Rodda](mailto:[email protected]).
---