44 lines
3.2 KiB
Markdown
44 lines
3.2 KiB
Markdown
# TODO
|
|
|
|
Remove items from this list once they are done.
|
|
|
|
- check that Android release builds now fit on EAS's default worker (4 vCPUs, 15.6 GB). Three
|
|
builds failed on the Skia step: one stalled in `:shopify_react-native-skia:buildCMakeRelWithDebInfo
|
|
[arm64-v8a]` until EAS's 45-minute limit, two failed with "Gradle build daemon disappeared
|
|
unexpectedly", the last even with Gradle limited to two workers. Cause: a memory regression in
|
|
`@shopify/react-native-skia` 2.14.0 (Expo SDK 58's pin), whose `ViewProperty.cpp` and
|
|
`RNSkPictureView.cpp` include the whole JSI API, so three translation units of ~2.5, 2.6 and
|
|
4.5 GB compile in parallel inside Skia's own ninja build
|
|
([wcandillon/react-native-skia#4284](https://github.com/wcandillon/react-native-skia/pull/4284)).
|
|
Locally under the same limits (`taskset -c 0-3`, a 15 GB no-swap systemd scope) the build peaked at
|
|
13.3 GB of anonymous memory. Fixed in 2.15.2, which the moved project publishes as
|
|
`react-native-skia`, so `package.json` aliases `@shopify/react-native-skia` to
|
|
`npm:react-native-skia@2.15.2` and lists it in `expo.install.exclude`. Drop the alias and the
|
|
exclusion once Expo pins a Skia with the fix
|
|
- check that release builds' source maps make Bugsink's stack traces readable: the upload works
|
|
(build 31's log shows `Uploaded files to Sentry` once `SENTRY_URL` was set in `eas.json`), so
|
|
throw an error in a release build and check for symbolicated frames in Bugsink's `cnapp` project
|
|
- consider turning on R8 for Android release builds (SDK 58 default, disabled via
|
|
`android.enableMinifyInReleaseBuilds: false` in the `expo-build-properties` plugin config in
|
|
`app.json`): smaller APK, but native Android stack traces get obfuscated unless the R8 mapping
|
|
file reaches Bugsink, which doesn't document ProGuard/R8 mapping support. Also check whether
|
|
Sentry needs ProGuard keep rules
|
|
- verify the SDK 58 upgrade on Android: an expiry reminder notification and an error that lands in
|
|
Bugsink
|
|
- check on iOS, with an EAS build or `npm run ios` on macOS: the SDK 58 upgrade (an expiry reminder
|
|
notification, an error that lands in Bugsink), the registration form's birth date wheel
|
|
(`src/components/DateField.tsx`), and a Stripe Checkout purchase, renewal and cancel. Check Apple
|
|
Pay shows inside the auth session (ASWebAuthenticationSession); if not, switch to
|
|
`WebBrowser.openBrowserAsync` plus a `Linking` listener
|
|
- confirm Google Pay on Checkout with a real card in Google Wallet, and that Apple Pay, Google Pay and
|
|
Link are enabled in the Stripe Dashboard's Checkout settings
|
|
- once app versions using the Payment Sheet are gone, drop galtinn's `/api/stripe/payment-sheet/`
|
|
endpoint and its `payment_intent.succeeded` handling
|
|
- explore Expo features:
|
|
- add an iOS 26 liquid glass icon: a `.icon` file made with Apple's Icon Composer,
|
|
referenced from `ios.icon` (old icon remains as fallback for older iOS); optionally
|
|
play with [`expo-glass-effect`](https://docs.expo.dev/versions/latest/sdk/glass-effect/)
|
|
- try [`@expo/ui`](https://docs.expo.dev/versions/latest/sdk/ui/), production-ready as of SDK 56:
|
|
real SwiftUI / Jetpack Compose components that could back the homegrown ones in
|
|
`src/components/`
|