Adobe Air - Coding - Blog - seekwhencer - privates blog

Adobe Air

Was ist Adobe Air?

Adobe AIR ist eine Laufzeitumgebung für das Betriebssystem ähnlich der Systemerweiterung Adobe Acrobat Reader. Es ist ein Baukastensystem an Software-Komponenten, die Client-Software auf Basis von Web-Technologien ermöglicht. Die Systemerweiterung bringt die nötigen Grundbausteine mit. Zusammengefügt werden diese Bausteine mit bekannten Technologien: Flash, HTML und eine eigene, neue Sprache. Adobe Air gibt es für die Betriebssysteme: Windows, Apple OS und Linux bedient damit die gängigsten Betriebssysteme.

Was kann Adobe Air?

Erstens ist es als Browser wie Firefox oder Safari zu verstehen und zweitens als Flash-Engine. Denn es steht sämtliche Flash-Funktionialität zur Verfügung. Darüber hinaus kann man durch die SQLite-Implementierung spielend mit großen Datenmengen lokal umgehen.

Besonders interessant ist die Benutzung der Flash-Funktionalität während man Java-Script schreibt. So stehen Bibliotheken bereit, die bspw. einen eingeschränkten Photoshop-Befehlsumfang haben oder Sound oder Webcam streamen.

Und die Lobby?

Zugegeben, es gibt viele Schrott-Apps - aber zwischen ihnen sind echte Pralinen. Die Entwickler-Szene ist auch gewachsen über die letzte Zeit. Es gibt gute Tutorials und Foren und einges an Open Source.

Und der Kunde?

Möglich sind damit bspw. Mini-Programme für den Echtzeitzugriff auf bspw. die Funktionen des eigenen Profils einer Website. Benachrichtigungen, Private Nachrichten usw.

In der Wirtschaft haben diese Anwendungen, gekoppelt mit einem Online-System, den Vorteil:

  • Sicherheit. Eine Quell-Code-Manipulation wie sie im Browser möglich ist, ist dann nicht mehr möglich
  • Interface-Geschwindigkeit ist höher. Die Arbeitsgeschwindigkeit ließe sich damit nochmals erhöhen
  • Zusatz-Features in Sachen Usability ließen sich realisieren, bspw. Drag ' Drop von Desktop in Anwendung für Massen-Datei-Management
  • Kommunikations-Features ließen sich realisiseren: Audiostream / Telefonie, Webcam
  • Offline-Modus
  • Offline Backup

Ob man die Meta-Daten eines MP3 auslesen will oder ein Thumbnail erzeugen, eine Video-Konferenz führen oder Videos verwalten, das ist technisch soweit möglich. Es bedarf keiner komplizierten System mehr um ähnlich der nativen Client-Software Tools zu erstellen, die als Sandkasten, abgeschirmt vom Betriebsystem laufen. Man muss nicht C++ fließend schreiben um nützliche Werkzeuge herzustellen.

Wenn man sich das nur mal konkret zu Herzen nimmt, kann für so manche Software einiges an Zeit und damit Geld gespart werden. Aber nein: Kunde rennt lieber ins renomierte Software-Haus und lässts teuer veraltetes Zeug entwickeln.

Fazit: ich denke dass diese Technologie ruhig auch in den ERPs und CRMs Platz finden darf. Wenn ein solches System allein nur IN dieser Air-Sandbox angezeigt wird, sprich es eigentlich nur ein Browser ist, der eine ferne Website anzeigt, dann ist das allein schon sicherer als einfach so im Internet-Explorer. Viren, Trojaner und haste-nich-jesehn nisten sich gerne als erstes dort ein. D.h. man hat beim Benutzer den Zugang zum System ein bisschen aus der Schussbahn genommen. Also die Sicherheit eines Online-ERP würde es damit etwas erhöhen.

Achja das gute auch noch: wenn man die Anwendung entwickelt, muss sie NUR in dem Adobe-Air Browser laufen. Keine Browser-Differenzen mehr ausmerzen. Straight arbeiten.  Ein CSS und ein Javascript. Der Browser kann schon ein bisschen CSS 3, aber unter Vorbehalt. Runde Ecken sind aber möglich ;)

Frameworks?

Also nur mal der Fall, man macht eine Anwendung mittels HTML + CSS und Javascript. Dann empfehle das Javascript-Framework:

Es gibt noch ein paar Frameworks für schicke Formulare und Tiny MCE funktioniert auch.

Wenn die lokale SQLite benutzt wird, empfehle ich das Firefox Addon: SQLite Manager Damit kann man die Datenbank checken. Unverzichtbar.

Mother-Ship

Air-Apps im Bereich der ERP und CRM wären nur Clients. Es muss eine Art Mutterschiff geben. Einen zentralen Punkt im Web. Die Kommunikation mit diesem wäre recht einfach. XHRs zu einer beliebigen Domain sind möglich. Kombiniert mit dem neuen json_encode() von PHP 5 realtiv einfach. Solange man die Darstellung der App überlässt und ausschließlich Daten austauscht, ist ein Offline-Modus leichter zu realisieren, weil dann einfach nur die Daten klug abgeglichen werden müssen. D.h. sie liegen lokal vor. Zwei Apps können auch nach dem P2P-Prinzip verbunden werden. Also direkt kommunizieren. Das ermöglicht bspw. einen direkten Datenaustausch zwischen zwei oder mehreren Clients.

Wichtig ist von Anfang an die Planung. MVC ist hier besonders wichtig, um den Überblick zu behalten. Man erzeugt mit Javascript HTML. Und das permanent. Es kann ein Template-System geben, was die Trennung zwischen Action und View verbessert. Dennoch ist Obacht geboten. Man muss auch bedenken, dass man mit zwei Datenquellen arbeitet: der lokalen und der Remote-Quelle. Beide müssen abgeglichen werden. Aber in dieser Kombination super für den Offline-Modus.

Fazit

Sehr, sehr schönes Spielzeug. Mit ein paar Verränkungen lassen sich wirklich sehr schöne Web-Spielzeuge basteln.

Hier mal ein paar Top Listen von Air Apps:

http://mashable.com/2008/12/01/top-adobe-air-applications/

http://refreshingapps.com/

http://www.makeuseof.com/tag/8-adobe-air-apps-that-dont-suck/