Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Integrating React Native into existing Applications


Published on

People talk a lot about building new apps with React Native, but few talk about the integration of React Native into existing applications. This presentation aims to shed some light on ease/difficulty of it and how you can do it!

Published in: Software
  • Be the first to comment

  • Be the first to like this

Integrating React Native into existing Applications

  1. 1. Integrating React Native into existing Applications An intro by Robert Tochman-Szewc © Robert Tochman-Szewc, 2018
  2. 2. Agenda • Who am I? • Why we should care • A path for integration: Android • Going even further • Limitations © Robert Tochman-Szewc, 2018
  3. 3. Who am I? • Full-Stack JS Developer with roots in backend development • Started with React Native in early 2016 for side projects • Changed to self-employment beginning of 2017 to work on Blue Boat Log © Robert Tochman-Szewc, 2018
  4. 4. Who am I? (2) • Shifted to freelance work end of 2017 for innovation projects (Blockchain, React Native) • Most recent project: Integration of React Native into an existing travel application with millions of consumer and business customers. © Robert Tochman-Szewc, 2018
  5. 5. Why we should care - Recap RN promises faster and more efficient development by • Building software once and running it on two platforms • Reducing overhead from two teams to one team • Alternatively: Make it easier to separate feature teams • Developing synergies between mobile and web © Robert Tochman-Szewc, 2018
  6. 6. Why we should care - Adoption • AirBnB has used it very early on but recently stopped • Zynga, Bloomberg, Walmart, Instagram are all using RN to an extent • Discord is building its million-user mobile client on RN with only two developers • Adoption in Berlin is rising among big and small startups © Robert Tochman-Szewc, 2018
  7. 7. Why we should care - Market • Most apps we will use in a year are already around today • Companies are reluctant to green-field projects • Companies have existing native teams • Companies should have a "way out" if unsatisfied Your company might want to try it, this is how you can help. © Robert Tochman-Szewc, 2018
  8. 8. A path to Integration: Android For a company with an existing app, the docs are discouraging. Do they seriously expect us to put our entire project into an ios/ android folder to start? Why do I need all these new tools? Where does it constrain me? © Robert Tochman-Szewc, 2018
  9. 9. An Integration's Components • Single js bundle • General React Native dependencies, configuration specifics • Entry point • Optional: Native Libraries as needed • Optional: Native Bridges as needed © Robert Tochman-Szewc, 2018
  10. 10. Demo © Robert Tochman-Szewc, 2018
  11. 11. What about the workflow? • Your tooling stays the same (Metro Bundler, Debugger, ...) • The native dev's tooling stays the same (Android Studio, Xcode) • RN code will have to be maintained separately, only bundle needs updating (and native dependencies) • Debug Mode toggled by the bundle you use • Building Bridges becomes a daily task © Robert Tochman-Szewc, 2018
  12. 12. Extensions • Integration with obfuscation tools works • Full modularization on Android is possible • Offering RN-based SDKs is possible © Robert Tochman-Szewc, 2018
  13. 13. What are the limitations? • Native dependency synchronisation overhead (e.g. GMaps) • Integration with native app data/functionality takes effort • Android: Only 32-bit native libraries possible due to JSC • Android: Library handling restrictive (no fatAar) © Robert Tochman-Szewc, 2018
  14. 14. Questions? © Robert Tochman-Szewc, 2018
  15. 15. Now start integrating! Thanks. © Robert Tochman-Szewc, 2018
  16. 16. Sources AirBnB: Sunsetting React Native Why Discord is Sticking with React Native Zynga using RN Official Integration Docs RN License change © Robert Tochman-Szewc, 2018