Spectra

Des clients mobiles natifs pour le panneau d'hébergement Spectra - des applications distinctes pour Android (Kotlin) et iOS (Swift). Gestion complète des serveurs depuis le téléphone : statuts, console, facturation et notifications. Pas un site emballé, mais une interface vraiment native sur chaque plateforme.

Spectra
TL;DR

Spectra est un panneau d'hébergement pour serveurs de jeu. La version mobile n'est pas un site enfermé dans une WebView, mais deux applications natives distinctes : Android en Kotlin et iOS en Swift. Depuis un téléphone, vous faites ce que vous faites dans le panneau du navigateur - vérifier le statut, ouvrir la console, payer une facture. Les notifications push vous disent que le serveur est tombé avant qu'un joueur ne le fasse.

Introduction

Sur le web, Spectra est le centre de commande complet du client : commande de serveurs, console, fichiers, statistiques, facturation. Tout ce dont un administrateur a besoin pour que son serveur Minecraft ou autre reste debout et fonctionne. Le hic, c'est que ce centre de commande est enchaîné au bureau.

Un administrateur ne travaille pas de neuf à dix-sept heures devant un écran. Une panne ne consulte pas le calendrier - elle arrive dans le bus, au déjeuner, au milieu de la nuit, quand le serveur est justement plein de joueurs. Alors une seule chose compte : à quelle vitesse le téléphone dans votre poche vous mène à un redémarrage et à une console avant que les joueurs ne commencent à partir.

C'est pourquoi nous avons construit la version mobile de Spectra comme une vraie façon de piloter la plateforme, et non comme un ajout au panneau web. En pratique, ce sont deux applications distinctes écrites dans le langage natif de chaque plateforme - Android en Kotlin, iOS en Swift - qui s'adressent exactement à la même API que le panneau du navigateur.

Une panne ne demande pas où vous êtes

Quand un serveur tombe en pleine heure de pointe, chaque minute, ce sont des joueurs qui ne reviennent pas. À ce moment-là, vous ne démarrez pas un ordinateur portable, vous ne vous connectez pas au panneau web, vous ne cherchez pas d'onglet. Vous sortez le téléphone que vous tenez déjà en main et vous voulez être sur la console en deux touches.

Cela change ce que l'application doit être. Un outil que vous saisissez dans le stress d'une panne doit se lancer instantanément, réagir sans à-coups et mener au but sans errer dans les menus. Chaque seconde de délai entre le toucher de l'icône et la vue de la console est une seconde où le serveur reste à terre.

➜
Conseil

La WebView n'est pas mauvaise par principe - pour un écran que vous regardez une fois par trimestre, elle peut être un choix raisonnable. La règle que nous suivons dans Spectra : plus vous utilisez un écran souvent et sous pression, plus l'argument pour le natif est fort. La console et un redémarrage de serveur sont exactement de ce côté-là.

Pourquoi pas une page dans un cadre

La voie la plus simple et la moins chère vers le mobile est d'emballer le panneau web existant dans une WebView et de l'envoyer au store comme une "application". Le code est déjà là, il suffit de l'entourer d'une fenêtre. Mais le raccourci se trahit à chaque étape : l'application démarre lentement, parce que le moteur du navigateur doit d'abord se réveiller, perd les gestes natifs, notifie mal ou pas du tout et ressemble à une page dans un cadre mince.

Pour un panneau que l'on touche de temps en temps, ce serait un compromis acceptable. Pour un outil de secours, non. Nous avons donc pris la route la plus difficile : une interface propre et native sur chaque plateforme, qui a l'air et se comporte comme une application de son système, et non la même maquette écrasée à la fois sur Android et iOS.

Une page dans un cadre contre le natif

CaractéristiqueWebViewNatif (Spectra)
Démarrage de l'appattend le moteur du navigateurinstantané
Gestes et défilementsouvent saccadésfluides, au niveau système
Notifications pushlimitéescomplètes, avec un deep link
Accès au systèmederrière un mur de sandboxnatif
Apparenceune page dans un cadreune application de sa plateforme

Temps jusqu'au premier écran utile (illustratif, ms)

WebView
2600
Natif
400

Deux langages, une API

Ce que les deux applications partagent, c'est ce qui se trouve dessous : l'API et le modèle de données. Ce qui diffère, c'est l'interface, car Android et iOS ont leurs propres schémas de navigation, leur propre langage de gestes et leurs propres attentes quant au comportement d'une application. Forcer une seule interface commune sur les deux finit par la faire paraître étrangère sur les deux.

Le point clé, c'est que le client mobile parle à exactement la même API que le panneau web. Il n'y a pas de "version mobile au rabais" aux possibilités réduites - un redémarrage de serveur depuis le téléphone passe par le même contrat qu'un redémarrage depuis le navigateur. Ainsi, sur le téléphone, vous faites vraiment ce que vous faites au bureau, et non un sous-ensemble choisi.

1
Deux applications natives

Android en Kotlin, iOS en Swift ; API et modèle de données communs, une interface propre ajustée aux schémas de chaque plateforme.

2
Console en direct

un flux des journaux du serveur et la saisie de commandes depuis le téléphone, avec un clavier qui ne cache pas la moitié de ce que vous tapez.

3
Statut et actions d'alimentation

démarrer, arrêter, redémarrer et une vue de l'usage des ressources sans recourir au bureau.

4
Facturation

vue des factures et paiement, pour que le serveur n'expire pas juste parce que vous étiez loin de chez vous.

5
Notifications push

le serveur est tombé, la période de facturation se termine, une sauvegarde a échoué ; vous touchez et vous atterrissez sur le bon écran.

Un push qui mène droit à la console

Les notifications ne sont pas une décoration mais le cœur de toute l'idée pour le mobile. Ce sont elles qui vous font apprendre une panne avant le premier joueur. Sans elles, l'application serait une fenêtre passive que vous devez ouvrir vous-même au bon moment - et le bon moment est généralement celui où vous ne savez rien.

Un événement du backend a une forme simple et sans ambiguïté, et c'est cette forme qui décide où un toucher sur la notification vous dépose. Le deep link ne mène pas à un écran d'accueil mais droit à la console du serveur précis qui a un problème. Pas de recherche, pas de navigation - du son du téléphone jusqu'à l'endroit où vous pouvez agir, il y a une seule touche.

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
applications natives distinctes (Android, iOS)
1
API commune pour le web et le mobile
< 1 s
d'une notification push à la console du serveur

Un serveur sauvé depuis un arrêt de bus

Le résultat est un outil qui sauve vraiment un serveur depuis un téléphone, et non un chemin de secours que vous utilisez une fois avant de revenir au portable. L'administrateur reçoit le panneau complet sur le téléphone : statut, console, actions d'alimentation, facturation - et apprend un problème au moment où il survient, pas quand il regarde par hasard.

Du côté de Spectra, le gain est tout aussi concret : le mobile n'est pas un produit séparé qui vit sa propre vie, mais un autre client de la même API. Une nouvelle possibilité dans le backend est accessible depuis le téléphone tout comme depuis le navigateur, sans réécrire la logique une deuxième et une troisième fois. Les chiffres ci-dessus sont illustratifs, mais la direction ne l'est pas.

Une panne viendra de toute façon au pire moment. Le but était que le pire moment ne signifie plus l'impuissance - juste un téléphone sorti de la poche.

Plus de projets

D'autres réalisations de la même catégorie - découvrez comment nous abordons des défis similaires.

Vous avez un projet similaire ?

Contactez-nous - le devis est gratuit et arrive sous une heure.