Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to React Native Performance

Introduction to React Native Performance

* Given in ReactNative TLV Meetup on July 20, 2016

React Native holds great promise in terms of excellent developer experience with Javascript and code reuse between platforms. The big question is — do these benefits come at the price of performance? How well can React Native hold its own against purely native implementations?

https://medium.com/@talkol/performance-limitations-of-react-native-and-how-to-overcome-them-947630d7f440#.x4l4xr32i

Tal Kol

July 20, 2016
Tweet

More Decks by Tal Kol

Other Decks in Programming

Transcript

  1. JavaScript THE HOLY GRAIL OF CROSS PLATFORM LANGUAGES This really

    isn’t a new concept.. Why didn’t it catch on?
  2. React Native “LEARN ONCE, WRITE ANYWHERE” WITH REACT AND JAVASCRIPT

    Promising pedigree… But does it measure up to purely native apps?
  3. The JavaScript Realm The Native Realm The Bridge React Native

    Architecture JSCore (VM) Single Thread Main UI Thread Other BG Threads
  4. The JavaScript Realm The Native Realm The Bridge Developer Experience

    Javascript One JS Bundle Business Logic ObjC+Swift / Java IPA / APK The Framework
  5. Obvious Pitfalls WHERE MOST OF THE COMPETITION LOST THE BATTLE

    Synchronous updates between realms Don’t we need that for consistency?
  6. React Native HANDLES THIS SURPRISINGLY WELL OUT-OF-THE-BOX, YAY React.js solves

    a similar problem on the web Updates between realms are async!
  7. What can we do? LET’S PULL OUT THE BIG GUNS

    In RN we can move any component to native How can we reduce bridge traffic?
  8. Good but not ideal WE CAN PROBABLY DO BETTER Need

    native skillset to fix this (or open source) We keep 10% native devs for this purpose
  9. Declare interaction in JS, and send it over the bridge

    to a native driver 3 declare driver
  10. The Future of RN SOLVING MORE AND MORE SCENARIOS WITHOUT

    NATIVE CODE JS API that reduces passes over the bridge Declarative nature of React is a big help