XBVault Android Port
Status: Phase 1B complete, Phase 2 in progress. Splash, main shell, and 6 mobile views deployed and working on physical device. Catalog browse with item detail functional. Next: Installed, Settings, Tools content, connection, dialogs.
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 views created | 7 — Splash, MainWindow, BrowseView, DetailView, AboutView, SettingsView, ToolsView |
| ViewModels | 24 — all cross-platform, no changes needed |
| Services | 33 implementations — 18 fully compatible, 12 need minor changes, 1 needs major changes (PlatformDialog), 2 not applicable on mobile |
| Platform-specific code | P/Invoke (3 files), WMI (1 file) — all guarded or not-applicable |
| Blocking issues | Launcher icon showing generic (needs adaptive icon fix), native splash logo missing |
Estimated Timeline
| Phase | Duration | 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 views created |
| Phase 2: Core views | In progress | Browse functional, need Installed + Connection |
| Phase 3: Extended features | 5–8 days | File Explorer, full Tools, full Settings, Logs |
| Phase 4: Polish | 3–5 days | Dialogs, notifications, back button, edge cases |