Five years of React Native at Shopify
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.