This project consists of a Typescript Expo app, with:
- Gitmoji style commits
- Jest + @testing-library/react-native
- Storybook
- styled-components
- React Query
- Reanimated2
- Components follow atomic design
- Update Storybook as the design system is updated
- Screens are split in a modular structure
- Keep test suite updated
- For animations use Reanimated2, don't sweat it
- React Query is beautiful, let's iterate on that
- To create a new release follow this workflow
- Expect your code to be rejected per not following any of the instructions above.
- ESLint: find and fix problems in your JavaScript code
- Prettier: an opinionated code formatter, applied through eslint
- Commitlint: lint commit messages according to a customized commitlint-config-gitmoji
- Commitzen: define a standard way of committing rules (here cz-gitmoji) and communicating it.
- lint-staged: improve ESLint performance on git hooks (Husky) by only targeting staged files.
To enable storybook it needs a little code patch in App.tsx:
echo 'export { default } from "./storybook";' > App.tsx
Remember to reset changes after using storybook.