Spectra

Client mobili nativi per il pannello di hosting Spectra - app separate per Android (Kotlin) e iOS (Swift). Gestione completa dei server dal telefono: stati, console, fatturazione e notifiche. Non un sito impacchettato, ma un'interfaccia davvero nativa su ogni piattaforma.

Spectra
TL;DR

Spectra è un pannello di hosting per server di gioco. La versione mobile non è un sito chiuso in una WebView, ma due app native separate: Android in Kotlin e iOS in Swift. Dal telefono fai quello che fai nel pannello del browser - controlli lo stato, apri la console, paghi una fattura. Le notifiche push ti dicono che il server è caduto prima che lo faccia un giocatore.

Introduzione

Sul web, Spectra è il centro di comando completo del cliente: ordine dei server, console, file, statistiche, fatturazione. Tutto ciò di cui un amministratore ha bisogno per tenere in piedi e funzionante il suo server Minecraft o di altri giochi. Il problema è che questo centro di comando è incatenato alla scrivania.

Un amministratore non lavora dalle nove alle diciassette davanti a un monitor. Un guasto non guarda il calendario - arriva sull'autobus, a pranzo, nel cuore della notte, quando il server è proprio pieno di giocatori. Allora conta una cosa sola: quanto in fretta il telefono in tasca ti porta a un riavvio e a una console prima che i giocatori comincino ad andarsene.

Per questo abbiamo costruito la versione mobile di Spectra come un modo a pieno titolo di gestire la piattaforma, non come un'aggiunta al pannello web. In pratica sono due app separate scritte nel linguaggio nativo di ciascuna piattaforma - Android in Kotlin, iOS in Swift - che si rivolgono esattamente alla stessa API del pannello del browser.

Un guasto non chiede dove ti trovi

Quando un server cade nel bel mezzo del prime time, ogni minuto sono giocatori che non tornano. In quel momento non avvii un portatile, non accedi al pannello web, non cerchi una scheda. Tiri fuori il telefono che hai già in mano e vuoi essere sulla console in due tocchi.

Questo cambia ciò che l'app deve essere. Uno strumento a cui ricorri nello stress di un guasto deve avviarsi all'istante, rispondere senza scatti e portare all'obiettivo senza vagare tra i menu. Ogni secondo di ritardo tra il tocco dell'icona e la vista della console è un secondo in cui il server resta a terra.

➜
Suggerimento

La WebView non è cattiva per principio - per una schermata che guardi una volta a trimestre può essere una scelta ragionevole. La regola che seguiamo in Spectra: più spesso e più sotto pressione usi una schermata, più forte è il motivo per il nativo. La console e un riavvio del server stanno esattamente da quella parte.

Perché non una pagina in una cornice

La via più semplice ed economica verso il mobile è avvolgere il pannello web esistente in una WebView e mandarlo allo store come "app". Il codice è già lì, basta circondarlo con una finestra. Ma la scorciatoia si tradisce a ogni passo: l'app si avvia lentamente, perché prima deve svegliarsi il motore del browser, perde i gesti nativi, notifica male o per niente e sembra una pagina in una cornice sottile.

Per un pannello che tocchi ogni tanto sarebbe un compromesso accettabile. Per uno strumento di soccorso no. Così abbiamo preso la strada più difficile: un'interfaccia propria e nativa su ciascuna piattaforma, che appare e si comporta come un'app del suo sistema, non lo stesso mockup schiacciato su Android e iOS insieme.

Una pagina in una cornice contro il nativo

CaratteristicaWebViewNativo (Spectra)
Avvio dell'appattende il motore del browseristantaneo
Gesti e scorrimentospesso a scattifluidi, a livello di sistema
Notifiche pushlimitatecomplete, con un deep link
Accesso al sistemadietro un muro di sandboxnativo
Aspettouna pagina in una corniceun'app della sua piattaforma

Tempo fino alla prima schermata utile (illustrativo, ms)

WebView
2600
Nativo
400

Due linguaggi, una API

Ciò che le due app condividono è quello che sta sotto: l'API e il modello dei dati. Ciò che differisce è l'interfaccia, perché Android e iOS hanno i propri schemi di navigazione, il proprio linguaggio dei gesti e le proprie aspettative su come un'app debba comportarsi. Forzare un'unica interfaccia comune su entrambi finisce col farla sembrare estranea su entrambi.

Il punto chiave è che il client mobile parla esattamente con la stessa API del pannello web. Non c'è una "versione mobile ridotta" dalle possibilità tagliate - un riavvio del server dal telefono passa per lo stesso contratto di un riavvio dal browser. Così sul telefono fai davvero ciò che fai alla scrivania, e non un sottoinsieme scelto.

1
Due app native

Android in Kotlin, iOS in Swift; API e modello dei dati comuni, un'interfaccia propria adattata agli schemi di ciascuna piattaforma.

2
Console dal vivo

un flusso dei log del server e l'immissione di comandi dal telefono, con una tastiera che non copre metà di ciò che scrivi.

3
Stato e azioni di alimentazione

avvio, arresto, riavvio e una vista dell'uso delle risorse senza ricorrere al desktop.

4
Fatturazione

vista delle fatture e pagamento, perché il server non scada solo perché eri lontano da casa.

5
Notifiche push

il server è caduto, il periodo di fatturazione sta finendo, un backup è fallito; tocchi e atterri sulla schermata giusta.

Un push che porta dritto alla console

Le notifiche non sono un ornamento ma il cuore dell'intera idea per il mobile. Sono loro che ti fanno sapere di un guasto prima del primo giocatore. Senza di esse l'app sarebbe una finestra passiva che devi aprire tu stesso al momento giusto - e il momento giusto è di solito quello in cui non sai nulla.

Un evento del backend ha una forma semplice e inequivocabile, ed è quella forma a decidere dove ti deposita un tocco sulla notifica. Il deep link non porta a una schermata iniziale ma dritto alla console del server preciso che ha un problema. Nessuna ricerca, nessuna navigazione - dal suono del telefono al punto in cui puoi agire c'è un solo tocco.

push-event.json · json
{
  "type": "server.down",
  "serverId": "srv_4192",
  "serverName": "SkyPvP",
  "severity": "critical",
  "deepLink": "spectra://servers/srv_4192/console",
  "at": "2026-09-10T02:14:09Z"
}
2
app native separate (Android, iOS)
1
API comune per web e mobile
< 1 s
da una notifica push alla console del server

Un server salvato da una fermata dell'autobus

Il risultato è uno strumento che salva davvero un server dal telefono, non un percorso d'emergenza che usi una volta per poi tornare al portatile. L'amministratore riceve il pannello completo sul telefono: stato, console, azioni di alimentazione, fatturazione - e viene a sapere di un problema nel momento in cui accade, non quando guarda per caso.

Dal lato di Spectra il guadagno è altrettanto concreto: il mobile non è un prodotto separato che vive di vita propria, ma un altro client della stessa API. Una nuova possibilità nel backend è raggiungibile dal telefono proprio come dal browser, senza riscrivere la logica una seconda e una terza volta. I numeri qui sopra sono illustrativi, ma la direzione no.

Un guasto arriverà comunque nel momento peggiore. Il punto era che il momento peggiore non significasse più impotenza - solo un telefono tirato fuori dalla tasca.

Altri progetti

Altri lavori della stessa categoria - scopri come affrontiamo sfide simili.

Hai un progetto simile?

Contattaci - il preventivo è gratuito e arriva entro un'ora.