WhoBuilt

How to actually improve the performance of a React Native app?

Sep 29, 2022· 25 min· 6.5K views·Watch on YouTube

Speaker

Michael Chudziak, an independent React Native consultant, explains how to improve app performance at React Native EU 2022 in Verso 12.

Why performance work needs structure

Chudziak frames performance as a user experience and business concern, pointing to the impact slow apps can have on ratings, retention, and revenue. He describes how generic online tips led him to guess at causes and achieve only slight improvements. His central lesson is to use data and treat optimization as ongoing work with multiple contributing factors.

Define the problem and target

Chudziak introduces DMAIC, a process improvement method with Define, Measure, Analyze, Improve, and Control phases. In Define, teams gather the voice of the customer, translate vague feedback such as wanting a fast checkout into measurable critical-to-quality indicators, and use user path data to focus on important flows. A project charter can record the scope, metrics, and target results.

Measure and find root causes

The Measure phase establishes a baseline with a practical data collection plan, then profiles JavaScript and native performance as the app’s architecture requires. Chudziak recommends tools including React Profiler, React Native Performance, Xcode Instruments, Android Profiler, Flipper, and screen recordings; measurements should account for device and environment variation and use release builds. In Analyze, teams use a cause-and-effect fishbone diagram to list possible causes, narrow them, and test hypotheses such as whether prop drilling affects catalog performance.

Improve and keep regressions in check

Once a root cause is supported, engineers brainstorm possible fixes, weigh their costs and benefits, implement a chosen solution, and test the result. Chudziak says poor React usage and frequent layout reconciliation are common contributors, though not universal ones. The Control phase sets monitoring scenarios, acceptable metric ranges, testing frequency, and response procedures; he recommends Reassure for regression checks and mentions Firebase Performance Monitoring and Sentry Performance Monitoring.

Takeaways

  • Start with user feedback and turn it into specific performance metrics and targets.
  • Profile a release build on relevant devices before choosing an optimization.
  • Treat performance problems as hypotheses: test likely causes and confirm results before committing to a fix.
  • Prioritize the user journeys that matter most instead of spreading optimization work across the app.
  • Set up regular regression checks and clear response thresholds so performance stays visible during feature work.

Mentioned in this talk

Search inside this talk

What was claimed 8

  • previously at
    over six years in development and leadership roles
    “I spent over six years working at Costa in development and leadership roles.”
    YouTube
    Unverified1 source· Talk
  • feature
    DMAIC: Five phases: Define, Measure, Analyze, Improve, and Control
    “the acronym stands for the first letter of each phase”
    YouTube
    Unverified1 source· Talk
  • feature
    React Profiler: Measures component render count and render time
    “measure the number of renders and the amount of time needed to render a component”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native Performance: Places native markers, measures execution time, verifies network requests, and exports native markers
    “place native markers in the code and measure execution time”
    YouTube
    Unverified1 source· Talk
  • integrates with
    “an implementation of the Performance API from the Web APIs for React Native”
    YouTube
    Unverified1 source· Talk
  • feature
    Reassure: Monitors app performance regressions in CI or on a local machine
    “a great tool to monitor app performance regressions in CI or on a local machine”
    YouTube
    Unverified1 source· Talk
  • feature
    Sentry Performance Monitoring: Tracks application performance metrics and displays the impact of errors across services
    “tracks application performance metrics and displays the impact of errors across multiple services”
    YouTube
    Unverified1 source· Talk
  • feature
    Firebase Performance Monitoring: Provides insight into key performance characteristics within app releases
    “allows you to gain insight into key performance characteristics within your release”
    YouTube
    Unverified1 source· Talk

Related talks