A fine React Native Starter Package
At amillionmonkeys we're building lots of apps with React Native. This package is mostly an internal boilerplate for these projects, but I'm happy to share with the wider community. The app offers persistance state management, navigation, http request handling, environment variables and offline detection.
Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Requirements
- Node
6.x
or newer – Expo CLI for build and deployment - React Native for development
- Xcode for iOS development
- Android Studio for Android development
- Android SDK
23.0.1
or newer for Android development - Genymotion for Android emulation
- Android Marshmallow or newer on your Android device to test properly See Getting Started to install requirement tools.
Stack
- React JS
- React Native
- Redux
4.0.0
a predictable state container for Javascript apps - Navigation for React Native a router based on new React Native Navigation API
Library
- axios for HTTP request handling
- prop-types for prop validation
- react-native-dotenv for importing environment variables from a .env file
- react-native-offline for checking connectivity
- react-navigation a router based on new React Native Navigation API for
- redux-persist to persist and rehydrate a redux store
- redux-thunk allowing action creators that return a function instead of an action
- sentry-expo for bugtracking
Installing
To get cracking run the following commands:
git clone git@github.com:philyboysmith/react-native-redux-starter.git
cd react-native-redux-starter
yarn install
Update app.json then run expo start
and you're away. To open the app in your browser your expo start --web
.
Built With
JS is linted on the fly mostly using the Airbnb configuration.
The app uses the ducks methodology of bundling reducers, action types and actions.
Authors
- Phil Smith - Initial work - Philyboysmith
License
This project is licensed under the MIT License - see the LICENSE.md file for details