Skip to content

Mobile app

The Splintertree companion app is an Android-only client for managing your account, chatting with friends and guildmates, browsing the game database, and reading forum / support tickets. It does not run the game itself; that's still desktop-only via the launcher.

Status: alpha

The shell crate (splintertree-mobile/), the touch-first /m/* route tree, and the Docker / GitHub Actions build pipeline are in place. Distribution channel signups (Play Console, F-Droid inclusion request) are pending the first stable build.

Get the app

We publish the same signed AAB / APK to three channels so you can pick whichever you trust:

Channel Status Notes
Google Play Store Planned (default for most users) One-tap install + auto-updates. Bundle ID dev.luebke.splintertree.mobile.
F-Droid Planned Reproducible-build inclusion via the upstream metadata repo. No Google account needed.
GitHub releases Live for every tagged release Direct AAB + universal APK on the releases page. Side-load with adb install.

The Play Store + F-Droid builds and the GitHub release artifacts come from the same splintertree-mobile/Dockerfile and the same workflow (.github/workflows/mobile.yml); the Play upload is just the same AAB re-signed with the operator's Play upload key.

What it does

  • Account — sign in with email + password (same /api/v1/auth/login the launcher uses), see splintertag, manage 2FA, redeem keycodes, view subscription days remaining.
  • Social — friends list, account-level DMs, and guild chat over the same /api/v1/social/ws WebSocket the launcher uses. Push notifications for inbound DMs / friend requests are delivered via Firebase Cloud Messaging; the device registers its token with POST /api/v1/me/push-token on every sign-in.
  • Database — read-only views of items / quests / NPCs / achievements / guilds / armory.
  • Shop — browse the Splintertoken catalogue and redeem keycodes. Purchases route through the existing web payment gateway so the app doesn't pay the platform store cut.
  • Forum — same forum the web portal serves; reachable from the Account tab.
  • Support tickets — your own tickets only (/api/v1/tickets/mine). No bug-report form; tickets are the single intake channel.

Account creation is intentionally web-only: you sign up at /register on the website (Play Store + email-verification flows make in-app registration painful and the website is the canonical entry point anyway).

Architecture

The mobile app is not a separate frontend codebase. It reuses the Quasar SPA at splintertree-web-frontend/ and enters at the /m route, which mounts MobileLayout.vue with a bottom QTabs nav (Home / Social / Shop / Database / Account). The Tauri shell lives in splintertree-mobile/ and is intentionally minimal: it only exposes ping, version, get_settings, and save_settings over the IPC bridge.

Layer Path Notes
Tauri shell splintertree-mobile/ Cargo + tauri.conf.json, identifier dev.luebke.splintertree.mobile.
UI entry /m in the SPA tauriShell() latches the entry path so router guards route the mobile shell into /m/* and reject /launcher deep-links.
Layout src/layouts/MobileLayout.vue Bottom QTabs, single-column pages, shared --rc-* tokens.
Mobile-only pages src/pages/mobile/Mobile*Page.vue Home feed, Social tabs, DM thread, guild thread, Account hub, Login.
Re-mounted desktop pages src/pages/{Shop,ItemList,QuestList,...,Forum,MyTickets,...}.vue Same component as the web portal, mounted under /m/* so styling, components, and tokens stay shared.

Heavy native commands (Wow.exe launch, full-client patching, addon install) live only in splintertree-launcher and intentionally don't exist on mobile, since the in-game client doesn't run there.

Building it yourself

If you want to build, sign, and publish your own fork of the app (e.g. for a private server), see Build & publish your own.