Skip to content

chore: remove @shopify/react-native-performance#7398

Draft
janicduplessis wants to merge 1 commit intodevelopfrom
@janic/remove-shopify-perf
Draft

chore: remove @shopify/react-native-performance#7398
janicduplessis wants to merge 1 commit intodevelopfrom
@janic/remove-shopify-perf

Conversation

@janicduplessis
Copy link
Copy Markdown
Contributor

@janicduplessis janicduplessis commented Apr 28, 2026

What changed (plus any additional context for devs)

Removes two layers of unused performance infra as RN 0.81 prep:

  1. @shopify/react-native-performance β€” unmaintained since Aug 2022, upstream still has the Map<String, Any> override variance bug that breaks Android Kotlin compile on RN 0.81+. Lets us drop patches/@shopify+react-native-performance+4.1.2.patch.
  2. The in-house PerformanceTracking module (src/performance/) β€” emitted performance.report and Performance Wallet Initialize Time to Rudderstack β†’ Amplitude on every prod/staging start. Nothing in Rainbow consumes them β€” write-only.

Pulled together because the in-house module wraps the same call sites the lib touched. If we want startup metrics back later, Sentry tracing covers TTI and we already ship @sentry/react-native.

src/state/performance/performance.ts is an unrelated Zustand store with a similar name β€” untouched.

Screen recordings / screenshots

N/A β€” no visual changes.

What to test

  • Cold start with no wallet β†’ Welcome renders, buttons work, animation plays.
  • Cold start with a wallet β†’ Wallet screen renders, list scrolls, no jank.
  • Onboarding: Welcome β†’ create wallet β†’ Wallet screen, no crashes.
  • Splash hides on first WalletScreen mount (poolboy easter-egg sound still plays once).
  • WalletConnect: deeplink connect + sign roundtrip works.
  • Wallet import from seed phrase end-to-end.
  • Android builds (yarn android) β€” load-bearing test, both removals collide here.
  • iOS: bundle exec pod install drops react-native-performance, yarn ios succeeds.
  • Confirm performance.report and Performance Wallet Initialize Time stop arriving in Amplitude from this build.

… tracker

Two layers of unused infra coming out together:

1. @shopify/react-native-performance β€” unmaintained since Aug 2022,
   upstream main still has the Map<String, Any> override variance bug
   that breaks Android Kotlin compile on RN 0.81+. Drops the lib, the
   patch, the <PerformanceProfiler>/<PerformanceMeasureView> wraps,
   ReactNativePerformance.onAppStarted() in MainApplication.kt, and
   the iOS native module wiring.

2. The in-house PerformanceTracking module (src/performance/) β€” emitted
   the analytics events 'performance.report' and 'Performance Wallet
   Initialize Time' to Rudderstack on prod/staging builds. No
   dashboards or alerts consume them, so the events were write-only.
   Removes the entire src/performance/ tree, all call sites
   (App.tsx, index.js, useApplicationSetup, useHideSplashScreen,
   wallet-connect listeners, initializeWallet), the now-unused
   onReady prop on Routes, and the two event definitions in
   analytics/event.ts.

Net: 649 lines deleted, 10 added. No replacement signal β€” if we want
startup-perf metrics later, Sentry's tracing already covers TTI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant