Kategorien
Apps Programmierung

on{X} steuert Android-Smartphones per JavaScript

Dass ausgerechnet aus dem Hause Microsoft eine innovative Lösung zur Steuerung von Android-Smartphones kommt, damit haben wir nicht rechnen müssen. Und dass sie nicht proprietär daher kommt, sondern auf JavaScript basiert, ist ebenfalls erstaunlich. Unter dem Namen on{X} liefert die israelische Dependance des Redmonder Riesen eine Kombination aus App und Website, mit der es möglich ist, sein Android-Smartphone zu Dingen zu veranlassen, die es ansonsten so nicht könnte. Der Ansatz hat es in sich.

on{X}: Zunächst Android-only

Gleich zu Beginn soll geklärt werden, warum on{X} ausschließlich für die Android-Plattform existiert, wo doch das gesamte Design, sowohl der App, wie auch der Website ganz eindeutig nach Windows Phone aussieht. Es liegt ganz profan am Sicherheitskonzept. Das ist bekanntlich bei Android im Vergleich zu Windows Phone oder iOS etwas – sagen wir – weniger restriktiv. Mit Android kann man bereits ohne Rootrechte viel mehr tun als auf den Konkurrenzplattformen möglich wäre. So ist on{X} auf Android wohl als Testphase für eine spätere Umsetzung auf Windows Phone zu verstehen. Es war eben einfacher umzusetzen und die Verbreitung von Android verspricht wesentlich mehr Feedback, das für die weitere Entwicklung genutzt werden kann, als eine native Windows Phone App jemals bringen wird.

Wenn also die Motivation nun nicht unbedingt hehren Prinzipien stand hält, so wollen wir uns darüber doch nicht übermäßig lang beschweren. Denn das Potenzial, dass Microsofts neuestes Projekt in sich trägt, ist größer, als man auf den ersten Blick erkennen kann. Bislang kenne ich auf der mobilen Plattform nichts vergleichbares, der Power-Netznutzer kennt vielleicht das Tool IfTTT (If this then that), mit dessen Hilfe sich mehrere Webapplikationen miteinander verbinden und gegenseitig zu Aktionen veranlassen lassen. on{X} ist IfTTT nicht unähnlich, kann aber über eine JavaScript-API auch direkt auf Gerätefunktionen zugreifen und ist dadurch ungleich leistungsfähiger.

Auch im Sprachgebrauch lehnten sich die Microsoftler an IfTTT an. So heißen die generierten Aktionen auf beiden Plattformen Recipes (Rezepte).

on{X}: Schick meiner Frau ne SMS, wenn ich das Büro verlasse

Die Möglichkeiten der Rezepterstellung unter on{X} sind schier grenzenlos. Im einfachsten Falle könnte man sein Smartphone veranlassen, die Music App zu starten, wenn man beginnt zu rennen. So wie in diesem Rezept hier:

Aber auch komplexere Anweisungen und Abläufe sind machbar. So etwa würde man mit folgendem Code sein Smartphone veranlassen, jemanden, in diesem Falle der Ehefrau, eine SMS mit einer bestimmten Nachricht zu senden, wenn man einen bestimmten Ort, im Beispiel den Arbeitsplatz verlässt. Das hat schon ein bisschen was von Lifetracking.

// Initializing variables 

	var friend = { name : "my wife",phoneNumber : "+1234567890" } ;
	var messageText = "I'm on my way";
	var action = "exit" /* leave */;
	var location = { name : "work",latitude : "40.771442",longitude : "-73.974295" } ;

	// End of variables initializing 

	console.log('Started script: Text ' + friend.name + '  when I ' + action + ' ' + location.name);

    // create a geo region for the trigger to take place at
    var region = device.regions.createRegion({
        latitude: parseFloat(location.latitude, 10),
        longitude: parseFloat(location.longitude, 10),
        name: location.name,
        radius: 1000
    });

    // register a callback which sends a message when entering/exiting the region (depends on action)
    region.on(action, function (){
        device.messaging.sendSms({
                to: friend.phoneNumber,
                body: messageText
            },
            function (err) {
                if (err) {
                    console.error('Error sending text message: ' + JSON.stringify(err));
                }
            }
        );
    });

    // start monitoring the region
    device.regions.startMonitoring(region);
    console.log('Started script: Text ' + friend.name + '  when I ' + action + ' ' + location.name);

Der Zugriff auf den Ort erfolgt mit Hilfe des GPS-Moduls des Smartphones. Entsprechend ist es erstens erforderlich, das GPS-Modul eingeschaltet zu haben und zweitens, die korrekten Koordinaten zum jeweiligen Ort zu hinterlegen. Diese können beispielsweise in Bing-Maps recht einfach abgelesen werden.

In der frühen Beta führt übrigens ein abgeschaltetes GPS-Modul dazu, dass das Rezept nicht korrekt abgearbeitet wird. Eine Fehlermeldung erscheint aber auch nicht. Zudem lässt sich die App, einmal gestartet, nur noch über den Taskmanager beenden. Ebenfalls unnötig erscheint die Verpflichtung, sich mittels eines Facebook-Accounts bei on{X} anzumelden. Gerade der letztgenannte Punkt sorgt für extrem viel Kritik an der App und führte im Play Store bereits zu rund 900 1-Stern-Bewertungen.

Die Kinderkrankheiten wird das System sicherlich noch ablegen, was mit dem Facebook-Zwang ist, lässt sich derzeit nicht abschließend beurteilen. Microsofts Social Media Gehversuch So.cl besteht ebenfalls weiterhin auf das Vorhandensein eines Facebook-Login als Grundlage des So.cl-Accounts.

[youtube]http://www.youtube.com/watch?v=qfLMTsIJsoo[/youtube]

on{X}: Leistungsfähige JavaScript-API

Entwickler werden sich im weiter oben gezeigten Code direkt heimisch fühlen. Die gesamte Rezepterstellung läuft über Javascript. Für die korrekte Umsetzung der Javascript-Snippets auf dem Smartphone sorgt eine über den Play Store zu beziehende App. Die App bietet den Zugriff auf die Geräte-APIs und wacht im Hintergrund über die korrekte Ausführung anstehender Rezepte, wenn deren Bedingung(en) erfüllt sind. Sonstige Funktionalität bringt die App nicht. Auch das Erstellen der Rezepte kann nicht innerhalb der App, sondern ausschließlich über die Website erfolgen. Dafür werden auf der Website generierte Rezepte ohne Umschweife direkt mobil verfügbar gemacht.

Der Code jedes Rezepts ist frei zugänglich. So können bereits auf der Plattform verfügbare Codebeispiele sehr einfach in eigene Rezepte umgeschrieben und/oder erweitert werden. Insgesamt ist das Projekt gut durchdokumentiert. Zu jeder nutzbaren Gerätefunktion gibt es eine ausführliche Beschreibung nebst einem oder mehreren Codebeispielen. So sollte eine schnelle Einarbeitung gewährleistet sein.

Übrigens: Wer lediglich eine simplere Methode sucht, um seinen Androiden mittels verschiedener Trigger zu Aktionen zu veranlassen, auf Erweiterbarkeit verzichten kann und ohnehin lieber tappt oder klickt, anstatt zu coden, der sollte sich mal die App AutomateIt näher ansehen.

(do)

Von Dieter Petereit

ist seit 1994 im Netz unterwegs, aber bereits seit über 30 Jahren in der IT daheim. Seit Anfang des neuen Jahrtausends schreibt er für diverse Medien, hauptsächlich zu den Themenfeldern Technik und Design.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.