Adobe AIR FAQ: tutto quello che c’è da sapere

Girando su vari Blog (thanks Frank) e grazie alle discussioni con Julius, mi sono accorto che, oltre all’estremo interesse per Adobe AIR, esiste anche molta confusione, e non a torto. Sia gli sviluppatori che gli utilizzatori continuano ad non avere ben chiaro cosa sia, a che cosa serva e come si sviluppi in Adobe AIR. Ho deciso, quindi, di raccogliere le varie discussioni in questa sorta di FAQ per cercare di chiare un po’ quello che si nasconde effettivamente dietro ad Adobe AIR.

COS’E’ – IN PAROLE SEMPLICI – ADOBE AIR?

Possiamo sintetizzare Adobe AIR in questo modo:

  • Svolge tutte le funzionalità di un normale browser internet, come Internet Explorer o FireFox, ma senza le restrizioni relative alla sicurezza di questi ultimi! Dando pieno accesso sia alla macchina su cui è installato sia al suo stesso ambiente inteso come contenitore e quindi Window.

LE APPLICAZIONI AIR (I FILE CON ESTENSIONE .AIR) DEVONO ESSERE INSTALLATE SUL PC PER ESSERE UTILIZZATE?

Si! Esattamente come si fa con una “normale” applicazione. Infatti, dopo l’installazione, l’applicazione comparirà nella lista dei programmi installati, esattamento come Word, Skype ed altri comuni eseguibili. Prima di installare un’applicazione AIR, tuttavia, bisogna installare il “sistema” o ambiente che è in grado di riconoscere ed elaborare i file con estensione .air. Si deve quindi installare, una volta sola, Adobe AIR runtime. Da quel momento saremo in grado di installare ed utilizzare gli applicativi AIR.
L’installazione di una applicazione AIR, in quanto ad aspetto, differisce da quelle standard – a cui siamo abituati – solo perchè il  tool utilizzato per realizzare l’installazione è diverso e contenuto proprio nell’Adobe AIR runtime. Ma le funzioni che svolge sono esattamente le stesse!

DEVO SCARICARE UNA VERSIONE PARTICOLARE DI AIR PER IL MIO SISTEMA OPERATIVO?

Quando si installa l’ambiente la prima volta (Adobe AIR runtime) si deve scegliere il download in base al proprio sistema: Mac o PC. Le applicazioni AIR, invece, grazie appunto all’ambiente installato, sono “univoche”: funzionano su qualsiasi sistema operativo che abbia precedentemente installato Adobe AIR runtime (al momento Mac e Windows – nel futuro Linux ed altro ).

LE APPLICAZIONI AIR SONO LEGGERE E VELOCI?

No! Neanche per sogno. Il “peso” di un’applicazione, tra l’altro, non può venir misurato dalla dimensione del file .air (tra l’altro questo è un discorso valido in generale anche per le comuni applicazione exe). Prima di tutto non esiste un’applicazione leggera per “definizione”. Come accade con le normali applicazioni desktop, ci saranno applicazioni AIR “pesanti” e applicazioni AIR “leggere”, a seconda della funzione che svolgono e, inoltre, a seconda di come sono state sviluppate (ad esempio HTML/Javascript o Flash/Flex). Inoltre i file di installazione .air sono dei pacchetti… compressi! Infine non dimentichiamoci che quando eseguiamo un’applicazione AIR questa funziona grazie al runtime (Adobe AIR runtime – quello installato la prima volta) che, alla fine, è anch’esso un “programma” che occupa spazio e risorse.

Sulla velocità è la stessa identica cosa! In linea di principio, tuttavia, una qualsiasi applicazione “nativa” sarà per forza di cose più “rapida” di una applicazione AIR! (vedi più avanti FAQ sui linguaggi di sviluppo).

COME SVILUPPARE UN’APPLICAZIONE ADOBE AIR?

Esistono vari modi per sviluppare un’applicazione Adobe AIR, sia a pagamento che gratuiti. Con il tempo ne verranno anche di nuovi, molto probabilmente.

Quelli a pagamento sono:

  • Adobe Dreamweaver CS3 + estensione (gratuita)
  • Adobe Flash CS3 Professional + estensione (gratuita)
  • Adobe Flex

Quelli gratuiti sono (ce ne sono anche altri):

Qualsiasi sia la vostra scelta sarà comunque necessario:

