I attended the React Native Workshop held by Artsy at Facebook’s UK HQ.
I was interested in attending this workshop as it was being run by a company that actively uses the technology for their production app.
This blog post captures some takeaways and notes from the talks at the workshop.
Approach & Rationale
- Artsy use a hybrid approach: native code where necessary, and integrating React Native powered View Controllers using CocoaPods.
- Recognised that “Swift was just another programming language” and did not do anything to serve their engineering needs.
- Recognised their app was “a JSON parser than produces UIViews”. React Native is a good fit for their app.
- There is a learning curve. Native Developers will feel slower and less productive initially.
- Eventually you will write less code
- Allowed the organization to “de-silo”. Web developers get to work on the mobile app, and mobile developers get to work on the web app.
Why Artsy Chose React Native
- Simpler Mental Model
- Simpler and more efficient Networking
- De-silo people
- Improve developer experience
- Expand platform support
- You will need/should have a native expert for each platform you intend to support.
- You dont just get an Android app for free.
- Artsy does not have an Android version of their app.
- “Learn once, write anywhere”
- Learn React and you can have mobile developers contribute to the web site and web developers contribute to the mobile app.
Facebook as Platform Vendor
- React Native is an open source project, originating from Facebook.
- Facebook makes just what they need.
- When you are off off their golden path your team will have to do the work to add features you need and/or fix relevant bugs.
- 10 people at Facebook work on React Native.
- Facebook are currently undertaking a rewrite of React Native.
- React Native is open source. (Contrast to Cocoa, having to file RADARs for bugs etc).
- No need to use Xcode!
- Artsy have their own preferred tooling when using React Native, but you can choose other options.
- Testing: using Jest
- Run tests outside of the simulator
- Can automatically update tests
- Has a great mocking API
- Storybooks for live coding
The event was edifying, and it’s always good to hear about the context in which technology decisions are made, and the implications of those decisions.
I recommend you watch the videos from the talks when they become available.