Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hernanif1/react-native-boilerplate
This opinionated boilerplate was born because I always need to configure the same generic libs in order let my app production-ready.
https://github.com/hernanif1/react-native-boilerplate
boilerplate bootstrap commitizen create-react-native-app eslint flowtype husky javascript jest prettier react react-native reactjs sentry
Last synced: 8 days ago
JSON representation
This opinionated boilerplate was born because I always need to configure the same generic libs in order let my app production-ready.
- Host: GitHub
- URL: https://github.com/hernanif1/react-native-boilerplate
- Owner: hernanif1
- Archived: true
- Created: 2018-09-12T07:33:32.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2018-09-26T06:56:33.000Z (about 6 years ago)
- Last Synced: 2024-08-01T16:37:51.305Z (3 months ago)
- Topics: boilerplate, bootstrap, commitizen, create-react-native-app, eslint, flowtype, husky, javascript, jest, prettier, react, react-native, reactjs, sentry
- Language: JavaScript
- Homepage:
- Size: 444 KB
- Stars: 5
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Boilerplate React-Native
This opinionated boilerplate was born because I always need to configure the same generic libs in order let my app ready-to-production.
This project was bootstrapped with [Create React Native App](https://github.com/react-community/create-react-native-app).
### Enviroment
1. Install the Mac Iphone Simulator
2. Geny motion for Android
3. Node (8+)### Commands
Run the command bellow:
```bash
npm install
``````bash
npm start
``````bash
npm test
```### Commits
Use only the command bellow to create commit
```bash
npm run commit
```### Sentry
Create a sentry account and put your ID [here](https://github.com/hernanif1/react-native-boilerplate/blob/d3f218fadf09e4eec014829af5455193a0c34c93/src/config/sentry.js#L4)### Sonnar
1. Start the docker container in your machine with the following command
`docker run -d --name sonarqubeLocal -p 9001:9000 -p 9092:9092 arturbdr/sonarqube-pluggins:6.7.1.1-lts`
This command will download the image and start a docker container in your machine and bind the host ports: 9001 and 9092 to the container port 9000 and 9092 respectively.
2. After the container is started, you can access it in the browser in [local sonar docker](http://localhost:9001/)
3. Publish the project to this container with the command `gulp sonar`
4. Check the results in [local sonar docker](http://localhost:9001/)All the sonar configuration are in the file `sonar-project.properties`
### Features
- [x] react-navigate - main lib (with create-react-native-app)
- [x] eslint - to standarlize the project
- [x] commitzen - to create nice commits
- [x] prettier - to standarlize the code
- [x] flow-type - to create static types
- [x] husky - for prevent commit with errors (of lint, tests, flow)
- [x] saga - lib to fetch async data
- [x] jestSetup - to configurate react-native with jest
- [x] enzyme - to test components
- [x] jsdom - to simulate window and globals
- [x] I18n - to translate texts
- [x] recompose - to compose HOCs
- [x] apisauce - to fetch external datas
- [x] sentry - to log erros
- [x] file api module (to fetch data) - to configurate apisauce and services
- [x] initial folders (services/ components) - to define the architeture standard
- [x] environment variables - to fetch external datas in diferent enviroments
- [x] icon - to setup home icon
- [x] splashscreen - to setup inaital screen before open the app
- [x] remove @FIXME
- [x] example of unit test - to integrate test since the begin
- [x] Header example - to let easier to implement header throught props
- [x] Styled components with jest - to let easier to implement nested css
- [ ] nativeBase - to use standarlized components### TODO
- [ ] build ci (with fasltlane or expo)
- [ ] try immutable - to let transformation data less verbose
- [ ] example of reselect lib - to optimize data flow
- [ ] example of integration tests - to integrate test since the begin
- [ ] example of e2e detox (choose screenplay or pageObject)- to integrate e2e since the begin