Architecture: How to implement Vitto Mobile app — what technology and arch...
Documentation for Sessions
🏗️ Architecture: How to implement Vitto Mobile app — what technology and arch...
Date: 2026-02-26
Time: 22:06:06 UTC
Session: gspace1-148.2
Agent: angular
Confidence: 95%
Status: ✅ Documented
📋 Decision Context
Question:
How to implement Vitto Mobile app — what technology and architecture?
Task: Implement Vitto Mobile with Capacitor — full App Store pipeline
🎯 Decision Made
Chosen:
Capacitor 8 wrapping existing Angular gograb-ai app. CapacitorBridgeService (runtime plugin access), unified deep link scheme vitto://, safe-area CSS vars, GitHub Actions CI/CD for iOS (xcodebuild + TestFlight) and Android (Gradle + fastlane supply to Google Play). Release script mirrors desktop pattern.
Options Considered:
- Capacitor (wrap existing Angular app)
- Flutter (rewrite in Dart)
- React Native (rewrite in RN)
- Native Swift/Kotlin (separate apps)
💭 Reasoning
Capacitor reuses 100% of existing Angular code (same build output as web/desktop). CapacitorBridgeService already existed from Session 144 with runtime plugin access pattern. Deep link scheme unified to vitto:// matching Tauri desktop. CI/CD pipeline splits web build (cheap ubuntu) from native builds (macOS for iOS, ubuntu for Android) for cost optimization. Release script with 5-file version sync ensures consistency across package.json, build.gradle, project.pbxproj, and environment files.
📁 Files Involved
apps/vitto-mobile/capacitor.config.tsapps/vitto-mobile/ios/App/App/Info.plistapps/vitto-mobile/android/app/src/main/AndroidManifest.xmlapps/gograb-ai/src/app/pages/desktop-welcome/desktop-welcome.component.tsapps/gograb-ai/src/app/core/services/capacitor-bridge.service.tsapps/gograb-ai/src/index.htmlapps/gograb-ai/src/styles.scss.github/workflows/release-vitto-mobile.ymltools/scripts/release/release-vitto-mobile.js
🔗 Related
- Decision ID:
dev_1772143566647_zimiymg - Session: 148
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation