React Native is the top choice for building new native cross platform mobile apps but it not only shines for building new apps, it can also unlock new, unforeseen possibilities for existing native mobile apps. There is a tremendous opportunity for native mobile engineers to lay the foundation that can enable the rest of your company’s (web) engineering team to help build features for mobile. At Pinterest we recently integrated React Native into our Android (and iOS) app and in this talk we will take you through the steps we took to ensure it’s the right technology and what infrastructure we had to put in place in order to make it as easy as possible to use as well as share some of the lessons learned during this exciting journey. We are going to start off by briefly talking about the seed that kicked off the React Native initiative at Pinterest. Next we will outline and detail the learnings from the months long evaluation process during which we ensured that React Native suits Pinterest from both business and technical needs. The evaluation included determining highly valuable use cases, choosing surfaces to experiment on, and building an internal prototype as well as pushing out an A/A experiment to validate performance. We will take an extensive look at what new platform tooling was built for integrating React Native into our existing native Android (and iOS) codebases. This will include an overview of our Android app architecture and how we integrated React Native with it as well as how we are handling navigation across the native and React Native boundary. Further we will touch on how we share the image cache, event based communication via the React Native bridge, bridging components such as native API clients as well as sharing type safe models between Android, iOS and React Native. You will leave this talk with the insights of how we at Pinterest evaluated React Native from a business and technical perspective and will have the playbook to initiate your own evaluation and technical integration leveraging your native Android knowledge in order to bring the power of truly performant cross platform mobile development to your company. |