Inversion of Control in Drupal

Inversion of Control: Lässt sich das Open Web so noch retten?
Kommentare

Native Apps glänzen durch eine hohe UX. Drupal versucht durch Inversion of Control für Web Apps eine ähnliche UX wie bei nativen Apps zu erreichen. Mit dem Plugin Ember wird nicht nur eine dynamische Aktualisierung, sondern auch die Implementierung von APIs möglich.

Es ist eine Binsenweisheit, aber das Internet ist nicht mehr der freie Ort, den man sich vorstellt: Viele der meistbesuchten Dienste sind Walled Gardens – und insbesondere native Apps dienen oft als Gatekeeper von abgeschirmten Technologieplattformen. Dies widerspricht ganz grundsätzlich dem Ideal eines öffentlichen, dezentralen und inklusiven Internets, das sich stattdessen in Web Apps verwirklicht sieht.

Native Apps vs Web Apps

Der Erfolg von nativen Apps ist jedoch unbestreitbar und liegt an ihrer Performance auf dem Device sowie ihrer positiven User Experience. Beides hat vor allem damit zu tun, dass Hardware-APIs für Mikrofon, Kamera, Fingerabdrucksensor oder GPS den vollen Zugriff auf die Funktionen eines Smartphones ermöglichen. Im Fall von Web Apps reicht die Erschließung dieser Funktionalitäten immer noch nicht an die Power von nativen Apps heran. Allerdings muss eine Web App in der Regel nicht erst heruntergeladen, installiert und gestartet werden.

Die Vor- und Nachteile ließen sich noch sehr lang weiter diskutieren. Das Ziel muss jedoch sein, dass Web Apps in puncto UX die Qualität von nativen Apps erreichen. Das jedenfalls meint Drupal-Erfinder Dries Buytaert. Denn für ihn wäre es ein Schnellschuss, eine positive UX gegen ein freies Internet auszuspielen.

Doch für Buytaert ist eine Änderung in Sicht. Die Vorzüge von nativen Apps sind nämlich seiner Meinung technisch auch für Web Apps umsetzbar, ohne dabei die dezentrale, öffentliche und inklusive Natur des Open Webs zu gefährden.

Inversion of Control als Lösung?

Buytaert macht sich seinem Blog für die Implementierung der sogenannten Inversion of Control in das CMS Drupal stark. Bei dieser inzwischen erfolgreich umgesetzten Technik wird das Gerät des Users zum Controller. Mithilfe des JavaScript-Frameworks Ember werden die Prozesse auf Seiten der Anwender durchgeführt. Der Client erhält die Kontrolle und muss nicht mehr auf die Antwort vom Server warten.

Damit verschwinden gleich mehrere Nachteile der Web Apps. Zunächst werden flüssige Übergänge innerhalb der Website ermöglicht. Gleichzeitig gibt es die Option, spielerische und interaktive Übergänge in einer Website zu schaffen. Web Apps sind für den User so kaum noch unterscheidbar von nativen Apps.

Möglich wird auch die Einbindung von APIs wie Kamera oder Fingerabdrucksscannern in Web Apps. Außerdem wird so eine asynchrone Aktualisierung des Seiteninhalts möglich. Es muss nicht mehr die ganze Seite neugeladen werden, was die erfahrene Leistung auf Userseiten erhöht. User erhalten so einen Offline-Zugang zu Bereichen der Website und viele Inhalte können auf ihrem Gerät gespeichert werden.

Ember übernimmt das Laden und die Kontrolle über die aufzurufende URL. Drupal sendet den Input und Ember rendert die entsprechenden Websites. Drupal soll so die Rolle eines zentralen Aufbewahrungsortes für den Content zukommen. Die umfangreichen Details der Interaktion von Drupal und Ember lassen auf YouTube in Augenschein nehmen:

Während der User die Vorzüge einer nativen App genießt, bleiben laut Buytaert etwa die umfangreichen Render- und Editor-Fähigkeiten von Drupal erhalten. Über Ember-Applikationen wie CardStack Editor, lässt sich auf die Werkzeuge von Drupal zugreifen. Dabei gibt es eine bemerkenswerte Begleiterscheinung. In Apps wie CardStack Editor werden Frontend und Backend letztlich „decoupled“, also entkoppelt.

Drupal: Konzentration auf JavaScript & Ember

Es gibt laut Buytaert allerdings auch noch einige Hürden auf dem Weg: Andere Drupal-Module wie RefreshLess können nicht mit Ember kombiniert werden. Ein weiteres Problem ist die Parallelexistenz von JavaScript und AJAX in Drupal. Als Konsequenz daraus fordert Buytaert deswegen eine Entscheidung: Damit Drupal eine ernsthafte Konkurrenz zu nativen Apps werden kann, müsste sich auf JavaScript und Ember konzentriert werden.

Ob so eine Entscheidung für ein Open-Web-Projekt nicht vorschnell ist und die völlige Entkopplung von Frontend und Backend unausweichlich sind, sind spannende Fragen, die es zu beantworten gilt.

JavaScript Days 2017

Architektur mit JavaScript

mit Golo Roden (the native web)

JavaScript Testing in der Praxis

mit Dominik Ehrenberg (crosscan) und Sebastian Springer (MaibornWolff)

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -