Was hinter dem Offline-App-Framework steckt

Unter der Haube: Interview mit den Hoodie-Entwicklern
Kommentare

Mit der neuartigen JavaScript-Bibliothek Hoodie.js sollen sich offline-fähige Apps mit LocalStorage, SignIn, Datenfreigabe und so weiter so einfach erstellen lassen wie hübsche DOMs mit jQuery. Das Backend kann man sich auf diesem Wege ersparen. Wie genau man sich das vorstellen muss, erläutern uns die Entwickler im Interview.

PHP Magazin: Eine „Architektur für Frontend-Only-Web-Apps“ soll Hoodie werden. Was dürfen wir uns darunter vorstellen?

Hoodie-Team: Wenn man heute ein App entwickeln möchte, die Nutzerkonten hat, dann braucht man ein Backend. Man startet für gewöhnlich mit der Entwicklung bzw. Einrichtung des Backends, sei es z.B. PHP, Ruby oder Java. Mit Hoodie wollen wir diesen Schritt praktisch eliminieren. Wer eine neue Hoodie-App über das Terminal erzeugt kann Sekunden später aus dem Browser heraus Nutzer anlegen und Daten speichern, ohne sich einmal mit einem Server, einem Backend oder einer Datenbank befassen zu müssen. Wer jQuery benutzen kann und sich ein Wenig mit dem Terminal auskennt, kann mit Hoodie komplette Webapps bauen und deployen. Und zwar extrem schnell, mit Syncing und Offline-Fähigkeiten. Es gibt natürlich ein Backend, aber in sehr vielen Fällen wird man sich dank Hoodie einfach nicht darum kümmern müssen.

PHP Magazin: Besonders die Design-Entscheidungen sollen dabei den Unterschied zwischen dem älteren Kanso und Hoodie ausmachen. Jan hatte dazu in Hacker News schon geschrieben: „One of the fun things about Hoodie is that there is nothing technically new in it. Existing ideas and tools are just put together a different way.“ Könnt Ihr das noch einmal erläutern?

Hoodie-Team: Hoodie besteht prinzipiell aus Apache CouchDB, Node.js-Modulen und einem kleinen Wrapper um localStorage herum. Soweit nichts Besonderes. Spannend ist, wie Hoodie diese Elemente verbindet: Wir haben nicht einen Client, der über ein Backend Daten in eine Datenbank schreibt, sondern einen Client, der seine eigenen Daten über REST direkt in eine CouchDB synct, wo sie dann von den Node-Modulen bearbeitet und über REST wieder zurück in den Client gesynct werden.

Der Hoodie-Client ruft also nicht direkt Funktionen auf dem Server auf, sondern hinterlässt nur Anweisungen in der CouchDB, was uns eine gute Lösung für Offline-Modi und Syncing gibt. Wir müssen nicht warten und schauen, ob z.B. das Senden einer E-Mail wegen Netzausfall gescheitert ist, und die erneuten Versuche selber regeln. Wir sagen der Hoodie-API: „Sende diese E-Mail“, und das wird, sobald wieder Netz da ist, in der remote CouchDB landen, wo das E-Mail-Modul dann sieht, dass es etwas zu tun hat.

Diese lose Kopplung sorgt auch für sehr gute Erweiterbarkeit. Eigene Module müssen nur auf Events aus der CouchDB hören und dorthin wieder zurückschreiben, anstatt direkt mit den anderen Modulen oder dem Client zu kommunizieren. Auch praktisch: Alles, was man mit Hoodie baut, ist JavaScript, und die Daten sind immer JSON.

PHP Magazin: Was sind die ersten Probleme, die man mit Hoodie lösen wird? Welcher Typ Anwendungen wird dadurch schneller umsetzbar als mit alternativen Lösungen?

Hoodie-Team: Für den Anfang kümmern wir uns um möglichst einfaches User- und Datenmanagement, zusammen mit sehr schnellem Setup und bequemem Deployment. Da Hoodie seine Komponenten wie gesagt lose aneinanderkoppelt und serverseitig mit Modulen (Node.js/npm) erweiterbar ist, lassen sich komplexere Anforderungen prinzipiell jetzt schon realisieren.

PHP Magazin: Welche Funktionalitäten wird Hoodie in Zukunft dazulernen?

Hoodie-Team: Es geht bei Hoodie gar nicht um besonders spezifische Fähigkeiten, wir möchten einfach eine solide Basis bieten, die einem viele grundlegende Funktionen abnimmt, die man bei der App-Entwicklung immer wieder braucht. Gerade arbeiten wir an einem Sharing-Modul, da Daten in Hoodie per default usergebunden und privat sind. Wir möchten Hoodie außerdem demnächst noch mit einem OAuth- und einem Payments-Modul ausstatten, um dem „build on a weekend, receive payments on Monday“-Gedanken gerecht werden zu können.

PHP Magazin: Wie kam es zu dem Namen „Hoodie“?

Hoodie-Team: Wie so oft in Zeiten des Internets: es war einer der wenigen Namen die wir mochten, für den noch eine gute URL verfügbar war: http://hood.ie

PHP Magazin: Vielen Dank!

Das Interview entstand via E-Mail unter Zusammenarbeit des gesamten Hoodie-Teams. Dazu gehört in erster Linie ein Trio aus jungen, selbstständigen Entwicklern: Jan Lehnardt (CouchDB), Gregor Martynus (minutes.io, task.li) und Alex Feyerke (Front-End allgemein).

Jan Lehnardt ist Open Source Software Entwickler. Er arbeitet an allen Teilen des Web-Stacks und spezialisiert sich darauf, Dinge für alle einfacher zu machen. Er ist ein Kern-Entwickler von Apache CouchDB, ein Mitorganisator der JSConf EU und lebt in Berlin.
Gregor Martynus übersetzt Probleme und Chancen des Alltags ein einfach zu bedienende Apps, zuletzt mit minutes.io und task.li. Daneben arbeitet er als Freelancer und lebt derzeit in Zürich.
Alex Feyerke ist freiberuflicher Web-Generalist mit Front-End-Schwerpunkt und arbeitet teils mit großen Agenturen, teils mit kleinen Design-, Mode- und Kunstprojekten zusammen. Er lebt und arbeitet in Berlin.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -