A well-structured Expo Boilerplate built on RTK Query and Redux architecture to streamline React Native development. This boilerplate provides a scalable, maintainable, and production-ready setup for your mobile applications.
- RTK Query & Redux Toolkit β Efficient state management and API handling
- Zustand Support β Lightweight alternative for global state management
- Expo Router β File-based routing for a better navigation experience
- Localization (i18n) β Multi-language support
- Centralized Loading & Error Handling β Consistent error and loading state management across the app
- Reusable Components β Well-structured UI components
- Custom Hooks β Optimized hooks for state and effect management
- TypeScript Ready β Strongly-typed project for reliability
- Scalable Architecture β Organized and maintainable folder structure
src/
βββ app/ # Application entry points and main screens
βββ components/ # Reusable UI components
βββ config/ # Configuration files and environment settings
βββ constants/ # Static values and constants used across the app
βββ hooks/ # Custom React hooks for state and effect management
βββ localization/ # Language translation and localization files
β βββ locale-json/ # JSON files for different locales
β βββ AppString/ # Centralized string constants for the app
β βββ I18nLocale/ # Internationalization (i18n) setup and utilities
βββ redux/ # Redux state management
β βββ query/ # API queries using Redux Toolkit Query
β βββ store/ # Redux store configuration and slices
βββ selector/ # Selectors for retrieving and computing state
βββ types/ # TypeScript type definitions and interfaces
βββ utils/ # Utility functions and helper methods
βββ zustand/ # Zustand store for global state management
- Expo - An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.
- React-Native - React Native brings React's declarative UI framework to iOS and Android. With React Native, you use native UI controls and have full access to the native platform.
- Expo-Router - Expo Router is a file-based router for React Native and web applications. It allows you to manage navigation between screens in your app, allowing users to move seamlessly between different parts of your app's UI, using the same components on multiple platforms (Android, iOS, and web).
- Expo-Font - Expo Font allows loading fonts from the web and using them in React Native components
- Redux - Redux is an open-source JavaScript library for managing and centralizing application state. It is most commonly used with libraries such as React or Angular for building user interfaces.
- RTK-Query - The official, opinionated, batteries-included toolset for efficient Redux developmen
- Axios - Promise based HTTP client for the browser and node.js.
- Redux-toolkit - The official, opinionated, batteries-included toolset for efficient Redux development.
- Netinfo - React Native Network Info API for Android, iOS, macOS, Windows & Web.
- zustand - A small, fast and scalable bearbones state-management solution using simplified flux principles. Has a comfy API based on hooks.
- react-native-async-storage - An asynchronous, persistent, key-value storage system for React Native.
- react-native-paper - Material Design for React Native (Android & iOS).
- react-native-vector-icons- Customizable Icons for React Native with support for image source and full styling.
- patch-package - Fix broken node modules instantly
- ESLint - ESLint statically analyzes your code to quickly find problems. It is built into most text editors and you can run ESLint as part of your continuous integration pipeline.
- TypeScript - TypeScript is JavaScript with syntax for types.
git clone git@github.com:piashcse/react-native-boilerplate.git
yarn install
Now, you can choose a command to run the project:
yarn ios
to run on iOS simulatoryarn android
to run on Android simulator
Mehedi Hassan Piash
Copyright 2023 piashcse (Mehedi Hassan Piash)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.