Trovando la porta chiusa, Flash cerca di entrare dalla finestra

In una maniera o nell’altra, Adobe vuol fare entrare la tecnologia Flash su iPhone. È un’insistenza che fatico a comprendere, e che oltretutto può anche rivelarsi controproducente per l’azienda stessa. Ma tant’è. Non riuscendo a far sì che iPhone supporti Flash, cercano di fare il contrario, ossia di sfruttare la tecnologia Flash per creare applicazioni per iPhone. Come scriveva John Nack sul suo blog una settimana fa: Oggi ad Adobe MAX, l’azienda ha annunciato che i Flash tools saranno in grado di costruire applicazioni per iPhone che potranno essere regolarmente distribuite sull’App Store. Una versione beta di Flash Professional CS5 con questa nuova capacità dovrebbe essere rilasciata verso la fine di quest’anno. Non si tratta di file SWF di Flash, ma di applicazioni iPhone native.

Spiega Gruber, riportando la notizia: Non si tratta di un porting del runtime Flash. Non si può utilizzare per caricare contenuti Flash sul Web. Significa invece che gli sviluppatori Flash possono esportare applicazioni per iPhone native — file binari di codice ARM compilato in package con estensione .ipa — che possono poi essere inviati ad Apple attraverso il consueto processo di approvazione per l’ingresso nell’App Store. Esistono già sette applicazioni così realizzate disponibili nell’App Store (costruite grazie a versioni beta dei nuovi developer tools Flash).

La lettura delle FAQ sul sito di Adobe riguardanti la realizzazione di applicazioni per iPhone con Flash è istruttiva. Fra le altre cose si scopre, per esempio, che non è possibile utilizzare i controlli nativi di iPhone OS nelle applicazioni create con Flash. Ciò ovviamente non può che invitare alla realizzazione di un’interfaccia utente fatta di controlli arbitrari e differenti dallo standard a cui ci hanno abituato le applicazioni per iPhone costruite con metodi e strumenti canonici.

Ho aspettato alcuni giorni prima di trattare l’argomento sul mio blog più che altro per vedere se le mie reazioni istintive erano giuste. Non sono un programmatore, e mi sembrava presuntuoso scagliarmi contro Adobe mancando di informazioni. Ma le reazioni di persone che sanno il fatto proprio hanno confermato certi miei sospetti, ossia che scegliere di sviluppare applicazioni per iPhone via Flash non è proprio questa gran soluzione.

Jeff Rock (che, fra l’altro è l’autore di Tumblr per iPhone, un’ottima applicazione) scrive:

In sostanza: non è possibile compilare Actionscript 3 in un’applicazione iPhone. Adobe ha realizzato un qualche tipo di traduttore AS3 – Objective-C selettivo. Alcuni dei motivi per non usarlo:

  • Bug. È già abbastanza arduo effettuare il bug testing sull’Objective-C in forma nativa, figuriamoci attraverso una qualche scatola nera fatta da Adobe. […]
  • Gestione della memoria. Volete davvero affidarvi a un’entità di terze parti per la ritenzione e il rilascio di oggetti? Questo non è il genere di cose che è preferibile lasciare in mani altrui.
  • Cambiamenti nel SDK. Apple va avanti con il suo classico ritmo. Stare al passo con il suo SDK è fondamentale, e aspettare che Adobe (o una qualsiasi altra entità che non siate voi) si adegui ai cambiamenti non è una mossa intelligente.
  • Rottura delle HIG (Linee Guida dell’Interfaccia utente). Ho letto le FAQ e pare che non si possa accedere a UIKit. Quindi non è possibile utilizzare nessuno degli ottimi controlli messi a disposizione da Apple. Quindi siamo costretti a sorbirci qualunque pasticcio di interfaccia utente lo sviluppatore Flash di turno vuole imbastire. Vi lascio un istante per rifletterci su.
  • Capacità. Non avete a disposizione nemmeno l’intero SDK. Solo quel che Adobe ha voglia di supportare. Se vi imbarcate in un progetto e a un certo punto vi rendete conto che vi occorre l’accesso a una particolare API Apple non supportata, beh, si mette male per voi.

Tutti questi fattori si uniscono al fatto che un’entità inaffidabile [Adobe] diventa il singolo punto di errore. E prima che ce ne dimentichiamo, Adobe stessa è a malapena in grado di scrivere applicazioni in Objective-C. Stiamo ancora aspettando un aggiornamento alla Suite CS4 che le impedisca di andare in crash quando si muove il mouse troppo in fretta. Volete davvero fidarvi di loro per la gestione della vostra memoria, per la traduzione del vostro codice e nello stare al passo con il SDK di Apple?

Louis Gerbarg, dopo aver esaminato i contenuti del package .ipa di un’applicazione iPhone creata con Flash CS5 beta, scrive:

Tecnicamente parlando, pare davvero che [i contenuti] siano in linea con l’accordo dell’SDK, se si considera però il fatto che Adobe sembra effettuare chiamate ad API private. Dovrebbe essere in grado di fare ciò che le serve senza dover fare quelle chiamate, per cui alla fine questo dovrebbe essere un non-problema.

Ora, l’idea che il prodotto di questa cosa sia indistinguibile da quanto produce Xcode è risibile. Sono due risultati molto diversi, e non in senso buono. Se da un lato le applicazioni [realizzate in Flash] possono arrivare a ottenere frame rate accettabili su un iPhone 3GS, ciò non accade su hardware meno recente, e quasi certamente consumano più batteria rispetto ai giochi creati nativamente.

Insomma, a me sembra piuttosto chiaro dove il tutto stia andando a parare. Il fatto che Adobe voglia fare in modo che la prossima versione di Flash sia in grado di realizzare applicazioni per iPhone, più che una grande novità, mi sembra invece una conferma di quanto davvero Flash sia alla frutta. Per la serie: se HTML 5 gli darà il colpo di grazia sul Web, almeno lo si potrà usare per… fare qualcosa.

Adobe dovrebbe fermarsi un momento e fare quel che Apple ha fatto con Snow Leopard: ottimizzare l’esistente invece di continuare a gonfiare la Creative Suite aggiungendo funzioni di dubbia utilità e creando applicazioni sempre meno Mac e sempre meno affidabili.

Category Mele e appunti Tags

About Riccardo Mori

Writer. Translator. Mac consultant. Enthusiast photographer. • If you like what I write, please consider supporting my writing by purchasing my short stories, Minigrooves or by making a donation. Thank you!