Notes On How React Native Helps Companies Build Better Mobile Apps

Written by sheshbabu | Published 2018/05/05
Tech Story Tags: react | react-native | mobile-app-development | f8 | mobile-apps

TLDRvia the TL;DR App

These are my notes on the recent React Native panel in the F8 2018 Facebook developer conference. Watch the original video here.

Where is it used

  • Facebook — Marketplace, Jobs, Safety Check etc
  • Skype — Skype app
  • TaskRabbit — Tasker app
  • Postlight — Audubon Bird Guide
  • CondeNast — Vogue iOS app

Code reuse between multiple platforms

  • Facebook: ~93%
  • Skype: 85–90%
  • TaskRabbit: ~86%
  • Postlight: 90–95%

Why was it chosen

Facebook

  • Platform specific codebases result in
  • Developers hitting different snags
  • Each platform moving in different speeds
  • Getting out of sync
  • Doing same things twice
  • Polish/optimization doesn’t get done uniformly in both platforms

Skype

  • Platforms: iOS, Android, Windows, Mac, Linux — Using ReactNative or Electron+React
  • Before ReactNative
  • 7 devs and 7 product owners for each platform across multiple timezones
  • Main issue was communication between different platforms in different timezones
  • After ReactNative
  • Moved from platform specific teams to feature squads that focus on delivering features across different platforms
  • Feature squads reduce the communication challenges and improve development velocity
  • Reduces implementation discrepancies in different platforms
  • Got transferable knowledge as all the teams speak the same language
  • Easy to ramp up squads for new features and ramp down squads for other features
  • Ramp up time is almost zero as there’s a single language used
  • Lost good developers
  • Focus on hiring generalists
  • React — Same UI description language and layout semantics for all platforms
  • React — Everything is encapsulated in a component as opposed to code scattered across different layers
  • Uses ReactXP

TaskRabbit

  • Before ReactNative
  • 3 devs on each mobile platform
  • After ReactNative
  • 2 person team moving faster than the 6 person team
  • Business logic lives in a single place and bugs gets fixed for both platforms at same time
  • Helps in hiring

Postlight

  • Postlight has React (web) experience
  • 1.5 devs, completed before deadline and under budget

CondeNast

  • CondeNast is a JS shop, so using ReactNative to leverage that experience
  • Why replace Swift with JS?
  • Declarative layouts with JSX
  • Writing layouts in Swift is hard
  • Iterate very rapidly
  • Lower the barrier to create layouts
  • Frees developers from working on “pixel pushing”
  • Gives them time to focus on harder and interesting things

Lessons learned

Postlight

  • Was able to do performance tuning for low-end devices targetting Indian market
  • ReactNative is not prescriptive and makes it possible to drop out of ReactNative and use native modules when needed
  • Ran into performance issues when you don’t expect the same with native modules (long scrolling lists etc)

CondeNast

  • Being early adopter
  • Going through multiple ReactNative version bumps is tough
  • Better suited for apps that are under active development as batching several updates at once is painful

Originally published in sheshbabu.com


Published by HackerNoon on 2018/05/05