Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xcarpentier/clean-archi-boilerplate
clean-archi-boilerplate
https://github.com/xcarpentier/clean-archi-boilerplate
expo gatsby monorepo react-native-web
Last synced: 3 months ago
JSON representation
clean-archi-boilerplate
- Host: GitHub
- URL: https://github.com/xcarpentier/clean-archi-boilerplate
- Owner: xcarpentier
- Created: 2019-09-11T20:18:02.000Z (over 5 years ago)
- Default Branch: develop
- Last Pushed: 2022-12-11T05:30:00.000Z (about 2 years ago)
- Last Synced: 2024-05-01T21:21:17.939Z (9 months ago)
- Topics: expo, gatsby, monorepo, react-native-web
- Language: TypeScript
- Size: 4.18 MB
- Stars: 9
- Watchers: 3
- Forks: 2
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# RN & Expo boilerplate
# Stack
- TypeScript
- redux-saga
- reselect
- tslint
- prettier
- ramda
- Storybook (ie. `yarn start:story`)
- expo# Install
1. `yarn global add expo-cli` (ie. install expo tooling globally)
1. `yarn` (ie. install dependencies, do it from project root)
1. `yarn start:inmemory` or `yarn start:dev` or `yarn start:story`## vscode
- [prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
# Git
## Branches
### fixed
- dev (default)
- master (prod)### not fixed
- feature/`feature name`
- hotfix/`fix name`
- release/`release name or version`### Best practice
- use rebase to update feature branch from dev:
`git pull origin dev --rebase`# Clean Architecture
- `__tests__`
- ``
- `unit` on actions and saga
- `configuration` mainly snapshot
- `e2e` detox tests
- `components` snapshot and interactions with enzime
- `src/common`
- `ui/` UI kit
- `src/`
- `ui/` ui, used for navigation and its children component, redux connect, etc.
- `index.js` just export
- `.Smart.ts` redux maps and connect
- `.Dumb.ts` dumb component
- `components/` components used only for this context
- `adapter/` Back-end api and mock (immemory)
- `inmemory/`
- `InMemory.loader.ts` or `InMemory.interactor.ts`
- `real/`
- `dto/`
- `mapper/`
- `.loader.ts` or `.interactor.ts`
- `domain/`
- `entities/`
- `User.ts` entities used in this context, http://facebook.github.io/immutable-js/docs/#/Record.Factory
- `gateways/`
- Interface for `.loader.ts` or `.interactor.ts`
- `usecases`
- `/` store and actions definitions
- `.actions.ts`
- `.reducers.ts`
- `.sagas.ts`
- `.selectors.ts`# TODO
## 1. Initialize Git Flow
> `git flow init`## 2. Create A Netlify Website
> [Netlify](https://app.netlify.com)## 3. Set Environment Variables On CircleCi
> [CircleCI](https://circleci.com/dashboard)
- EXPO_CLI_PASSWORD
- EXPO_USERNAME
- NETLIFY_AUTH_TOKEN
- NETLIFY_SITE_ID