Files
cnapp/TODO.md
T

2.8 KiB

TODO

Remove items from this list once they are done.

  • upload source maps to Bugsink so release-build stack traces are symbolicated (until then they're minified): create an auth token in Bugsink and set SENTRY_AUTH_TOKEN as an EAS secret — the Sentry plugin config in app.json (url/organization/project) is already set up for the upload. Needs Bugsink ≥ 2.0.14; verify the project slug in Bugsink matches cnapp
  • 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 devices: an expiry reminder notification and an error that lands in Bugsink, on Android and an iOS EAS build
  • verify the Stripe Checkout purchase flow end to end (needs galtinn deployed with /api/stripe/checkout-session/app/ first): a test-mode purchase on Android and iOS with 4242…, a card that requires 3D Secure and a cancel, checking the app lands back on the proof with the right toast. Check Apple Pay shows inside the iOS auth session (ASWebAuthenticationSession); if not, switch to WebBrowser.openBrowserAsync plus a Linking listener. Confirm Google Pay 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
  • test in ios emulator? (npm run ios, requires macOS)
  • characters in the password input field are invisible
  • ask for date of birth and place of study when registering: galtinn now requires them on its web sign-up and profile forms, but /api/user/register/ still treats them as read-only, so users registered in the app must fill them in before they can save their profile on the web. Needs galtinn's register serializer to accept them first
  • use Expo Application Services to build and submit app to stores
  • 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
    • try @expo/ui, production-ready as of SDK 56: real SwiftUI / Jetpack Compose components that could back the homegrown ones in src/components/