- React native navigation => Change to React navigation
- Mobx => Change to Recoil
- i18next
- axios
- theme
- config multi-environment: development, staging, production
CI: -> Static test:
- husky
- eslint
- prettier
- commmitlint
-> Dynamic test:
- jest
- detox
Development: env.development Staging: env.staging Release/Production: env.production
- semantic-release
- export GH_TOKEN=
- run: npm run release
Example commit message type:
type(scope?): subject #scope is optional; multiple scopes are supported (current delimiter options: "/", "\" and ",")
- build
- ci
- chore
- docs
- feat
- fix
- perf
- refactor
- revert
- style
- test
Example:
chore: run tests on travis ci
fix(server): send cors headers
feat(blog): add comment section
- Package name/ Bundle ID
- Project name
- App name
- Icon
- Using map: (google/mapbox)
- Using chart: (MPchart, SVG)
- Using notification: Setup firebase and config app information
- Update online, update rule: code push
- Using analytics/crash report: google
- IAP
- Deeplink for mobile.
- Other specific features.
Code Signing: https://www.designveloper.com/blog/ios-android-code-signing/
- Prepare keystore android
- Prepare certification ios
- Local / Dev (for testing) -> branch: develop
- STG (for customer) -> branch: stg
- Production (for end-user) -> branch: master
- Production with feature: -> branch: version
Config build for environment:
- Android: using flavor
- IOS: using schema
Requirement:
- Setup static check library: eslint with rule, prettier.
- Validate testID property for testing component in react native.
- Android:
- Build with gradle
- Upload to google play with tracks (internal testing, alpha testing, beta testing).
- IOS:
- Build with fastlane.
- Upload to testflight.
- Rule when develop
- Structure project
- Best practice with new JS feature:
- Clean
- Performance
- Readable code
- Sharing code in team (code of conduct).
- Security
- jail monkey: https://github.com/GantMan/jail-monkey
- http => https with ssl pinning https://github.com/MaxToyberman/react-native-ssl-pinning
- token storage and sensitive data: https://github.com/mCodex/react-native-sensitive-info, https://github.com/oblador/react-native-keychain
- Policy of store:
- Android
- IOS
- Requirement:
- Description
- Short description
- Screenshot
- Feature image
- Category
- Rating content