+++ Our team has lots of experience with JavaScript + React
+++ Build once for both platforms
++ Much better developer experience (faster turnaround times)
+ Can update without having to go through the app store most of the time
+ Has a lot of traction
+ Eventually, it might be possible to share components between web and mobile (react-native-web)
+ Great prototyping experience with Expo
+ Can use Atom/VSCode
-- Things that aren't important for facebook don't get built (navigation)
- May get abandoned (unlikely, used in production by fb, instagram, netflix, airbnb, bloomberg) or facebook may slow down development
- Can be slow on older Android devices
- Documentation is improving but still not great
++ Full and direct control of all the capabilities of the phone
++ More stable
+ Can do advanced stuff like beautiful transitions
+ Swift and Kotlin are better languages than JavaScript (TypeScript somewhat alleviates this problem)
--- Have to build everything twice
-- No experience on our team, would have to hire new people and fragment the dev team into JS and mobile
- The Android API is a nightmare to work with (inconsistencies between devices, debugging is hard, Fragment lifecycle is a mess, arcane build system)
- XCode and the Swift compiler aren't very stable, Android Studio is slow and downloading stuff from Google's servers is slow in China
- All updates have to pass the app store review process
- Fuchsia (Google's new mobile OS) is on the horizon, hard to say what will happen in the future, Google may abandon Android
- Flutter (very early stage but similar to react native)
- Progressive web apps (probably not viable at this point but best deploment story)