Hermeia

Un messenger di team che gira su Android e iOS da un solo codice. Server, canali, thread, ruoli, DM e gruppi - il set completo, fluido come Telegram. Distribuzione fuori dagli store, sotto il controllo del proprietario.

Hermeia
TL;DR

Hermeia è un messenger pensato per sostituire Discord in un team: server, canali, thread, ruoli, DM e gruppi. Sul telefono deve essere fluido come la concorrenza, perché altrimenti nessuno passa. Android e iOS da un'unica base di codice, e distribuzione fuori dagli store - perciò abbiamo dovuto costruire anche un nostro meccanismo di aggiornamento.

Introduzione

Hermeia è un messenger pensato per sostituire Discord in un team: server con canali, thread, ruoli con permessi, messaggi privati e di gruppo. Un messenger di per sé non è nulla di nuovo - ed è proprio per questo che è difficile.

Le persone non lo confrontano con un ideale astratto ma con il Discord e il Telegram che usano ogni giorno e hanno nelle dita. Se l'elenco delle conversazioni scorre a scatti o aprire un canale richiede un attimo di troppo, il passaggio finisce nella prima settimana, prima che qualcuno apprezzi qualsiasi altra cosa.

L'app per Android e iOS nasce da un'unica base di codice, così che un team mantenga un'unica fonte di verità e non due app che divergono. E poiché Hermeia si diffonde fuori dagli store, a tutto questo si è aggiunto un altro compito: un nostro meccanismo di aggiornamento.

L'asticella la fissa Telegram

Il primo dei due problemi difficili è la fluidità. Qui non c'è sconto: un utente che ogni giorno scorre migliaia di messaggi in Telegram sentirà ogni scatto in una frazione di secondo. L'elenco dei messaggi deve scorrere in modo pulito su una lunga cronologia, e le transizioni tra le schermate devono essere istantanee.

Fluidità dello scorrimento su lunga cronologia (illustrativo, fps)

Una pagina in una WebView
34
Nativo, una base di codice
60

Non è cosmetica che sarebbe "bello avere". Per un messenger la fluidità è una funzione di base - importante quanto il fatto che un messaggio arrivi davvero. Un'app che scatta viene percepita come rotta, anche se fa tutto il resto bene.

Una base di codice e distribuzione senza store

Il secondo problema è la distribuzione. Hermeia si diffonde fuori dagli store ufficiali, quindi non abbiamo il comodo canale di aggiornamento che uno store offre gratis. Poiché nessuno manderà una nuova versione all'utente al posto nostro, dobbiamo farlo noi - e in modo che aggiornare non sia doloroso.

A questo si aggiunge la decisione di un'unica base di codice per entrambe le piattaforme. Mantenere due app separate per Android e iOS è il doppio del lavoro e il doppio dello spazio per una divergenza - una correzione su una piattaforma che non è mai arrivata sull'altra. Un'unica base di codice con logica e modello dei dati comuni toglie questo peso, mentre la rifinitura nativa resta dove la differenza tra piattaforme si vede davvero.

Due app contro una base di codice

AspettoDue app separateUna base di codice (Hermeia)
Manutenzioneil doppio del lavoroun team, una fonte
Rischio di divergenzauna correzione si perde su una piattaformala stessa logica su entrambe
Modello dei datidue volte lo stessocomune
Rifinitura nativaseparatamentenativa dove la differenza si vede
!
Attenzione

La distribuzione fuori dagli store è una scelta deliberata con un prezzo: non ci sono aggiornamenti automatici dallo store, quindi una vecchia versione può restare a lungo sul telefono di qualcuno. Per questo il controllo della versione e un messaggio di aggiornamento chiaro non sono un'aggiunta - sono parte di come funziona l'app.

Il modello completo di Discord, non un sottoinsieme ridotto

Sarebbe facile rilasciare un messenger con metà delle funzioni e aggiungere il resto "dopo". Ma un team che deve passare da Discord confronta uno a uno: se mancano i thread o i ruoli con permessi, lo vede subito e torna al vecchio strumento. Per questo fin dall'inizio abbiamo riprodotto il modello completo che il team usa davvero.

Server con canali, thread, ruoli e permessi, messaggi privati e di gruppo - non è un frammento scelto di Discord, ma l'intero scheletro su cui poggia la comunicazione quotidiana. Senza di esso un "sostituto" è un sostituto solo di nome.

1
Una base di codice, due piattaforme

Android e iOS da un'unica base, logica e modello dei dati comuni, rifinitura nativa dove la differenza tra piattaforme si vede davvero.

2
Il modello completo di Discord

server, canali, thread, ruoli con permessi, DM e gruppi; non un sottoinsieme ridotto, ma ciò che un team usa davvero.

3
La fluidità come requisito, non come desiderio

elenchi di messaggi e canali progettati per uno scorrimento costantemente fluido, senza scatti su lunga cronologia.

4
Un nostro meccanismo di aggiornamento

poiché la distribuzione passa fuori dagli store, l'app controlla se esiste una versione più recente e guida l'utente nell'aggiornamento.

L'aggiornamento che nessuno manderà al posto nostro

All'avvio, il client confronta la propria versione con ciò che il server annuncia e sa se l'aggiornamento è opzionale o richiesto. Il manifesto ha una forma semplice: la versione più recente, la più bassa ancora supportata, gli indirizzi dei pacchetti e un flag che indica se l'aggiornamento è obbligatorio.

La distinzione tra opzionale e richiesto è qui la chiave. Una piccola correzione può aspettare che l'utente decida da sé. Ma un cambiamento che rompe la compatibilità con il vecchio protocollo deve essere forzato - altrimenti una parte del team resta bloccata su una versione che ha smesso di dialogare con il resto.

update-manifest.json · json
{
  "latest": "1.8.0",
  "minSupported": "1.6.0",
  "android": "https://dl.hermeia.app/android/1.8.0.apk",
  "ios": "https://dl.hermeia.app/ios/1.8.0.ipa",
  "mandatory": false
}
1
base di codice per Android e iOS
60 fps
obiettivo per uno scorrimento fluido degli elenchi
2
canali di rilascio: opzionale e richiesto

Vince non restando indietro

Hermeia non vince con una nuova idea di messenger - vince non restando indietro rispetto a ciò che le persone già conoscono sul telefono, e restando sotto il controllo del proprietario invece di dipendere da uno store. È la forma silenziosa della qualità: non salta all'occhio finché funziona, e salterebbe subito se non funzionasse.

La fluidità e un percorso di aggiornamento gestito in proprio sono due cose che si rimandano più facilmente "a dopo", e che poi si fanno vive al primo cambiamento serio. Le abbiamo costruite fin dall'inizio, perché in un messenger non sono aggiunte - sono il fondamento su cui poggia tutto il resto.

Nessuno passa a un messenger perché ha un bel menu. Ci si passa quando per una settimana non si pensa nemmeno una volta al fatto di usare qualcosa di nuovo.

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.