WhoBuilt

How do you derisk achieving goals in large projects with React Native?

Jul 5, 2023· 11 min· 267 views·Watch on YouTube

An unnamed Callstack guest explains how a consumer electronics team used React Native to pursue a 200-millisecond app launch goal while managing technical and organizational risks.

Set the goal within existing constraints

The product vision team set a 200-millisecond app launch target for a consumer electronics project. The team wanted to use JavaScript and existing web talent, but ruled out a browser-based interface because the previous product had serious performance and stability problems.

Use adoption as evidence of reduced risk

React Native let engineers keep working in JavaScript while using a declarative UI approach. By this project, major apps had shipped with React Native, giving the team stronger evidence that the technology could work repeatedly than was available during an earlier project at BlueJeans.

Prototype with the existing product

Before designs were ready, the team recreated existing Ember-based WebKit apps in React Native. This let them check that the needed controls worked and look for hidden issues such as memory leaks, while trying to reuse the QA team's UI automation.

Train for performance and testing

The initial group had six to eight engineers, trained in small batches by practitioners from Callstack and This Dot Labs. Training emphasized unit testing, performance pitfalls that cause unnecessary re-renders, and using React DevTools to find them, especially on lower-end hardware.

Stay close to the ecosystem

After about six months, the team added React Navigation to its training and contributed pull requests. The guest connected this ecosystem approach to faster onboarding: new hires could make useful contributions that passed review and stayed in the codebase.

Takeaways

  • Treat an ambitious performance target as a product constraint to test early, not just a number to announce.
  • Prototype by recreating existing workflows when new designs are not ready.
  • Train engineers on common performance mistakes and debugging tools, including under realistic hardware limits.
  • Prefer shared ecosystem patterns when they make it easier for new hires and outside contributors to help.
  • Use practitioner-led training to answer the technical questions engineers encounter in real work.

Mentioned in this talk

Search inside this talk

What was claimed 6

Related talks