Spaß mit TouchDevelop, einer IDE für Windows Phone 7

Vor ein paar Wochen habe ich auf dem Windows Phone 7 (WP7) -Marktplatz nach einem neuen Spiel gesucht, das auf meinem Handy gespielt werden kann, und bin auf das wahnsinnig nette TouchDevelop von Microsoft Research gestoßen. TouchDevelop ist eine vollständige IDE für WP7, mit der Sie WP7-Anwendungen außerhalb des normalen App Hub-Prozesses erstellen und freigeben können. Ich war bestrebt, etwas Interessantes auszuprobieren (hey, es könnte interessanter sein als Angry Birds, während ich in der Warteschleife sitze und auf den technischen Support warte), und habe TouchDevelop ausprobiert.

Das Einzigartige an TouchDevelop ist, wie Microsoft Research die IDE an ein kleines Touchscreen-Gerät wie ein Telefon anpasst. Es ist nur eine minimale Eingabe erforderlich. In einer herkömmlichen Entwicklungsumgebung könnte ich beispielsweise eine Methode mit einer solchen Zeile deklarieren (ja, ich verwende ein Beispiel für einen Fibonacci-Sequenzgenerator):

 private lange fib (int x) 

In TouchDevelop erstelle ich eine Funktion mit einer "+" - Schaltfläche im Menü am unteren Bildschirmrand, während ich meine Funktionsliste betrachte. Ein Standardname wird ausgewählt und ein Code-Stub erstellt. Durch Hervorheben der Zeile mit dem Funktionsstub und Klicken auf den Menüpunkt Bearbeiten wird ein Panorama angezeigt, mit dem ich kleine Teile der Definition bearbeiten kann. Auf der Seite "Requisiten" kann ich den Namen festlegen und ein Kontrollkästchen aktivieren, um die Funktion privat zu machen. Ein Wischen nach rechts bringt mich zur Registerkarte "Parameter", um Parameter zu bearbeiten. Die Schaltfläche "+" fügt einen Parameter hinzu (der auch einen Standardnamen erhält), und in einem Dropdown-Feld kann ich den Typ auswählen. Es gibt Text unter Typ, um zu erklären, was es ist, was eine nette Funktion ist. Wischen Sie erneut nach rechts, um zur Registerkarte "Retouren" zu gelangen (in "Retouren" befinden sich mehrere Elemente).

Von dort aus fügen Sie Codezeilen hinzu. Hier gibt es eine sehr einzigartige Benutzeroberfläche. Sie sehen, wie herkömmlicher Code aussieht ( Abbildung A ), müssen jedoch eine Zeile auswählen und einen Befehl "Bearbeiten" auswählen, um darauf zuzugreifen. Von dort aus haben Sie einen gekachelten Ausdruckseditor, der Dinge vorschlägt, die basierend auf dem Umfang und dem Nicht-Umfang ausgeführt werden können. Wenn Sie einen offensichtlichen Fehler haben (wie eine Zuweisung, der keine Variable zugewiesen wurde), gibt es eine Schaltfläche "Hier tippen, um das Problem zu beheben", mit der versucht wird, das Problem zu beheben. Linien, die nicht gut sind, werden gelb hervorgehoben.

Abbildung A.

Eine einfache Aktion

Der Code ist schwer zu kategorisieren. Es ist unbedingt erforderlich - Sie können nicht einmal Ihre eigenen Typen definieren (es sei denn, mir fehlt etwas). Die integrierten Typen sind recht umfangreich und decken einen Großteil der Funktionen des Telefons ab (einschließlich Karten, GPS-Daten, Musik usw.). Der Code folgt einem eindeutigen Verarbeitungsmodell von rechts nach links. Wenn Sie sich meinen Steuerungscode für die Anwendung ansehen ( Abbildung B ), werden Sie sehen, was ich meine. Die Optionen, die Sie ausführen können, sind klar eingegeben, da verschiedene Funktionen nur unter bestimmten Umständen verfügbar sind.

Abbildung B.

Meine Fibonacci-Berechnungsaktion

Eine weitere nette Sache ist, dass im Hinblick auf die Aktion Dinge wie Zeichenfolgen aus Platzgründen abgeschnitten werden, aber im Ausdruckseditor vollständig erweitert werden. Zusätzlich zu Aktionen können Sie globale Variablen definieren, die automatisch über Sitzungen hinweg beibehalten werden. Es gibt ein Ereignismodell, das grundlegende Ereignisse wie ein Verwackeln des Telefons oder eine Änderung der Ausrichtung erfasst. Bemerkenswert ist auch, dass Sie eine bestimmte Aktion in einer "App" ausführen können, um die Dinge zu starten.

IO ist sehr einfach. Auch hier gibt es globale Variablen, die für die Langzeitspeicherung bestehen bleiben. Darüber hinaus können Sie für Spiele oder Grafiken auf eine Leinwand zeichnen. Andernfalls können Sie "an die Wand posten", was einer Facebook-Wand sehr ähnlich ist. Anstelle der herkömmlichen Textansicht, in der neue Elemente unten angezeigt werden, werden neue Elemente oben angezeigt, und Sie können einen beliebigen Datentyp an die Wand hängen, z. B. Songs (zum Abspielen), Bilder zur Anzeige, Karten usw.

Während es einige außergewöhnlich coole Demos gibt (wie den "Missile Command" -Klon), ist TouchDevelop nicht für ernsthafte Anwendungen geeignet. Sie möchten wirklich nicht viel auf einem winzigen Bildschirm tun, auch wenn die Benutzeroberfläche es so einfach wie möglich macht. Was nützt es also? Um ehrlich zu sein, ich liebe TouchDevelop!

Erstens macht es die einfache Anwendungsentwicklung wirklich einfach. Warum eine komplette App erstellen und das App Hub-System durchlaufen (oder eine Ihrer 10 direkten Bereitstellungen pro Gerät verbrauchen), was einem einfachen Skript entspricht? Zweitens ist es eine großartige Einführung in die grundlegende Entwicklung; Es hat wirklich das Gefühl, dass klassisches BASIC oder Logo als ich aufwuchs, eine Art "Spielplatz" -Sprache, die sich sofort auszahlt - nicht ganz so unmittelbar wie ein REPL-System, aber mit minimalem Aufwand, um zu sehen, was passiert .

Mit einem vereinfachten Satz von Bibliotheken, einer Syntax, die deutlich macht, was gerade passiert, und einer Auswahl von Typen und Funktionen, die das ganze schwere Heben bewältigen und es Ihnen ermöglichen, sich auf das Zusammenbinden von Dingen zu konzentrieren, bietet TouchDevelop Spaß für die Welt der Softwareentwicklung. Ein immaterieller Vorteil ist, dass sich die Arbeit mit TouchDevelop dazu eignet, während des Wartens in einer Arztpraxis und ähnlichen "Zeitkiller" -Situationen zu arbeiten.

Ich werde TouchDevelop in naher Zukunft zwar nicht für größere App-Entwicklungen verwenden, aber es macht Spaß, und ich hoffe, dass Microsoft Research es auch auf Windows 8 portiert, da ich denke, dass es fantastisch wäre ein Tablett.

J.Ja.

© Copyright 2020 | mobilegn.com