A react-native expo project template designed to accelerate development by providing essential features such as state management, internationalization, data fetching, navigation with Expo Router, Authentication, theme, etc.
This Template is a React Native template leveraging on expo and Expo File-Based Routing. It is designed to accelerate development by providing essential features such as state management, internationalization, data fetching, navigation with Expo-router, Authentication, and reusable components. To learn more about expo, check their official documentation here.
NOTE: This project uses Bun as the package manager, Biomejs for code linting and formatting, and Total-typescript Reset for improved typescript's built-in typings.
π Internationalization (i18n)
react-i18next
for seamless localization.ποΈ State Management with Redux and Context API
π Data Fetching with React Query
π§ Navigation
expo-router
with Link
and hooks like useRouter()
, useNavigation()
, useGlobalSearchParams()
, useLocalSearchParams()
, etc.βοΈ Component-Based Architecture
π¦ Common Utilities
π Axios Management
πͺ Cookie Management
π Authentication
src/
- source folder for all other directoriesapp/
- special directory. Any file you add to this directory becomes a route inside the native app and reflects the same URL for that route on the webassets/
- directory for images and fontscomponents/
- primary and secondary resuable components and tests directoryconfig/
- initialization of environment variables and other configurationconstants/
- colors palette, window with and height, etccontexts/
- context API for session, user, theme, etchooks
- custom hooks, theme hooks, etclib/
- abstractions on third party librariesproviders/
- third party library providers such as Redux, React-query, etcqueries/
- react-query query and mutation hooks to make server requestsscripts/
- to reset project, native scripts, etcservices/
- axios or ky configuration, REST API methods and routes, etcstore/
- redux and redux-toolkit state, slices, and actionstypes/
- typescript type declarationsutils/
- utility and helper functionsEnsure you have the following installed:
Clone the repository:
git clone https://github.com/John-pels/react-native-starter-template.git
cd react-native-starter-template
Install dependencies:
bun install
Configure environment variables:
Change .env.example
to .env
file in the root directory and update with your configuration settings:
Start the Metro Bundler:
bun start
Run the application on Android:
bun android
Run the application on iOS:
bun ios
Access the application:
The app will be available on your emulator or device.
To run the tests, use the following command:
bun test
bun check
bun start
bun android
or bun ios
or bun web
yarn lint
bun test
bun update-packages
bun knip
bun android:release
bun android:dev-build
bun android:dev-build:local
bun android:preview
bun ios:release
bun ios:dev-build
bun ios:dev-build:local
bun ios:preview
MIT License
Feel free to contribute to this template by submitting issues or pull requests.
For any questions or support, please contact John O. Ajeigbe.