Alkalmazásfejlesztés Adobe AIR-ben
HTML + JavaScript alapokon
Az Adobe AIR-ről
Néhány szó a az AIR világáról
- Multi platform futtási környezet
- 2008 óta fejlesztik
- Webkit engine lakozik benne
Mire jó?
Betekintés az AIR felszíne alá
- Kódolj egyszer, szállíts mindenhova
Windows, Linux, Mac, Android & Blackberry telefonok
- OS szintű hozzáférés
- Elszakadás a böngészőtöl
Hányan használják?
Belső statisztikák az Adobe-tól
- 2009 Január: 100M install
- 2009 Június: 200M install
- Igen, az Acrobat 9 segít ebben
Mivel lehet benne fejleszteni?
Fejlesztő eszközök
- Aptana AIR
- Flash CS4
- Dreamweaver
Mivel lehet benne fejleszteni?
Aptana Memory profiler
További infók debuggolásról: http://aptana.com/air
Mivel lehet benne fejleszteni?
Instrospector: Az AIR Féle Firebug
Mit lehet vele kezdeni?
Az AIR erősségei #1
- File rendszer hozzáférés
- Bináris adatírás / olvasás
- SQLite adatbázis
- Cross domain AJAX
- AS3 API elérése JavaScriptben
- Vágólap hozzáférés
- Drag & drop OS <-> AIR
Mit lehet vele kezdeni?
Az AIR erősségei #2
- Hozzéférés rendszer processekhez
- Canvas támogatás
- Keretmentes alkalmazás / ablak
- Titkosított adattárolás (encrypted local store)
- PDF kezelés, beágyazás
- Fejlett audio API
- Hálózati események monitorozása
Túl szép, hogy igaz legyen?
néhány korlátozás is jár a szabadsággal
- Sandbox alapú környezet szeparáció
- eval() is "really" evil, kivéve onLoad előtt
- new Function helyett anon. function kivéve onLoad előtt
- javascript: "protokol" ignorláva
- Külső (nem sandbox-ban lévő) JavaScript file-ok betöltése
Mik is azok a sandboxok?
Az AIR biztonsági politikája
- Application sandbox
ezek az alkalmazás könyvtárában taláható fileok
- NON-Application sandbox
minden más helyről származó kódok
Kiterjesztések
HTML
- iFrame
sandboxRoot, documentRoot, allowCrossDomainXHR, ondominitialize
- DOM Event model
oncopy, ondrag, ondrop, onpaste, oninput...
- HTML contentEditable attributum (true/false)
Hasznos shortcutok
Filekezelés
- Capabilities.os
- File.getDirectoryListing()
- air.File.documentsDirectory;
- air.File.userDirectory;
- air.File.desktopDirectory;
- air.File.applicationDirectory;
- air.File.applicationStorageDirectory;
- .resolvePath("preferences.xml");
Hasznos shortcutok
aliases.js
- Egyszerű rövidítések az AS3 API-hoz:
- air.File = window.runtime.flash.filesystem.File;
- air.FileFilter = window.runtime.flash.net.FileFilter;
- air.SQLConnection = window.runtime.flash.data.SQLConnection;
- air.NativeWindowDisplayStateEvent = window.runtime.flash.events.NativeWindowDisplayStateEvent;
JavaScript könyvtár integráció
- jQuery
- ExtJS
- MooTools
- var Dobostorta = new Class({
Implements: Csokolade,
setCukor: function(vol){
this.cukor = vol
}
});
AS3 Sajátosságok
Első felvonás: eseménykezelés
- preventDefault()
- Objektum központú események: Event class
- filestream.addEventListener(air.Event.COMPLETE, function(){});
//vagy
window.nativeWindow.addEventListener(air.Event.CLOSING, onClosingEvent);
- removeEventListener()
- hasEventListener()
AS3 Sajátosságok
Második felvonás: AS3corelib API elérése
- AS3 package így fest:
- package com.adobe.images
{
import flash.geom.*;
/**
* Class that converts BitmapData into a valid JPEG
*/
public class JPGEncoder{...
}
- // Így érhető el JavaScriptből
var encObj = new runtime.com.adobe.images.JPGEncoder()
AS3 Sajátosságok
AS3Corelib extrák
- MD5, SHA1 Hash
- JSON Library
- JPEG and PNG Encoding
- Array, String, Date, Number and XML Utility
- FileMonitor class
- Meghajtó monitorozás: USB, CD/DVD beillesztése
- Erőforrás cachelés
- Naitve process és alkalmazás kommunikáció
További érdekes lib-ek
Tesztelendő területek
- as3exchangelib: Exchange szerver kommunikáció
- as3nativealertlib: modal dialog kezelésre alkalmas lib
- as3notificationlib:
OS szintű infó buborékok létrehozása
Hasznos AIR alkalmazások
Fejlesztőnek
- Lita: SQLite manager
- Balsamiq Mockups: wireframe tervező
- Tweetdeck :)
Köszönöm a figyelmet
Eléhetőségek
- Twitter: twitter.com/kowww
- Facebook: facebook.com/szasz
- Blog: tibor.szasz.hu