Ci apprestiamo ad entrare in un campo minato, quello dell’annoso scontro. Iniziamo subito con le ovvietà: non esiste un vincitore. Entrambe le piattaforme presentano peculiarità specifiche e problematiche con cui finirete per scontrarvi.
Nessuno dei due necessita di presentazioni approfondite. Iniziamo con alcune considerazioni di carattere generale che andremo poi ad approfondire nelle prossime settimane.
PhoneGap
Espone una webview che può essere estesa con plugin per godere dell’integrazione con funzionalità native. L’uso di HTML/CSS nudo e crudo con Javascript consente uno sviluppo molto rapido su linguaggi conosciuti e rodati, con ampie community di supporto; trattandosi di una semplice webview che mostra pagine HTML la compatibilità cross platform è praticamente assoluta finché ci si attiene alle API dei linguaggi, ma alcuni problemi possono sorgere quando si utilizzano plugin che interagiscono con elementi nativi molto differenti tra le piattaforme come la gestione della memoria fisica. Gli strumenti di sviluppo sono molteplici, perfezionati e ciascuno può basarsi sulle proprie preferenze. Inoltre ampie community stanno portando avanti l’integrazione con i più moderni framework per lo sviluppo di webapp.
Titanium
Quello che per me è il suo più grande difetto è l’assoluta dipendenza da Titanium Studio per il debugging. Per iOS è disponibile uno strumento di uno sviluppatore indipendente ma per Android è obbligatorio l’utilizzo della piattaforma Studio che, sebbene soggetto a continui miglioramenti, è derivato da una vecchia versione di Eclipse e potrebbe non essere il vostro strumento di sviluppo preferito. Dal canto suo Titanium consente di ottenere applicazioni cross platform con un feeling nativo incredibile rispetto a PhoneGap ed una maggiore integrazione con i moduli grazie alla traduzione delle view in vere e proprie finestre, molto più semplici da gestire che non tramite CSS. Questo però si paga con la necessità di dover utilizzare le API specifiche di Titanium che, sebbene siano ottimamente sviluppate e coprano la quasi totalità delle necessità, rimangono un “linguaggio” da comprendere ed utilizzare, più limitato rispetto a CSS (tipicamente vittima di amore ed odio) oltre a dover prestare attenzione alle differenze di gestione dei vari layout tra le piattaforme che possono creare anche notevoli problemi. La community di supporto è appcelerator-centrica, quasi tutti i problemi che potrete incontrare sono risolti sul forum per developer proprietario di appcelerator e qualche sporadica risposta su Stackoverflow. Questo è un bene, denota una viva attenzione della società per i suoi sviluppatori, oltre a porsi essa stessa come punto di riferimento, ma potrebbe diventare una limitazione in futuro. Decidete voi se lo reputate un bene od un male.
Maggiori dettagli tecnici sulle differenze tra le due piattaforme sono disponibili nel post Titanium e Phonegap: gestione del layout.
Restiamo in attesa della presentazione di PhoneGap Enterprise per un eventuale nuovo confronto e stabilire se esiste un vincitore assoluto tra queste due piattaforme che Gartner posiziona tra Leaders e Visionaries nel Magic Quadrant for Mobile Application Development Platforms.