WhoBuilt

Q&A Session

Sep 14, 2018· 51 min· 41 views·Watch on YouTube

Speakers

React Native engineers from Wix, Facebook, and the open-source community join Callstack’s React Native EU 2017 Q&A in Poland to discuss offline data, ecosystem challenges, performance, testing, and navigation.

Offline data and schema migrations

A panelist described a migration failure that signed out about 95% of users and left 5% in a boot loop. The advice was to support upgrades from multiple schema versions with step-by-step migrations, and to treat changes as risky. Another panelist described an offline-first social network built around an immutable log, where new schemas can reinterpret existing messages.

React Native’s ecosystem and future

The panel discussed making React Native more modular, including the move from React Native Packager to Metro and better support for platforms such as Windows. They also called for more native developer contributions and stronger end-to-end testing across JavaScript, iOS, and Android. React Native for Web, React Primitives, and WebAssembly came up as ways mobile and web development might converge.

Production reliability and performance

For production errors, the panel recommended separate tools for native crashes and JavaScript errors, naming Crashlytics and Sentry. They suggested collecting user feedback through a contact form inside the app. For performance issues, they urged teams to measure before optimizing: one panelist traced several seconds of startup delay to native module initialization and JavaScript require calls, and recommended lazy loading where it fits.

Testing, web apps, and navigation

The panel described Detox as a JavaScript interface for gray-box end-to-end tests, with iOS support in production and Android work underway at the time. In discussing web and native apps, panelists weighed web distribution against access to device APIs and suggested sharing business logic through JavaScript libraries when full code sharing is impractical. On navigation, they favored flexible APIs over a shared interface, while one panelist argued that the underlying navigation should use native components.

Takeaways

  • Keep schema migrations for each version and test upgrade paths across older app installs.
  • Measure startup, rendering, and memory behavior before choosing an optimization.
  • Track native crashes and JavaScript exceptions with tools suited to each runtime.
  • Use automated end-to-end tests to help contributors safely change code across JavaScript and native layers.
  • Share business logic across web and mobile when legacy code makes a full rewrite unrealistic.

Mentioned in this talk

Search inside this talk

What was claimed 5

  • uses
    “We've got GraphQL to solve that problem.”
    YouTube
    Verified2 sources· Talk
  • uses
    “we use Sentry in production.”
    YouTube
    Unverified1 source· Talk
  • metric
    Detox: In production for iOS; Android version expected very soon.
    “It's in production for iOS right now, and an Android version will be released very soon.”
    YouTube
    Unverified1 source· Talk
  • feature
    Detox: Provides a JavaScript API for end-to-end tests in simulators.
    “It abstracts this away and gives you a very nice JavaScript API to run end-to-end tests in simulators.”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native Navigation: Version 2 is fully tested with unit tests and end-to-end tests.
    “We're working on version 2 ... making version 2 fully tested.”
    YouTube
    Unverified1 source· Talk

Related talks