È passato poco più di un anno dall'uscita di Flex 2 (datata Giugno 2006) e mentre molti sviluppatori Flash ancora non hanno provato questo framework ecco arrivare una nuova versione, anche se ancora in beta nel momento in cui scriviamo; si preannunciano comunque diverse novità per la fine dell'anno, con l'introduzione di ulteriori miglioramenti.
La beta di Flex 3 è attualmente scaricabile dagli Adobe Labs, in maniera completamente gratuita (è necessario solo registrarsi al sito).
Creazione di progetti AIR
La nuova tecnologie di Adobe per portare le RIA sul desktop ha già riscosso un altissimo interesse, di conseguenza la novità di Flex 3 che più ha colpito è la possibilità di realizzare progetti in AIR direttamente dal Flex Builder.
Sopra vediamo il pannello per la creazione di un nuovo progetto AIR presente nel Flex Builder 3, mentre sotto possiamo vedere la categoria di componenti preimpostati, anche se le maggiori potenzialità di AIR hanno bisogno di codice Actionscript per essere sfruttate.
Anche l'esportazione è resa molto semplice, basta selezionare la voce Export e verremo guidati da un semplice wizard, composto da pochi passaggi, fino alla pubblicazione del package finale.
Qualora non si utilizzasse il Flex Builder ma si fosse scaricato solo il Flex SDK per utilizzarlo con un altro editor, si possono utilizzare prodotti come Aptana per la fase di test e l'esportazione finale. Sia il Builder che l'SDK di Flex 3 includono tutti i file necessari per l'esportazione in AIR; gli strumenti come Aptana permettono di semplificare il processo di esportazione in AIR che se eseguito solo tramite l'SDK andrebbe eseguito tramite linea di comando.
Integrazione con la Creative Suite 3
Con la nuova release di Flex aumenta l'integrazione con Flash e con gli altri software delle suite: è possibile importare dei file realizzati, ad esempio, con Photoshop per poterli sfruttare come skin per i componenti; il procedimento è guidato da un semplice wizard.
Si potrà scegliere sia tra cartelle e file bitmap che tra file SWC o SWF; in quest'ultimo caso verrà fatto un parsing dei file e sarà mostrato l'elenco delle clip importabili come skin nel progetto.
Con Flash CS3 l'interazione è migliorata grazie al Flex Component Kit, che permette di creare all'interno dei progetti Flash dei contenuti da riutilizzare poi nelle proprie applicazioni Flex, senza che sia necessario del codice aggiuntivo. Oltre a questo, è possibile inserire file SWF creati con Flash in un'applicazione Flex, ma questo era già possibile nella versione 2.
Migliorie sui componenti
Flex si basa molto sui componenti per sveltire lo sviluppo delle interfacce e in questa nuova versione è stato introdotto un nuovo componente, l'Advanced DataGrid,inoltree sono state inserite delle migliorie sui componenti precedenti come ad esempio il Deep linking, che permette di gestire gli URL contenenti il carattere cancelletto (#), utilizzato come ancora nelle pagine Html. Ad esempio, ora è possibile, grazie al component BrowserManager e al deep linking, ricavare i dati dall'url e quindi impostare nell'applicazione una checkbox sullo stato selezionato o deselezionato, basandosi sul valore passato nell'indirizzo web.
Anche lo skinning dei componenti è molto più semplice grazie all'editing visuale dei file CSS. In figura abbiamo un esempio di questa modalità che ricorda molto l'editing dei componenti in Flash CS3; potremo così vedere subito i cambiamenti apportati ad un elemento e valutarne l'aspetto.
Il modello visuale di riferimento e il codice effettivo del CSS saranno sempre sincronizzati ed è possibile scegliere tra dei package pre-impostati la base di partenza per il proprio foglio di stile.
Proprio l'editing dei CSS è stato notevolmente migliorato, anche in modalità "Source", poiché il pannello Outline, quando si sta modificando un foglio di stile, provvederà a mostrare al suo interno tutti i tag, e le proprietà, suddivisi in modo da risultare facilmente raggiungibili.
Abbiamo accennato poco fa al componente Advanced DataGrid, una evoluzione decisamente notevole del DataGrid presente sia in Flash che in Flex; con questa nuova versione è possibile creare strutture molto più complesse di quanto consenta il semplice DataGrid e i dati possono essere anche raggruppati in più insiemi.
Miglioramenti per la scrittura del codice
Molti progressi sono stati fatti per quanto concerne la stesura del codice Actionscript e la relativa compilazione; per esempio è stato implementato il caching delle classi, che permette una velocità di compilazione aumentata del 30-40% rispetto a Flex 2, questo poiché le classi precedentemente compilate, che non hanno subito modifiche, non vengono ricompilate ogni volta, ma viene utilizzata la copia più recente salvata nella cache del software.
Funzione molto interessante introdotta in Flex 3 è il Refractoring: questa funzione consente di rinominare classi, metodi o variabili con la comodità che tutti i riferimenti a quel metodo, classe o variabile verranno cambiati automaticamente. Il vantaggio in termini di tempo, specialmente in progetti di una certa entità, è decisamente notevole.
Altri miglioramenti per quanto riguarda la comodità di scrittura sono stati applicati nel pannello Outline: è ora possibile eseguire una ricerca all'interno del codice per visualizzare solo i metodi che ci interessano in quel momento, inoltre sono mostrati anche gli import delle classi.
La novità maggiore però è senza dubbio il Profiler, ovvero uno strumento di debug che ci permette di vedere quanta memoria è occupata dagli elementi del filmato, il tempo di esecuzione delle funzioni e altro ancora. Basandoci su questi dati potremo ottimizzare le nostre applicazioni in modo da garantire le massime performance.
Scelta del compilatore
Flex 3 permette la retrocompatibilità con Flex 2, infatti, è possibile selezionare dalle preferenze del software il compilatore da utilizzare per il progetto attualmente aperto, così da poter eventualmente esportare il proprio lavoro con le caratteristiche della versione precedente di Flex; inoltre è possibile personalizzare gli SDK.
Miglior supporto per progetti multilingua
Flex 3 consente di creare applicazioni multilingua in maniera molto semplice utilizzando dei Resource Bundle, file esterni contenenti delle coppie nel formato chiave=valore. Questi file verranno inglobati come SWF nell'applicazione finale, risultando così compressi direttamente nel file e di conseguenza immediati nel caricamento.
All'interno del file dell'applicazione potremo sfruttare le risorse contenute nei resource bundle per mostrare, ad esempio, i campi di un form nella lingua selezionata in precedenza dall'utente.
Grazie a questa feature risulta molto semplice aggiungere delle versioni localizzate per un'applicazione realizzata in Flex.
Esportazione di file più leggeri
Grazie anche alle potenzialità del Flash Player 9, Flex 3 è in grado di produrre file molto più leggeri rispetto alle versioni precedenti poiché l'SWF può non includere tutto il framework di Flex al suo interno, ma solamente il codice e il preloader inserito di default da Flex. Il resto del framework verrà cercato all'interno del player, che qualora ne trovasse uno lo manterrà in una sua cache interna. Questo vuol dire che l'aggiunta di più elementi e componenti al progetto non comporterà una variazione significativa di peso come succedeva prima dell'utilizzo della cache del Flash Player.
Flex diventa open source
Una novità che ha fatto molto scalpore è stata la dichirazione che Flex sarebbe diventato open source: sebbene la beta attuale rappresenti solo uno dei primi passaggi, Adobe conta di rendere il framework Flex un progetto completamente open-source entro i primi mesi del 2008.
Questo comporta ovviamente una serie di vantaggi per gli sviluppatori, che potranno analizzare il codice del compilatore e applicare possibili personalizzazioni; Flex dovrebbe essere rilasciato in forma open source soto la licenza MPL (Mozilla Public License) e si dovrebbe avere a disposizione non solo il codice Actionscript dei componenti (già presente nell'SDK della versione 2) ma anche il codice java dei compilatori Actionscript e MXML, del debugger e delle librerie native dell'SDK.
Verranno offerte anche altre possibilità commerciali per l'accesso all'SDK. Il Flex Builder rimarrà a pagamento, anche se alcune anticipazioni sembrano voler far intendere che il costo di Flex 3 sarà inferiore a quello dell'attuale versione.
Novità previste per le prossime release
Finora abbiamo parlato di novità che sono effettivamente disponibili (anche se in qualche caso non testate al 100%) nella beta attualmente a disposizione negli Adobe Labs, contrassegnata come M2 (Milestone 2).
Sono già previste alcune aggiunte per le release M3 e M4, previste rispettivamente per ottobre e per fine 2007, dopo di che (primi mesi del 2008) dovrebbe essere rilasciata la versione definitiva.
Per la Milestone 3 sono programmate le seguenti novità:
- Color picker migliorato, più simile a quello disponibile in Photoshop;
- Wizard per la connessione a dati server-side;
- Wrapper Javascript/Ajax per l'interazione tra queste tecnologie e Flex;
- Supporto per componenti di terze parti nella visuale Design;
- Interazione con Web Service, con wizard e aiuti per un dialogo più semplice con servizi esterni.
Non sono attualmente reperibili informazioni su eventuali feature previste per la Milestone 4.
Conclusioni
Abbiamo analizzato le principali novità introdotte in Flex 3 fino a questo momento; questo programma probabilmente avrà uno sviluppo pressoché parallelo con AIR, per cui non sono assolutamente da escludere altre novità prima delle release definitiva, ma già quanto visto finora costituisce un notevole aggiornamento rispetto alla versione 2, soprattutto se consideriamo che tutto questo sfrutta sempre la versione 9 del Flash Player, già molto diffusa.
Il fatto che così tante novità siano state inserite senza realizzare una versione apposita del player lascia intuire che le potenzialità della versione 9 forse non sono ancora pienamente sfruttate e potrebbe essere proprio Flex 3 a utilizzarle appieno e avere i maggiori benefici.
Adobe sta puntando molto su Flex per cui chi non avesse ancora provato questo prodotto e fosse interessato allo sviluppo di RIA, magari con la possibilità di espandere il campo di azione al desktop grazie ad AIR, dovrebbe sicuramente dargli un'occhiata.