Folder structure
Nothing fancy here
/android
/ios
/js
/actions
/common
/reducers
/store
/utils
/...
index.android.js
index.ios.js
State management
We use Redux, because it's more simple than the previous flux approch we use (Fluxible) and it made code sharing really easy between web and mobile app.
Navigation
Hard to choose, we use navigator for now, but are waiting more official support from RN Core to migrate to NavigationExperimental
Continuous Integration
We do some cool thing here, use Jenkins for CI, Eslint for linting, Fastlane and Appetize to have some preview of our iOS & Android build on each of our Pull Request. We even write a blog post about it here : tech.m6web.fr/preview-android-ios-react-native-on…
Deployment
Codepush for hot update is awesome. HockeyApp for "beta" version and crash reporting. But i think we will try Sentry for error reporting, because we use it on web and it does the job pretty well
Kenny Dits @kenny_dee
Engineering Manager @ M6Web (France)
Sriraman
Software Engineer @ LifeOn24
Setup
I'm using the
react-native-clifor the initial setup.Folder Structure
/android /ios /app /components /containers /images /modules /stores /styles /config index.jsState Management
I prefer
MobXthanReduxbecause of its simplicity.babel-plugin-transform-decorators-legacyandbabel-preset-react-native-stage-0for using ES7 DecoratorsNavigation
I didn't like the Navigator API provided by Facebook. So, I'm using
react-native-router-fluxfor the navigation. But, Now I'm tryingNavigationExperimentalin my new projects.Editor
I was using Atom with Nuclide. But, It made my computer very slow. Now I'm using MacVim. Some of the plugins which I'm using are
Lint
I'm using ESlint with Syntastic in my Vim. You can check my eslink config here
Continuos Integration
We are running Private Gitlab instance in Amazon EC2. So, We are using Gitlab CI itself for testing and building the code.
Deployment
Codepush is very helpful in pushing updates. Whenever we are making changes only in the Javascript, We are pushing updates using Codepush. If there are changes in Java files, then
./gradlew assembleReleaseAPK Optimisation
React Native is increasing the size of the APK by 4 - 5 MB. So, We are trying to reduce the APK size in other ways using ProGuard and ReDex.
Crash Reporting
Crashlytics is working pretty good for us.