Nel precedente post Titanium e Phonegap: il nostro punto di vista abbiamo analizzato le differenze architetturali e le caratteristiche delle due piattaforma.
La caratteristica con cui ci si scontra maggiormente quando si parla di applicazioni cross-platform è sicuramente la UX dell’applicazione. Cercare di fornire un’esperienza utente che non dia la sensazione di trovarsi davanti ad una pagina web, ma ad una vera e propria applicazione. Lo sviluppo cross-platform vorrebbe puntare proprio a questo risultato ma, fino a non molto tempo fa, le differenze con lo sviluppo nativo erano davvero palesi, oggi fortunatamente i passi avanti in questa direzione sono stati notevoli.
Vediamo le differenze che le due piattaforme forniscono allo sviluppatore.
Phonegap è il più semplice da spiegare, offre una webview. Semplice ed immediato.
A noi “basta” riempire interi file di codice HTML, CSS e Javascript per ottenere un risultato praticamente omogeneo. In realtà alcune differenze di gestione dei CSS ci sono tra iOS ed Android, e soprattutto con le versioni pre-KitKat di Android stesso. Questi sono problemi che i webdevelopers incontrano quotidianamente a causa delle differenze tra i vari browser, per cui è veramente facile trovare supporto e soluzioni anche ai problemi più particolari.
Con CSS3 sono stati fatti notevoli passi avanti nella gestione dei layout della pagina e si riesce ad operare in maniera discretamente precisa per quanto riguarda la disposizione degli elementi, ma necessita di una conoscenza abbastanza buona per poter essere sfruttato al meglio e, come detto, le complicazioni aumentano in maniera esponenziale se si lavora con Android pre-Kitkat (che oggi, dicembre 2014, rimangono comunque la maggioranza).
I problemi sono per lo più causati da HTML, che non era stato pensato come un linguaggio per l’impaginazione verticale e solo adesso si sono iniziate a strutturare le pagine con quel fine.
Dall’altro lato Titanium invece sfrutta le View native. Ogni finestra che creerete utilizzando le API specifiche verrà convertita in una finestra nativa, godendo appunto di tutti i vantaggi che questo comporta nella gestione dei layout. Potrete facilmente e velocemente gestire le spaziature ed il posizionamento centrale degli elementi, ma non ne esce indiscusso vincitore. È comunque necessario prestare notevole attenzione alla differenza tra i vari SO. Infatti è molto probabile che un’impostazione perfettamente funzionante su Android risulti completamente errata su iOS, questo in maniera ancora più frustrante che con CSS. Situazione che peggiora considerando l’assenza di tool di sviluppo in tempo reale. Esistono tool esterni per simulare un livereload ma si tratta comunque di modificare il file, attendere la compilazione e l’aggiornamento e verificare le modifiche: nulla a che vedere con la velocità di utilizzo dei Chrome Developer Tools.