Die Entscheidung von hp, webOs und die 'Programmierumgebung' enyo als open source weiter zu führen, scheint wohl der einzige Weg zu sein, diesem im Ansatz sehr guten OS langfristig mehr Popularität zu verschaffen. Für alle begeisterten User heißt dies in Zukunft aber auch (in Abwandlung eines klassischen Zitats):
Frag' nicht was webOs für Dich tun kann, sondern frag' was Du für webOs tun kannst.
Ohne hinreichend viele (Hobby-)Entwickler dürfte das jedoch schwer werden, was wirklich schade wäre. Und nachdem ich mich nun fast ein Jahr mit enyo beschäftigt habe, will ich kurz anhand eines einfachen Beispiels zeigen, wie man/frau fix an seine 1. app kommt (und hoffentlich viele motivieren, es mal selbst zu probieren).
Einzige Voraussetzung ist, sich die Arbeit mit Shell/Kommandozeile/Terminal zuzutrauen. Am schnellsten geht es mit Pre3 oder Touchpad (es geht natürlich auch mit Emulator/Pre1/2, aber das ist schon wieder komplizierter)
Dann sind 5 Schritte nötig (habs nur mit Ubuntu-PC probiert, sollte aber auch mit Mac/Win klappen):
1. NUR das zum PC passende 'sdk' (ca.360MB) und 'novacom' (ca.60kB) downloaden UND installieren, wie hier beschrieben (die 'virtualBox'-Sachen braucht man nur für den Emulator):
https://developer.palm.com/con…lop/sdk_pdk_download.html
2. Auf diesem PC einen Ordner z.B. 'enyo_app1' erstellen und mit 4 Textdateien füllen:
i) Datei 'appinfo.json' (hier wird die app quasi dem Betriebssystem vorgestellt):
{
"id": "de.mydomain.example1",
"version": "0.0.9",
"vendor": "mydomain",
"type": "web",
"main": "index.html",
"title": "enyotest",
"uiRevision": "2"
}
ii) Datei 'index.html' (Startpunkt der app aus der obigen "main"-Zeile):
<!doctype html>
<html><head><title>enyo Beispiel</title>
<script src="../../1.0/framework/enyo.js" type="text/javascript">
</script></head> // Hier kann Text stehen, der nur im (Syntax-)Fehlerfall angezeigt wird
<meta name='viewport' content='height=device-height'> // wichtiger tag f. Anzeige beim Pre3
<body><script type="text/javascript">
new test1().renderInto(document.body); // 'link' auf den Code der app
</script></body></html>
Display More
iii) Datei 'depends.js' (nur eine Zeile):
enyo.depends("app_code.js"); // Hier werden alle weiteren Dateien aufgeführt, die die app braucht
iv) Datei 'app_code.js' (wie in 'depends.js' aufgeführt, mit dem eigentlichen app-code, der im Grunde aus 'erweitertem' Javascript besteht):
enyo.kind({
name: "test1", // Einstiegspunkt aus 'index.html'
kind: "VFlexBox", // Es folgt zuerst die UI-Definition (4 'Zeilen' mit verschiedenen Elementen)
components: [
{flex: 1, kind: "HFlexBox", components: [
{flex: 1, kind: "Button", name: "BU1", onclick: "Mach1", caption:"Chef -->"},
{flex: 2, kind: "Button", name: "BU2", onclick: "Mach2", caption:"Hier 'tappen'"}]},
{flex: 2, kind: "HFlexBox", style: "background-color: lightblue;", components: [
{flex: 1, content:"weiss", style: "background-color: white;"},
{flex: 1, content:"blau"},
{flex: 1, content:"rot", style: "background-color: red;"}]},
{flex: 2, kind: "HFlexBox", style: "background-color: yellow;", components: [
{flex: 1, content:"gruen", style: "background-color: lime;"},
{flex: 2, content:"gelb"}]},
{height: "99px", content:"fixierter Rand", name: "sp2"}
],
// Nun folgt der konkrete Code-Teil mit Variablendeklaration und 2 'functions':
var1: 0,
Mach2: function() {
this.$.BU2.setCaption("<-- Jetzt da!");
this.$.sp2.hide();
this.var1++;
},
Mach1: function() {
this.$.BU2.setCaption("Hier wieder 'tappen' (bereits "+this.var1+" mal)");
this.$.sp2.show();
},
});
Display More
3. Pre3/Tp in den 'developer mode' versetzen:
in 'just type': 'webos20090606' eingeben, das 'dev.mode' Symbol anklicken und im dann folgenden Dialog den 'dev.mode' aktivieren.
4. Pre3/Tp via USB-Kabel mit dem PC verbinden, aber NICHT als 'USB-Laufwerk' aktivieren sondern die andere Option wählen.
5. Ein Terminal am PC öffnen, zu dem Ordner (bei mir 'webapp') navigieren, der den Ordner aus Schritt 2. (z.B. 'enyo_app1') ENTHÄLT und folgende 3 Befehle eingeben (der 1. bezieht sich auf den app-Ordner-Namen aus Schritt 2., die anderen auf die app-Kennung aus der Datei 'appinfo.json'):
dies gibt z.B. die Rückmeldung: 'creating package de.mydomain.example1_0.0.9_all.ipk in /home/webapp'
palm-install de.mydomain.example1_0.0.9_all.ipk
es folgt wieder eine längere Rückmeldung: 'installing package de.mydomain.example1_0.0.9_all.ipk on device ...'
palm-launch de.mydomain.example1
VOILA, die app startet. Statt des letzten Schritts kann die app natürlich auch direkt über den Launcher von Pre3/Tp gestartet werden.
Fehlersuche: Wenn irgendwas mit dem Code nicht klappt, einfach am PC via Terminal den Befehl 'palm-log de.mydomain.example1' eingeben, meist findet man dort einen nützlichen Hinweis, wo was falsch gelaufen ist.
Ansonsten: Viel Spass beim experimentieren... (edit 22.38: typos)