Hermeia

Ein Team-Messenger, der aus einem Code auf Android und iOS läuft. Server, Kanäle, Threads, Rollen, DMs und Gruppen - der volle Satz, flüssig wie Telegram. Verteilung außerhalb der Stores, unter Kontrolle des Eigentümers.

Hermeia
TL;DR

Hermeia ist ein Messenger, der Discord für ein Team ersetzen soll: Server, Kanäle, Threads, Rollen, DMs und Gruppen. Auf dem Telefon muss er so flüssig sein wie die Konkurrenz, denn sonst wechselt niemand. Android und iOS aus einer Codebasis, und Vertrieb außerhalb der Stores - also mussten wir auch einen eigenen Aktualisierungsmechanismus bauen.

Einführung

Hermeia ist ein Messenger, der Discord für ein Team ersetzen soll: Server mit Kanälen, Threads, Rollen mit Rechten, private und Gruppennachrichten. Ein Messenger ist an sich nichts Neues - und genau deshalb ist er schwer.

Die Leute vergleichen ihn nicht mit einem abstrakten Ideal, sondern mit Discord und Telegram, die sie täglich nutzen und in den Fingern haben. Wenn die Gesprächsliste ruckelnd scrollt oder das Öffnen eines Kanals einen Tick zu lange dauert, ist der Wechsel in der ersten Woche vorbei, bevor jemand irgendetwas anderes zu schätzen lernt.

Die App für Android und iOS entsteht aus einer Codebasis, damit ein Team eine einzige Quelle der Wahrheit pflegt und nicht zwei auseinanderdriftende Apps. Und da sich Hermeia außerhalb der Stores verbreitet, kam zu all dem noch eine Aufgabe hinzu: ein eigener Aktualisierungsmechanismus.

Die Latte legt Telegram

Das erste der beiden schweren Probleme ist die Flüssigkeit. Hier gibt es keinen Rabatt: Ein Nutzer, der täglich Tausende Nachrichten in Telegram scrollt, spürt jedes Ruckeln im Bruchteil einer Sekunde. Die Nachrichtenliste muss bei langer Historie sauber scrollen und die Übergänge zwischen Bildschirmen müssen sofort sein.

Scroll-Flüssigkeit bei langer Historie (illustrativ, fps)

Seite im WebView
34
Nativ, eine Codebasis
60

Das ist keine Kosmetik, die man "nett zu haben" fände. Für einen Messenger ist Flüssigkeit eine Grundfunktion - so wichtig wie die Tatsache, dass eine Nachricht überhaupt ankommt. Eine App, die ruckelt, wird als kaputt wahrgenommen, selbst wenn sie alles andere gut macht.

Eine Codebasis und Vertrieb ohne Store

Das zweite Problem ist der Vertrieb. Hermeia verbreitet sich außerhalb der offiziellen Stores, also haben wir nicht den bequemen Aktualisierungskanal, den ein Store gratis liefert. Da uns niemand eine neue Version an den Nutzer schickt, müssen wir es selbst tun - und zwar so, dass die Aktualisierung nicht schmerzhaft ist.

Dazu kommt die Entscheidung für eine Codebasis für beide Plattformen. Zwei getrennte Apps für Android und iOS zu pflegen, ist doppelte Arbeit und doppelter Raum für Abweichung - eine Korrektur auf einer Plattform, die nie auf der anderen ankam. Eine einzige Codebasis mit gemeinsamer Logik und Datenmodell nimmt dieses Gewicht, während das native Finish dort bleibt, wo der Plattformunterschied wirklich sichtbar wird.

Zwei Apps gegen eine Codebasis

AspektZwei getrennte AppsEine Codebasis (Hermeia)
Wartungdoppelte Arbeitein Team, eine Quelle
Abweichungsrisikoeine Korrektur geht auf einer Plattform verlorendieselbe Logik auf beiden
Datenmodellzweimal dasselbegemeinsam
Natives Finishgetrenntnativ, wo der Unterschied sichtbar ist
!
Achtung

