XBVault Android Port
Status: Shipped in v2.0.0. The Android app is released and working on physical devices — splash, shell, 4 tabs, all overlays, sideload wizard, QR connect, file explorer, logs, jobs and notifications. See the Mobile Guide for end-user instructions and the views matrix for the full view inventory.
Objective
Port the existing Avalonia desktop application to Android, starting with core functionality (Browse, Installed, Connection) and incrementally adding features. The goal is a fully functional Android app that connects to Xbox Dev Mode via the same HTTP/SSH APIs used by the desktop version.
Why Avalonia?
XBVault already uses Avalonia 12 for its desktop UI. Avalonia natively supports Android (net10.0-android), meaning:
- No UI framework rewrite — same AXAML views, same MVVM pattern, same CommunityToolkit.Mvvm ViewModels
- Shared service layer — all Xbox HTTP services, SSH/SFTP, and business logic are cross-platform already
- Single codebase — one project serves desktop and mobile with platform-specific adaptations where needed
Documentation Index
| Document | Description |
|---|---|
| 01-architecture | Project structure, dependency flow, design decisions |
| 02-platform-analysis | Full codebase audit — views, services, ViewModels classified by Android readiness |
| 03-ui-adaptation | Mobile layout changes — navigation, responsive design, dialogs |
| 04-services | Service layer adaptation — HTTP, SSH, file paths, platform-specific code |
| 05-implementation-plan | Phased implementation with tasks, estimates, and acceptance criteria |
| 06-views-matrix | View-by-view adaptation matrix with priority and complexity |
| 07-testing-strategy | Emulator setup, device testing, connection validation |
| 08-build-and-release | Build configuration, CI pipeline, APK generation |
| 09-mobile-ux-design | Complete Android UX spec: screens, tabs, dialogs, icons, colors |
| Developer Architecture Guide | Shared contracts, layer boundaries, threading rules, and cross-frontend guidance |
Quick Summary
| Metric | Value |
|---|---|
Mobile files (XBVault/Views/Mobile*) |
27 — splash, shell, title bar, 4 tabs, wizard shell, 5 dialogs + 14 overlays/screens |
| ViewModels | Shared with desktop — no mobile-specific VM layer |
| Services | 33 implementations — shared with desktop, property-passed from App.axaml.cs |
| Desktop-only | USB permission wizard (hardware) and Inspector (XRay console) |
| Blocking issues | None — safe areas, status-bar icons, URL resolver and SAF content-URI fixes all landed |
Delivery Status
| Phase | Status |
|---|---|
| Phase 0: Project setup | ✅ Done — buildable Android project skeleton |
| Phase 1A: Placeholder | ✅ Done — pre-splash placeholder on emulator |
| Phase 1B: Shell + Splash | ✅ Done — pre-splash, Avalonia splash, MobileMainWindow shell |
| Phase 1C: Mobile views | ✅ Done — browse, detail, about, settings, tools, dialogs |
| Phase 2: Core views | ✅ Done — installed, connection, file explorer, logs |
| Phase 3: Extended features | ✅ Done — sideload wizard, jobs, notifications, loopback, screenshot |
| Phase 4: Polish | ✅ Done — safe areas, status-bar icons, back navigation, QR connect |