tjaa, wie auf Twitter angekündigt habe ich mein Framework für WebOS nun veröffentlicht.
Das Framework ist noch recht jund und besitzt noch nicht viele neue Funktionen, dennoch nimmt es dem Entwickler eine menge Arbeit in Sachen Widgets aufsetzen, Events festlegen und sie anschließend wieder zu löschen.
Nun könnten sich einige wieder ausmalen: Dann muss ich ja immer das App updaten wenn das Framework aktualisiert wird. Aber das ist FALSCH!
Das Framework wird auf der USB Partition abgelegt und kann so durch den "Crystal Development Framework Loader" (langes word und schon im Webchannel) heruntergeladen werden. Wird also ein App gestartet und der Core merkt dass das Framework fehlt startet es das app, schließt sich, der loader läd, schließt sich und startet das app welches das alles verursacht hat. Sollte der loader nicht installliert sein wird der katalog aufgerufen.
Darüber habe ich aber auch wieder gebrütet: der aufwand lohnt sich nur wenn mehrere apps das framework nutzen. aktuell tun es all meine apps und noch ein paar von meinen freunden, allerdings ohne den loader!
doch all meine nächsten updates werden eben dies verwenden. (wer das nicht möchte, als entwickler, kann das framework aber auch einbinden).
Nun zu den funktionen:
- Verwalten von Widgets
---> Alle Widgets werden über eine funktion angelegt, z.B. Core.Widgets.add("button"); Dabei werden voreinstellungen geladen welche man allerdings direkt mit den parametern wie man es vom webos framework gewohnt ist modifizieren. Wurd alles angelegt ruft man Core.Widgets.setup()'; auf und alles wird definiert.
- Events
---> Mit den events läuft es ähnlich Core.Events.add(ID (string), Event (Mojo.Event.xxx), function); Das wars. man kann über diese funktion auch intervale aufrufen Core.Events.add("intervalName", "interval", function, timeout);
---> in der cleanup function gibt man Core.Events.cleanup() an und das wars.
---> man kann die events auch einzelnd abschießen Core.Events.kill("intervalName");
- Cookies
---> Core.Cookie.get("name"); , Core.Cookie.set("name", value); - Selbsterklärend
- Depots
---> Core.Depot.init("name", version, size, replace, callback); - initialisiert das depot
---> Core.Depot.get("FieldName", callback); Core.Depot.set("FieldName", value, callback); - wieder selbsterklärend.
---> Im moment nur ein depot pro anwendung, wir aber ausgeweitet
Database
---> Ähnlich wie Depot in der initialisierung
---> Werde dazu im noch aufzubauenden wiki etwas verfassen, sind befehle wie: insert, select, update, delete und query. alles kein hardcore sql danke sql builder!
Database Cache
---> Das ist was ganz feines, man kann damit die daten eines querys ablegen und diese abrufen und aktualisieren ohne immer mit database und so den ganzen quatsch zu wiederholen
---> näheres dann auch im wiki
File
---> nur eine funktion bis jetzt: read. kommen aber noch viele wie exists, write(download) dazu.
Log*
---> Ein eigener Log der remote debugging unterstützt und die vom palm geschickten errors abfängt.
Update*
---> Zeigt in der App an ob updates im katalog sind.
* Benötigen die entsprechenen Scripte (am besten mit meinem CMS, also das worauf meine Seite läuft, saugt sich immer die Feeds von Palm und aktualisiert somit die apps auf der seite, bilder, downloads, rating und so)
Notify
---> im moment noch nicht viel: banner und alert.
Extensions
---> ein paar prototyp erweiterungen, noch im aufbau
Connection
---> Eine sehr wichtige klasse zu überprüfung der Verbindungseigenschaften (ist man Online, verbindungstyp etc.)
Das soll ersteinmal ein kleiner vorgeschmack gewesen sein. Den Download findet ihr wie immer auf meiner Website im Download Archiv, bei Facebook und/oder Twitter. Oder laded das Framework mit dem Crystal Development Framework Loader herunter (Ich liebe diese wort :P)
greez
TheRealLink