Five years of React Native at Shopify

Shopify’s account of five years with React Native prompts a broader look at cross‑platform mobile development: it can dramatically speed iteration and enable code sharing, but only when backed by strong native iOS/Android expertise and dedicated tooling. Commenters highlight the JavaScript ecosystem’s dependency churn, performance tuning challenges, and Shopify’s own “sub‑500ms” screen load target as signs that maintenance and UX costs are often underestimated. Alternatives like Hotwire Native, Flutter, Kotlin Multiplatform, and pure native stacks are weighed against React Native’s strengths, with many arguing that team skills, long‑term maintenance budget, and UX expectations should drive the choice more than any single framework’s promise.

Role of Native vs React Native Developers

  • Many agree with Shopify’s emphasis that strong native iOS/Android engineers are essential for good RN apps.
  • Common view: RN is a tool for mobile devs to avoid writing two separate native apps, not a shortcut to avoid learning native or to “just reuse web devs.”
  • Teams mixing native mobile and web/JS expertise are seen as higher quality but also more expensive; RN isn’t the “cheap” option some expect.

Maintenance, Tooling, and JS Ecosystem Concerns

  • Several complain about dependency churn, fragile tooling, and frequent breaking changes in the JS/React/RN ecosystem.
  • Others push back, claiming most core JS libs are stable and asking for concrete examples.
  • Maintenance cost and staffing profile (team size, skills, ability to absorb churn) are called out as under-appreciated decision factors.

Performance and the “<500ms Screen Loads” Claim

  • The “sub‑500ms (P75) screen loads” claim is heavily debated.
  • Critics say 500ms is far from “blazing fast,” especially if that’s P75, implying poor tail latencies; compare to UX research suggesting ~100ms feels instant.
  • Some argue it’s acceptable if it includes network round-trip, parsing, and rendering on mobile networks; others insist backend and DB latency should be far lower.
  • There is disagreement over what “screen load” includes and how meaningful P75 is; several worry high p95/p99 values are being obscured.
  • Some users report the Shopify app feels sluggish in practice, especially on Android; others say it feels “nice and speedy.”

Developer Experience and Productivity

  • Hot reload and short feedback cycles are major reasons people like RN; long native compile times are seen as a serious drag on productivity.
  • Some argue previous generations shipped fast native software without hot reload, while others say that ignores cognitive cost of constant context switching.

Cross‑Platform Alternatives (Expo, Flutter, Hotwire, etc.)

  • Expo is praised for simplifying RN upgrades and native config via “continuous native generation,” though Shopify appears to be on bare RN.
  • Flutter/Dart is frequently lauded for superior tooling and dev experience; critics note Flutter’s non-native widgets can feel “off.”
  • Hotwire Native is mentioned positively as simpler and more stable for certain projects, contrasting with complex React maintenance.

User Experience and Quality Bar

  • Many feel modern apps (web and RN) accept latency and jank that would have been unacceptable a decade ago.
  • Some argue typical users care more about features and brand than raw speed; others see this as part of broader “enshittification.”
  • Requests for basics like dark mode and better accessibility contrast with the engineering focus on frameworks and architecture.