Vertrieb außerhalb der Stores ist eine bewusste Wahl mit einem Preis: Es gibt keine automatischen Store-Aktualisierungen, also kann eine alte Version lange auf jemandes Telefon sitzen. Deshalb sind die Versionsprüfung und ein klarer Aktualisierungshinweis kein Zusatz - sie sind Teil davon, wie die App funktioniert.

Das volle Discord-Modell, keine beschnittene Teilmenge

Es wäre leicht, einen Messenger mit der Hälfte der Funktionen auszuliefern und den Rest "später" nachzureichen. Aber ein Team, das von Discord wechseln soll, vergleicht eins zu eins: Fehlen Threads oder Rollen mit Rechten, sieht es das sofort und kehrt zum alten Werkzeug zurück. Deshalb haben wir von Anfang an das volle Modell abgebildet, das das Team wirklich nutzt.

Server mit Kanälen, Threads, Rollen und Rechte, private und Gruppennachrichten - das ist kein ausgewähltes Fragment von Discord, sondern das ganze Gerüst, auf dem die tägliche Kommunikation ruht. Ohne es ist ein "Ersatz" nur dem Namen nach ein Ersatz.

1
Eine Codebasis, zwei Plattformen

Android und iOS aus einer einzigen Basis, gemeinsame Logik und Datenmodell, natives Finish dort, wo der Plattformunterschied wirklich sichtbar ist.

2
Das volle Discord-Modell

Server, Kanäle, Threads, Rollen mit Rechten, DMs und Gruppen; keine beschnittene Teilmenge, sondern das, was ein Team wirklich nutzt.

3
Flüssigkeit als Anforderung, nicht als Wunsch

Nachrichten- und Kanallisten, ausgelegt auf durchgehend flüssiges Scrollen, ohne Ruckeln bei langer Historie.

4
Eigener Aktualisierungsmechanismus

da der Vertrieb außerhalb der Stores läuft, prüft die App, ob eine neuere Version existiert, und führt den Nutzer durch die Aktualisierung.

Die Aktualisierung, die niemand für uns schickt

Beim Start vergleicht der Client seine Version mit dem, was der Server bekanntgibt, und weiß, ob die Aktualisierung optional oder erforderlich ist. Das Manifest hat eine einfache Form: die neueste Version, die niedrigste noch unterstützte, Paketadressen und ein Flag, ob die Aktualisierung verpflichtend ist.

Die Unterscheidung zwischen optional und erforderlich ist hier entscheidend. Eine kleine Korrektur kann warten, bis der Nutzer selbst entscheidet. Aber eine Änderung, die die Kompatibilität mit dem alten Protokoll bricht, muss erzwungen werden - sonst bleibt ein Teil des Teams auf einer Version hängen, die sich nicht mehr mit dem Rest verständigt.

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
Codebasis für Android und iOS
60 fps
Ziel für flüssiges Listen-Scrollen
2
Release-Kanäle: optional und erforderlich

Es gewinnt, indem es nicht hinterherhinkt

Hermeia gewinnt nicht mit einer neuen Idee für einen Messenger - es gewinnt, indem es auf dem Telefon nicht hinter dem zurückbleibt, was die Leute kennen, und unter der Kontrolle des Eigentümers bleibt, statt von einem Store abzuhängen. Das ist die stille Art von Qualität: Sie fällt nicht auf, solange sie funktioniert, und sie fiele sofort auf, wenn sie es nicht täte.

Flüssigkeit und ein selbst betriebener Aktualisierungsweg sind zwei Dinge, die man am leichtesten "auf später" verschiebt und die einem dann bei der ersten ernsteren Änderung auf die Füße fallen. Wir haben sie von Anfang an gebaut, denn in einem Messenger sind das keine Zusätze - es ist das Fundament, auf dem alles andere steht.

Niemand wechselt zu einem Messenger, weil er ein hübsches Menü hat. Man wechselt, wenn man eine Woche lang kein einziges Mal daran denkt, dass man etwas Neues benutzt.

Weitere Projekte

Weitere Projekte aus derselben Kategorie - sehen Sie, wie wir ähnliche Herausforderungen angehen.

Haben Sie ein ähnliches Projekt?

Melden Sie sich - ein Angebot ist kostenlos und kommt innerhalb einer Stunde.