default-stack.s
Owner: Florian Rival
Why
Having a set of common tools/libraries allow us to quickly move from one project to another, be more efficient and get a deep knowledege of each tool, including the advantages and drawbacks of these tools.
I need a navigation solution to start my app
Library/tool
What
Why
react-navigation
Navigation library for React Native
react-native-navigation
Navigation implemented using native navigation components
If you need to use the native navigation components so that your navigation is 100% equivalent to a native app.
I need to display icons
Library/tool
What
Why
react-native-vector-icons
Customizable Icons for React Native
Most comprehensive library of icons
I want to store the state of the app
Library/tool
What
Why
redux
State container
Widely used in the React community, lots of dev tooling
redux-persist
Persistence of the data of the app
Simple to integrate with Redux and flexible
redux-saga
Handling of asynchronous processes in the app
Simple to integrate with Redux, testable, make complex business flow easy to read
I want to handle forms
Library/tool
What
Why
formik
Forms handling library
date-fns
, moment
Date handling library
Widely used libraries.
I want to handle animations
Library/tool
What
Why
Lottie (react-native-lottie
)
Animation library
Good looking, performant animations. Easy to integrate in React Native.
I need to add testing to my app
Library/tool
What
Why
jest
Testing framework
Already integrated with React Native by default, allow to do snapshot testing
redux-saga-test-plan
Testing utilities for redux-saga
Allow to test redux-saga
Detox
End to end testing
Alternatives (Calabash) are not reliable enough and slow
I want static type checking
Library/tool
What
Why
Flowtype
Static typing
Improve developer experience, help to avoid errors when dealing with complex objects
Typescript
Static typing
More stable and mature than Flowtype. Never used on a React Native project at BAM yet
I want to ensure the quality of my codebase
Library/tool
What
Why
Prettier
Automatic formattting of source code
Avoid all discussions/loss of time on styling Integration/plugin for editors
eslint with eslint-config-universe
Linter
I want to be able to push on-the-fly updates to my app
Library/tool
What
Why
AppCenter Code Push
Deploy mobile app updates without a full release
Speed up the deployment during development, allow for bug fixes and new features releases on the fly
I need to have crash/bugs reporting
Library/tool
What
Why
Sentry
Native crashes and JS exceptions reports
Easy integration and good React Native support with react-native-sentry
I need to add analytics/tracking to my app
Library/tool
What
Why
Firebase Analytics
Analytics for mobile applications
I need to have automated deployment
Library/tool
What
Why
fastlane
Automation of deployment tasks
Most widely used deployment tool for iOS/Android + existing actions for HockeyApp/App Center/App Store/Play Store
match
Automation of certificate/provisioning profile generation
Avoid dealing with certificates, one place storage for all certificates
I need a continuous integration service for launching tests
Library/tool
What
Why
Bitrise
Automation of applications builds
Ensure reproducible builds, avoid spending time building apps on developer computers
Travis CI
Automation of unit tests
Last updated