The Android shell is scaffolded, branded, and builds in the cloud
(.github/workflows/android.yml → produces an AAB artifact). What's below is the
remaining native work, in rough priority order. Each item is independent and
testable on its own; none blocks producing a first (debug) AAB.
See docs/CAPACITOR.md for how the shell works (remote-URL mode) and
docs/PLAY_LAUNCH.md for the store-submission checklist.
- Run the Android build workflow (Actions tab → "Android build" → Run
workflow). Downloads an
app-debug.aabartifact — proof the project builds. - (For a Play-ready bundle) create an upload keystore and add the four
ANDROID_*repo secrets (see the header ofandroid.yml); re-run to get a signedapp-release.aab.
Swapped the web <input capture> for @capacitor/camera inside the native
shell. The biggest UX upgrade AND what lifts the eventual iOS app above Apple's
"just a website" bar.
-
src/app/(app)/aufnahme/native-camera.ts—isNativeApp()+getNativePhoto(); the photo is returned as a File and flows through the EXACT sameprocessOnepipeline (compress → hash → upload toraw-photos→ finalize). Privacy/redaction path unchanged. -
use-capture.ts—openCamera/openGallerybranch native-vs-web; the bridge is dynamically imported so@capacitor/*never weighs on the web bundle. -
CAMERAadded toAndroidManifest.xml(declared now that the plugin is used). Gallery uses the system photo picker — no storage permission. - iOS: add the
NSCameraUsageDescription/NSPhotoLibraryUsageDescriptionusage strings (already drafted indocs/STORE_PRIVACY.md §5) in the iOS phase.
Make invite + set-password links open the APP, not the system browser (fixes the
known issue in GO_LIVE_CHECKLIST.md).
- Host
/.well-known/assetlinks.jsonat the live domain (needs the app's signing-cert SHA-256 — available after the keystore exists). - Configure intent filters +
@capacitor/appappUrlOpenhandling to route/auth/callbackand/set-passwordinto the WebView.
Current push is Web Push/VAPID (src/lib/push.ts), which works for the installed
PWA but not a native iOS app. Native needs FCM (Android) / APNs (iOS).
- Add an FCM/APNs token path: a
device_tokenstable (or akindcolumn onpush_subscriptions) since native gives a token, not a web-push endpoint. -
pushToOrgfans out to BOTH web-push subs and native tokens. -
@capacitor/push-notificationsregister + permission flow; addPOST_NOTIFICATIONSto the manifest when wired. - FCM project +
google-services.json; APNs key for the iOS phase.
-
npx cap add ios(same project),apple-app-site-association, the camera usage strings, APNs. Apple Developer account ($99/yr). Seedocs/STORE_PRIVACY.mdfor the already-written Apple privacy label.
- Apply migration
0023in the Supabase SQL editor — reflections can't publish on prod until then (docs/PLAY_LAUNCH.md). - Google Play account + the 14-day / 12-tester closed test — the launch
long-pole; start it early (
docs/PLAY_LAUNCH.md §0). - Cover-image feature + the runtime-AI-EU decision remain separate,
post-launch topics (
docs/COVER_IMAGES_SPEC.md).