QUALE LINGUAGGIO DI PROGRAMMAZIONE DEVO CONOSCERE PER SVILUPPARE IN ADOBE AIR?

Uno dei punti di forza di Adobe AIR è di non possedere un liguaggio di programmazione proprietario! Per sviluppare un’applicazione AIR è sufficiente conoscere o HTML/Javascript o Actionscript. In pratica se siete sviluppatori Web troverete estremamente facile scrivere applicazioni AIR, potendo – di fatto – riutilizzare anche il codice che già avete scritto (sia HTML/Javascript sia Flash) per altre applicazioni. Inoltre essendo AIR un vero e proprio browser, in tutto simile a FireFox o IE, è possibile sviluppare in Javascript con tutti i tool scritti per questo linguaggio, come prototype.js, scriptaculous.js, Dojo, Yahoo UI, jQuery, etc… ;)

COSA CAMBIA – QUINDI – NELLO SVILUPPO DI UN’APPLICAZIONE AIR?

Come abbiamo detto Adobe AIR è a tutti gli effetti un browser! Proprio per questo è possibile sviluppare in HTML/CSS/Javascript e Flash (chissà, domani potrebbe supportare anche Microsoft Silverlight – se qualcuno lo trova ;)) senza alcun problema. Quello che cambia è l’aggiunta di una estensione (l’oggetto air – una vera e propria libreira di oggetti “speciali”), accessibile sia da Javascript che da Actionscript, che permette di eseguire tutte quelle funzionalità normalmente assenti – sia in Javascript che in Actionscript – in quanto strumenti e linguaggi destinati per un browser Internet.

Ad esempio Javascript non permette di leggere il contenuto di una cartella del nostro HardDisk. Grazie all’estensione air sarà possibile scrivere un codice Javascript che sfogli una cartella sul nostro HD e che apra un file!

PERCHE’ DOVREI SCRIVERE UN’APPLICAZIONE IN ADOBE AIR?

Un’applicazione AIR ha senso quando si sfruttano le estensioni messe a disposizione da AIR stesso. Se trasformo (senza nessuna aggiunta) un’applicazione Web in un’applicazione AIR, questo è davvero poco significativo. L’applicazione Blogbabel Rank in AIR che ho scritto io, ad esempio, è perfettamente inutile in quanto non svolge nessuna operazione Desktop di importanza vitale e potrebbe funzionare perfettamente su un browser – cosa tra l’altro che intendo fare ;) ! Io ovviamente l’ho scritta a titolo di esempio, tuttavia qualcuno ha fatto cose simili pensando a chissà quali benefici trarne…

Paradossalmente, invece, quella “sciocchezza” di applicazione che simula di sparare sullo schermo del computer (Adobe AIR: sparariamo allo schermo) sfrutta alcune proprietà peculiari di Adobe AIR! proprietà non riproducibili in un normale browser: tipo un fullscreen in trasparenza (window-less/topmost)!!

QUALI FUNZIONALITA’ NUOVE CI SONO NELLO SVILUPPO CON ADOBE AIR?

Ce ne sono varie e, molto probabilmente, con il tempo ne saranno aggiunte anche di nuove, man mano che Adobe rilascerà nuovi aggiornamenti dell’Adobe AIR runtime. Tra le caratteristiche più importati troviamo:

  • Leggere e scrivere file sul computer
  • Gestione di una database SQL da poter utilizzare per manipolare dati locali
  • Gestione di finestre Desktop con una serie di caratteristiche interessanti come la trasparenza, la possibilità di iconizzarle nella barra delle applicazioni o nella tray-icon, possibilità di manipolare posizione e dimensione, creazione di finestre speciali senza titolo o bordi.
  • Visualizzazione di file PDF

PUNTI DOLENTI E CONTROINDICAZIONI?

Prima di tutto, per gli sviluppatori, impostare l’ambiente di sviluppo per Adobe AIR richiede alcuni passi alquanto articolati! Insomma, a parte Flex, il resto degli ambiente va impostato a dovere e questo richiede tempo e pazienza!

Ci sono ancora delle differenze importanti tra le possibilità offerte da Adobe AIR a seconda del tipo di ambiente di sviluppo che si sceglie. Sicuramente Flex contiene le funzioni più evolute (come la compressione JPEG per salvare bitmap e tutta la libreria mx.) e questio pregiudica l’attività di molti sviluppatori Javascript e Flash. In pratica si costringe il programmatore a dotarsi di Flex! E questo non è bello! ;)