๐ง Work In Progress
This project is highly inspired by next-enterprise. But for Expo/React-Native.
๐ Features (TODO)
- Expo - Built with Expo for cross-platform support
- ๐ฏ Absolute imports - For better imports and code organization
- ๐ Conventional commits git hook - For enforcing conventional commits
- ๐ค Renovate BOT - For keeping dependencies up to date
- ๐ ๏ธ Extremely strict TypeScript - With ts-reset library for ultimate type safety
- ๐ฉน Patch-package - For patching dependencies
- ๐ป T3 Env - For environment variables management
- ๐ Bundle analyzer plugin - For analyzing bundle size
- ๐งช Jest and React Testing Library - For testing components and features
- ๐ Storybook - For isolating and testing UI components
- ๐ Components coupling and cohesion graph - For analyzing components relations
- ๐ GitHub Actions - For CI/CD automation
- ๐ค๐ง Automated ChatGPT Code Reviews - For improving code quality and AI assistance code reviews
- ๐ข Semantic Release - For automated versioning and CHANGELOG generation
- ๐๏ธ Auto Sort Imports - Automatic organizing of imports on file saves.
๐ฆ Roadmap (Updated as implemented)
Expo
Project Initiated with
npx create-expo-app --template
Absolute Imports
Clean code and code writing easier. Preconfigured by default.
Conventional Commits
Configured with git-conventioanl-commits to automatically validate commit messages following the conventional-commits standard.
TS-Reset | Extremely Strict Typescript
TypeScript's default type declarations may have imperfections, but ts-reset enhances them.
Automated ChatGPT Code Reviews
Configured with chatgpt-codereview action workflow.
Patch Package
Configured with patch-package to patch dependencies as needed.
For eg: npx patch-package package-name
Bundle Analyzer
Configured with react-native-bundle-analyzer
Run npm run analzye:bundle
which generates bundle map and show you what's inside of your react-native bundle
Coupling Graph
Configured with skott
Run npm run coupling-graph
to get graph of your components and how they are coupled. This helps identify components that are too tightly coupled and should be refactored.
Auto Sort Imports
Automatically organize imports on file saves. Be sure to enable on your user settings for better experience.
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
Renovate Bot
Configured with renovate-bot to keep dependencies up to date.
T3 Env
Configured with t3-oss/env-core. Typesafe environment variables management integrated along with zod.
Storybook
Configured with storybook-react-native to isolate and test UI components. Configured with global decorators and easy to write storybook under each components.