Titanium VS PhoneGapTitanium VS PhoneGap
Lo sviluppo di applicazioni mobili è uno delle killer-app degli ultimi anni, ma quali problemi si nascondono dietro al loro sviluppo?
I problemi principali nel convertire un’idea vincente in un’app sono due:
1. la grande varietà di piattaforme diverse presenti sul mercato (ad es. iOS, Android, webOS, WP7, solo per citarne alcune)
2. i diversi fattori di forma dei device, fatta eccezione per l’iPhone che ha delle dimensioni pressoché uguali tra le versioni
Per quanto riguarda il secondo problema si sta cercando di adottare uno standard comune tra i diversi costruttori anche se la strada è ancora lunga, mentre sul primo problema l’ostacolo più grande da superare è quello di dover usare linguaggi di programmazione diversi in base alla piattaforma. Ad esempio se dobbiamo sviluppare un’app per Android useremo Java; un’app per iPhone useremo Objective C; e così via. Questo implicherà per un’azienda avere più linee di sviluppo separate e replicare per ciascuna piattaforma gli interventi di manutenzione e/o di evoluzione dell’app.
Proprio dall’esigenza di riuscire a scrivere il codice una sola volta e deliverare su più piattaforme sono nati dei tool di sviluppo mobile cross-platform. Ce ne sono in commercio diversi, la maggior parte di essi si possono utilizzare gratuitamente, ed il guadagno principale delle aziende che li hanno creati deriva dai corsi di formazione, sparsi per il globo o in via telematica, per i developer che decidono di usarli. Una panoramica degli ambienti di sviluppo per mobile si può trovare qui.
I due tool più famosi che voglio presentare e mettere a confronto sono: Titanium di Appcelerator e PhoneGap di Nitobi (acquistato da qualche mese da Adobe). Entrambi permettono di scrivere la proprio applicazione usando HTML5, CSS e JavaScript e deployare applicazioni native per diverse piattaforme. La documentazione è ben fatta e ci sono molti esempi per entrambi.
Di seguito due brevi video che li presentano:
Per quanto riguarda le differenze tra i due:
- Titanium ha un maggior numero di API e di componenti UI native rispetto a PhoneGap;
- Titanium è sotto licenza Apache che è più rigida della MIT di PhoneGap;
- Titanium ha come target platform: Android, iOS e presto BlackBerry;
- PhoneGap ha come target platform: Android, iOS, BlackBerry, Symbian, webOS, WP, Bada;
- Titanium ha un proprio IDE Eclipse based, Titanium Studio, derivato da Aptana.
Al di là di quale dei due si sceglierà di usare, come detto in precedenza permettono di scrivere una sola volta il codice ed ottenere applicazioni native per più piattaforme, ma ci sono due problemi principali nel loro uso:
- se vi sono dei bug nel framework di Titanium o PhoneGap, nonostante le relative aziende che sono dietro questi prodotti si sforzino di essere il più celeri possibili nel bug fixing, la loro risoluzione potrebbe prendere un po’ di tempo. Come si può immaginare, se questi bug sono bloccanti per noi, il ritardo nella loro risoluzione causerà disagi e rallentamenti nello sviluppo della nostra app ;
- quando viene rilasciata una nuova versione di una piattaforma (ad es. il recente iOS 5) non si potrà immediatamente deployare per la nuova piattaforma, ma si dovrà attendere la release del framework che conterrà l’allineamento del framework stesso per la nuova versione della piattaforma.
In conclusione, dalla mia esperienza con questi due strumenti, il mio consiglio è che se dobbiamo sviluppare applicazioni complesse è preferibile capire in quale piattaforma mobile ricade il bacino più consistente dei nostri user target e sviluppare direttamente un’app nativa per quella piattaforma e solo in un secondo momento arrivare nei marketplace delle altre piattaforme. Mentre è preferibile usare questi tool per applicazioni semplici.