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

The state of React Native in 2018

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

The state of React Native in 2018

Avatar for Guilherme Coelho Piovesan

Guilherme Coelho Piovesan

November 29, 2018

More Decks by Guilherme Coelho Piovesan

Other Decks in Programming

Transcript

  1. Advantages over Hybrid apps • Render using native views. •

    Have the same feel and performance as that of a native app. • Have direct access to Native APIs. • Use Objective-C / Swift or Java code when you need to.
  2. Advantages over Native • Quick development through code re-use. •

    Cross platform (iOS, Android). • Don't waste time recompiling (Hot Reloading). • Smaller Teams. • Can use non-DOM libraries from NPM.
  3. Disadvantages over Native • Lagging SDK Updates. • Tricky development

    environment (without Expo). • Restrictions based on API and native components. • Memory issues in Android. • Unfamiliar Tools for debugging.
  4. Native Modules Android - Java / Kotlin iOS - Obj

    C / Swift JS Virtual Machine JavaScriptCore RN Bridge (Java / C++) JSON asynchronous serializable batched
  5. <Text>
 Hello World Yoga <App> <View> createView(2, RCTRawText, …) 1

    (1) Root (4) RCTView (3) RCTText (2) RCTRawText JSC Hello World createView(3, RCTText, …) setChildren(3, [2]) createView(4, RCTView, …) setChildren(4, [3]) setChildren(1, [4])
  6. <Text>
 Hello World Yoga <App> <View> createView(2, RCTRawText, …) 1

    (1) Root (4) RCTView (3) RCTText (2) RCTRawText JSC Hello World createView(3, RCTText, …) setChildren(3, [2]) createView(4, RCTView, …) setChildren(4, [3]) setChildren(1, [4])
  7. Yoga <App> <View> createView(2, RCTRawText, …) 1 3 (1) Root

    (4) RCTView (3) RCTText <Text>
 Hello World (2) RCTRawText JSC Hello World createView(3, RCTText, …) setChildren(3, [2]) createView(4, RCTView, …) setChildren(4, [3]) setChildren(1, [4])
  8. Yoga <App> <View> createView(2, RCTRawText, …) 1 4 3 (1)

    Root (4) RCTView (3) RCTText <Text>
 Hello World (2) RCTRawText JSC Hello World createView(3, RCTText, …) setChildren(3, [2]) createView(4, RCTView, …) setChildren(4, [3]) setChildren(1, [4])
  9. Yoga <App> <View> createView(2, RCTRawText, …) 1 4 3 (1)

    Root (4) RCTView (3) RCTText <Text>
 Hello World (2) RCTRawText JSC Hello World createView(3, RCTText, …) setChildren(3, [2]) createView(4, RCTView, …) setChildren(4, [3]) setChildren(1, [4])