De:Ubiquity 0.1.2 Programmier-Tutorial
Das Ubiquity 0.1 Tutorial für Entwickler
Der große Vorteil von Ubiquity - aus Sicht eines Entwicklers - ist, wie einfach es ist, eigene Befehle zu erstellen. Mit nur ein paar Zeilen JavaScript ermöglicht es Ubiquity auch Gelegenheitsprogrammierern die Fähigkeiten ihres Browsers stark zu verbessern. Von einem 8-Zeilen-Programm, mit dem man seine Kontakt-Emailadresse in jedes Textfeld einsetzen kann, zu einer 50-zeiligen Twitter-Integration zeigt dieses Tutorial die Schritte zum kreativen Umgang mit Ubiquity.
ACHTUNG: Ubiquity ist noch im Entwicklungsstadium. Dies ist eine 0.1-Release. Die API wird sich vermutlich in späteren Versionen noch ändern. Obwohl das bedeutet, dass das, was du heute an Code schreibst, morgen nicht mehr funktioniert, heißt es auch, dass du durch Programmieren und Feedback direkt auf die Entwicklung von Ubiquity Einfluss nehmen kannst.
Der Rest dieser Seite dokumentiert die Entwickler-API in der aktuellen Version 0.1.1. Falls du die neueste Quellcode-Version ausgecheckt hast, hast du eine neuere API mit einigen zusätzlichen Features, die in 0.1.1 noch nicht enthalten sind. Informationen über die neueste und beste Source-Tip API gibt es im Ubiquity Source Tip Author Tutorial.
Echtzeit-Entwicklung
Ubiquity erfordert keine Neustarts von Firefox, um den Code zu Testen. Das ist ein barbarischer Akt und das wollen wir nicht. Stattdessen lädt Ubiquity den Befehl jedesmal, wenn er gestartet wird. Wenn du den eingebauten Editor benutzt, musst du nicht einmal speichern!
Um den Ubiquity-Befehls-Editor zu öffnen startest du einfach Ubiquity (Ctrl/Alt - Leertaste) und benutzt den "command-editor"-Befehl. In diesem Tutorial sprechen wir von "Ubiq" ("Ubiquieren") wenn gemeint ist, ein Programm zu starten. Wenn du zum Beispiel den Command-Editor starten willst, ubiq einfach "command-editor".
Arbeite bei den folgenden Beispielen einfach mit diesem Editor. Updates finden beim nächsten Starten von Ubiquity statt.
Erster Befehl: Hallo Welt
Beginnen wir mit dem Standard-Programmierbeispiel: der Ausgabe von "Hallo Welt!". In Ubiquity sind Befehle einfach Funktionen mit verschiedenen Attributen. Beginnen wir, indem wir einen Befehl von Hand schreiben - auch wenn wir werden bald eine elegantere Methode kennen lernen werden.
Gib folgende Zeilen in den Command-Editor ein:
function cmd_hello_world() {
displayMessage( "Hello, World!");
}
Jetzt gib "hello-world" in Ubiquity ein. "Hello World!" wird sofort auf dem Bildschirm ausgegeben. Wenn du auf Mac OSX arbeitest und Growl installiert hast, wird die Nachricht als Growl-Nachricht ausgegeben. Bei Windows schiebt sich unten reichts im Bildschirm ein kleines "Toaster"-Fenster auf.
In Ubuntu 8.04 (Hardy Heron) erscheint dagegen das hier:
Dies funkioniert derzeit leider nur unter OSX mit installiertem Growl, unter Windows XP/Vista und Ubuntu Hardy/Intrepid. Hier gibt es noch genug Arbeit für künftige Releasestände von Ubiquity.
Unser Kommando enthältkeine Besonderheiten enthält, arbeiten wir es einfach . Any function that starts with cmd_ automatically becomes a Ubiquity command. It's a little bit of namespace magic that makes development super-simple.
There are other prefixes that have other effects, like running code on page load (pageLoad_), and startup (startup_), but that's for a different tutorial.
Back to the example. The meat of the command is in the function displayMessage(), which displays the message in whichever way the operating system can.
You may be wondering why there is a hyphen in the name, instead of a space. That's because the Ubiquity natural language parser isn't yet smart enough to handle commands that are multiple words and arguments that are multiple words. It's something we'll be working on in the future.
There's not much in this command, so let's dive straight in. Any function that starts with cmd_ automatically becomes a Ubiquity command. It's a little bit of namespace magic that makes development super-simple.
There are other prefixes that have other effects, like running code on page load (pageLoad_), and startup (startup_), but that's for a different tutorial.
Back to the example. The meat of the command is in the function displayMessage(), which displays the message in whichever way the operating system can.
You may be wondering why there is a hyphen in the name, instead of a space. That's because the Ubiquity natural language parser isn't yet smart enough to handle commands that are multiple words and arguments that are multiple words. It's something we'll be working on in the future.