Hello Firefox OS: Einfacher Einstieg in die App-Entwicklung mit Firefox OS

Längst ist Firefox OS im Mainstream angekommen - wenn auch eher in den Schwellenländern Südamerikas wie Brasilien, Costa Rica oder Peru. Trotzdem finden sich in Deutschland Handys mit Firefox OS im Angebot von größeren Anbietern, darunter bei Congstar(öffnet im neuen Fenster) . Für unsere ersten Schritte bei der App-Entwicklung von Firefox OS dient ein ZTE Open C(öffnet im neuen Fenster) . Das Gerät ist seit etwa einem Jahr über den Ebay-Store des Herstellers(öffnet im neuen Fenster) verfügbar und kostet derzeit knapp 60 Euro.




Ausgestattet mit einer Dual-Core-CPU, die auf 1,2 GHz getaktet ist, dem 4 Zoll großen Display mit einer Auflösung von 480 x 800 Pixeln sowie 512 MByte Arbeitsspeicher gehört es zu den Einsteiger-Smartphones. Für das schlanke Firefox OS reicht die gebotene Rechenleistung allerdings deutlich aus; ein Raspberry Pi mit gerade einmal einem Viertel der Rechenleistung des Open C zeichnet einen kompletten Desktop flüssig auf den Bildschirm - viel Rechenleistung braucht es für die Darstellung von Inhalten auf einem Display also nicht.
Erste Schritte
Auf der Homepage von Firefox OS schreibt Mozilla(öffnet im neuen Fenster) , dass Apps auf Firefox-Handys mit HTML5, CSS und Javascript arbeiten. Das klingt nicht besonders kompliziert - erst recht nicht, wenn in jüngerer Zeit an einer Webseite gearbeitet wurde. Bei der Benutzeroberfläche von Firefox OS handelt es sich letztlich nur um eine Web-App, die wiederum weitere Web-Apps einbinden kann. Mit dem Ansatz, Webtechniken zum Zeichnen eines Desktops einzusetzen, steht Mozilla nicht allein da: Auch Gnome 3 setzt umfassend auf HTML5 und Javascript. Der Verzicht auf Sprachen wie C++ oder Java bringt einen weiteren Vorteil mit sich: Als Entwicklungsumgebung genügt die in Firefox enthaltene WebIDE(öffnet im neuen Fenster) .
Bevor wir mit einem "Hello World" starten, muss an dem Ubuntu eine Kleinigkeit angepasst werden, so dass das Betriebssystem das Firefox-Handy mit den richtigen Rechten einbindet. Ähnliches war auch früher bei Android-Handys nötig. Dazu wird die USB-ID des Mobiltelefons benötigt. Diese lässt sich einfach selbst nachsehen. Der Befehl lsusb gibt die gesuchte Information zu USB-Geräten aus. In unserem Fall trägt das Firefox-Handy die Hersteller-ID 19d2 und die Produkt-ID 1350 :
lsusb
Bus 002 Device 010: ID 19d2:1350 ZTE WCDMA Technologies MSM
Udev-Regeln zum Debuggen
Zumindest eine dieser IDs muss Udev mitgeteilt werden, damit der Dienst das Gerät ins System einbindet. Am einfachsten klappt das mit der Hersteller-ID, also der Zifferngruppe vor dem Doppelpunkt. Dazu muss als Root-User in dem Verzeichnis /etc/udev/rules.d/ die Datei 52-firefoxfone.rules erstellt werden. In die Datei muss Folgendes eingefügt werden:
SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev"
Der im Hintergrund aktive Dienst Udev verwaltet unter Linux dynamisch Gerätedateien. Beim Anstecken eines hotplugfähigen Geräts übernimmt Udev anhand von vorher definierten Regeln die Vergabe von Zugriffsrechten und legt bei Bedarf Verknüpfungen auf Gerätedateien an.
Falls ein anderes Firefox-Smartphone verwendet wird, muss die Hersteller-ID (idVendor) an die auf dem System von lsusb ausgegebene ID angepasst werden. Anschließend muss mit Hilfe von Chmod dafür gesorgt werden, dass die Benutzerrechte der Datei stimmen, und der Udev-Dienst neu gestartet werden:
sudo chmod a+r /etc/udev/rules.d/52-firefoxfone.rules
sudo service udev restart
Die Änderung erscheint nach außen hin zunächst wirkungslos. Die Udev-Regel wird aber spätestens dann benötigt, wenn auf die Debugging-Schnittstelle des Geräts zugegriffen werden soll.
Arbeiten mit der WebIDE
Zum Entwickeln von Apps für Firefox OS braucht es keine große Entwicklungsumgebung wie Anjuta, Eclipse oder das Android Studio. Der Firefox-Browser bringt seit der Version 34 von Haus aus alles Nötige mit. Über das Menü Extras | Web Entwickler wird die von Mozilla WebIDE genannte Entwicklungsumgebung für Firefox-OS-Apps aufgerufen. Dort wird unter Projekt| Neue App eine erste App für Firefox OS erstellt. Für den Einstieg eignet sich am besten die Hello-World-Applikation als Vorlage.
Die rudimentäre App besteht aus nur drei Dateien und einem Ordner. Die index.html bestimmt die Inhalte und - mittels eingebetteter CSS-Definitionen - auch das Aussehen der App. Die app.js sorgt über addEventListener dafür, dass das System das Programmobjekt ausführt. In der manifest.webapp werden der Programmname, eine Beschreibung, das auszuführende Objekt, die aus dem Unterordner icons geladenen Symbolbilder des Programms sowie die Rechte definiert. Für einen ersten Test sollte an den Dateien vorerst aber nichts geändert werden.
Hello World im Simulator und auf dem Telefon
Zum Starten der Hello-World-App muss nun entweder das Firefox-Handy per USB mit dem Rechner verbunden oder ein Firefox-Simulator installiert werden. Für einen ersten Test ohne Firefox-OS-Smartphone ist der Simulator besser geeignet. Unter Laufzeitumgebung auswählen lässt sich mit Simulator installieren ein Firefox-Simulator einspielen. Für Testzwecke ist es am besten, die Version zu installieren, die auch auf dem Firefox-Gerät arbeitet. Ohne ein Handy mit Firefox OS ist die aktuelle Version Firefox OS 2.2 zu empfehlen. Anschließend listet die WebIDE das simulierte Gerät unter Laufzeitumgebung auswählen | Simulatoren auf. Ein Klick auf den Eintrag startet den Simulator.
Der Simulator lässt sich genauso bedienen wie das Firefox OS auf einem richtigen Smartphone. Mit dem Browser kann durchs Netz gesurft werden, über den Marketplace lassen sich auch auf dem simulierten System Apps installieren. Die Kamera-App liefert derzeit allerdings nur ein schwarzes Bild, künftig soll die WebIDE jedoch die Webcam des Rechners einbeziehen(öffnet im neuen Fenster) . Mit den zwei Schaltflächen am unteren Fensterrand lässt sich auf den Homescreen zurückkehren oder das Display drehen. Sobald der Simulator läuft, erscheinen mittig oberhalb des Editor-Bereichs drei Icons, wie bei einem Audioplayer. Mit "Start" wird das Programm auf das simulierte System übertragen und umgehend ausgeführt. Mit "Stop" wird die Anwendung beendet, auch wenn sie nicht mehr reagieren sollte. Der Pause-Knopf öffnet die Firefox Developer Tools zum Debuggen am unteren Rand des Fensters.
Damit dies auch auf einem realen Gerät funktioniert, muss auf dem Firefox-Phone das USB-Debugging eingeschaltet sein. Je nach Version ist diese Option teils tief in den Einstellungen des Geräts versteckt. Auf älteren Firefox-OS-Smartphones muss das externe Debugging unter Einstellungen | Geräteinformationen | Weitere Informationen | Entwickler aktiviert werden.
Bei Geräten mit Firefox OS 2.2 wird unter Einstellungen | Geräteinformationen | Weitere Informationen das Entwicklermenü eingeschaltet und anschließend das USB-Debugging für ADB und Werkzeuge in Einstellungen| Entwickler | Debugging über USB freigegeben. Danach führt die WebIDE das Handy unter Laufzeitumgebung auswählen | USB-Geräte auf. Nach einem Klick auf den Startknopf der Entwicklungsumgebung muss der Netzwerkzugriff auf die Debugging-Schnittstelle zugelassen werden. Kurz darauf installiert die WebIDE die Hello-World-App und führt sie wie im Simulator aus.
Leichter Einstieg
Mozilla macht es Nutzern von Firefox OS wie beschrieben sehr leicht, eigene Apps für das Firefox-Phone zu schreiben. Dazu wird nicht einmal zwingend ein Firefox-Handy benötigt, ein Rechner mit Firefox als Browser genügt. Bei der Entwicklung für Android oder iOS erscheint ein "Hello World" bei weitem nicht so schnell und einfach auf dem Display des Handys. Auch grundlegende Kenntnisse zu Javascript, HTML5 und CSS sind schneller erlernt als Java oder Objective C. Im Mozilla Developer Network MDN gibt Mozilla zudem ausführliche Hilfestellungen für Einsteiger(öffnet im neuen Fenster) .
Das Betriebssystem wird mitunter noch als ein wenig unausgereift kritisiert und das beschränkte App-Angebot bemängelt. Bei der gebotenen Leistung von Firefox OS ist wohl aber vor allem der im Vergleich niedrige Preis der Geräte interessant. Die Anschaffungskosten eines ZTE OPEN C liegen bei gerade einmal einem Zehntel eines aktuellen iPhones. Doch kein anderes mobiles Betriebssystem erleichtert Einsteigern die Programmierung so wie Firefox OS.
Dieser Artikel erschien in der Ausgabe 04/15 des Magazins Linux User(öffnet im neuen Fenster) , das seit September 2014 wie Golem.de zum Verlag Computec Media gehört. Der Schwerpunkt des Heftes liegt bei TV und Streaming und beschreibt unter anderem die Integration des FritzWLAN Repeater DVB-C in Kodi oder wie eine Fernbedienung für PCs selbst entworfen werden kann.



