Cross-Plattform-Entwicklung mit dem Intel XDK in HTML5 und JavaScript

Angesichts des wachsenden Dschungels unterschiedlicher Plattformen wird es immer wichtiger, Code zu schreiben, der sich in allen Welten nutzen lässt. Das Intel XDK versammelt Entwicklerwerkzeuge, um diesem Ziel mit HTML5 und JavaScript näher zu kommen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 15 Min.
Von
  • Gregor Biswanger
Inhaltsverzeichnis

Angesichts des wachsenden Dschungels unterschiedlicher Plattformen wird es immer wichtiger, Code zu schreiben, der sich in allen Welten nutzen lässt. Das Intel XDK versammelt Entwicklerwerkzeuge, um diesem Ziel mit HTML5 und JavaScript näher zu kommen.

Nicht ohne Grund nimmt das Interesse an HTML5 und JavaScript nicht ab. Die Skriptsprache ist noch lange nicht so stark und effektiv wie etablierte Sprachen. Dennoch gewinnt sie in einem Punkt: Sie läuft auf allen gängigen Plattformen ohne zusätzliche Plug-ins. Zudem existieren heute zahlreiche JavaScript-Frameworks, die es erleichtern, komplexe Anwendungen mit der Sprache zu schreiben. Es wird also zunehmend einfacher für den Entwickler.

Brachengrößen wie Facebook und Twitter machen vor, wie sich Webseiten durch Responsive Webdesign so aufbauen lassen, dass sie schnell wie eine Web-App agieren. Durch diese Technik passt sich die Oberfläche einer Anwendung automatisch der Gerätegröße an, sodass sie wie für das Device entwickelt wirkt.

Solch eine Herangehensweise stellt eine elegante Lösung dar, um alle Plattformen abzudecken. Wieso sollte man also überhaupt noch in eine App investieren? Auch hierauf können die Konzerne eine Antwort geben. Eine native App ermöglicht es, die Systemschnittstellen zu nutzen. So lassen sich etwa Benutzer plattformübergreifend über neue Inhalte informieren – selbst wenn die App gerade nicht geöffnet ist. Dazu kommt die Integration der Kamera. Schnell berührt der Nutzer innerhalb der App den Foto-Button, schießt ein Bild und die Anwendung veröffentlicht es automatisch im sozialen Netz.

Ein Beispiel abseits der Netzwerke ist die berühmte Taschenlampen-App, die durch ein dauerhaftes Aktiveren des Blitzlichts im Dunkeln weiterhilft. Kurz gesagt, eine App verbindet Plattform und Hardware, als wenn sie aus einem Guss wären.

Es gibt unterschiedliche Typen von Apps. Native Apps lassen sich direkt mit der Entwicklungssprache und Schnittstelle der jeweiligen Plattform programmieren. Unter Windows 8 und Windows Phone 8 wäre das etwa Visual Studio mit der Windows Runtime. Bei Android ist es Java und Eclipse mit dem Android SDK. Die wesentlichen Vorteile sind die starken Entwicklungssprachen, die typsicher sind und eine gute Performance bieten. Der Zugriff auf plattformspezifische Schnittstellen, etwa die Live Tiles aktueller Windows-Versionen, ist damit um einiges einfacher. Ein wesentlicher Nachteil ist allerdings, dass Entwickler für jede Plattform mit deren Entwicklungssprache und Schnittstellen vertraut sein müssen. Eine gemeinsame Codebasis lässt sich nicht nutzen, womit der Entwicklungsaufwand enorm steigt.

Eine Abhilfe unter .NET bietet das Tool Xamarin, das natives Entwickeln für Android und iOS mit C# ermöglicht. In der aktuellen Version ist es sogar möglich, für das Frontend eine gemeinsame Codebasis zu nutzen. Für plattformspezifischen Funktionen gibt es jedoch noch keine fertige Lösung. Darüber hinaus ist Xamarin nicht kostenfrei.

Der zweite Typ mobiler Anwendungen sind Hybrid-Apps. Sie benötigen nur einen Quelltext und laufen auf allen gängigen Geräten. Als Entwicklungssprachen dienen HTML5, CSS3 und JavaScript. Um das Projekt für alle Systeme nutzbar zu machen, kommt ein über die Cloud bereitgestellter Compiler zum Einsatz.

Er nimmt ein HTML5-Projekt entgegen und fügt es in vorgefertigte native Container der gängigen Plattformen ein. Das Grundgerüst solcher Apps besteht aus einer Webview (Webbrowser-Steuerelement), das dann zur Laufzeit den HTML-Inhalt rendert. Durch eine Schnittstelle der Webview lässt sich mit JavaScript auf die Hardware und plattformspezifische Funktionen zugreifen.

Das System hat ein paar Nachteile. Die hybriden Apps sind in Sachen Performance nicht so gut wie ihr natives Äquivalent. Außerdem ist der Zugriff auf plattformspezifische Funktionen nicht ohne zusätzliche Plug-ins möglich.

Eines der bekanntesten Werkzeuge zum Bau hybrider Anwendungen ist Adobes PhoneGap, einer Distribution von Apache Cordova. Es stellt Entwicklern kostenfrei ein JavaScript-Framework zur Verfügung. Nach dem Herunterladen des entsprechenden SDK lässt sich ein beliebiger HTML-Editor verwenden. Für das Testen der App im Emulator ist das SDK der gewünschten Plattform nötig. Bei Android wäre es das Android SDK und bei Windows Phone zum Beispiel Visual Studio Express 2013 für Windows Phone. Anschließend müssen die Emulatoren durch zusätzliche Konfigurationen mit dem PhoneGap-Projekt verknüpft werden. Für das Erstellen der Apps stellt Adobe einen Cloud-Compiler bereit, der leider nicht kostenfrei ist. Um diese Komponente zu umgehen, wäre das manuelle Einrichten vom Apache Cordova eine Option, allerdings ist auch der Vorgang mit einigen Konfigurationen verbunden.

Intel setzt auf Apache Cordova und stellt mit dem Intel XDK eine passende Entwicklungsumgebung zur Verfügung. Das Kit ist eine Kombination aus unterschiedlichen Open-Source-Projekten, die sich zu einer einheitlichen IDE zusammensetzen. Dazu gibt es einen HTML-Editor, einen App Designer, Emulatoren, Profiler und Webservice-Support. Passend dazu wird auch ein JavaScript-App-Framework und ein kostenfreier Cloud Compiler geboten. Jedes Feature funktioniert unabhängig von den anderen, sodass man nicht daran gebunden ist. So kann ein Entwickler weiterhin seinen bevorzugten HTML-Editor nutzen oder selbst eingerichtete Emulatoren.

Das Intel XDK wurde komplett mit HTML und JavaScript entwickelt (Node.js) und läuft somit unter Windows, Mac OS und Linux-Derivaten.