Se avete un’idea originale per una app mobile, se la vostra azienda vuole offrire ai propri clienti servizi in mobilità o crearne nuovi tramite la vetrina mondiale degli app stores, o se volete semplicemente aggiungere alle vostre skills la capacità di creare app per iPhone, iPad, Android e Blackberry, Titanium vi permetterà di realizzare applicazioni mobili multipiattaforma in tempi rapidissimi.
Appceletor Titanium è una piattaforma free e open source che permette la creazione di applicazioni mobili cross-platform e native utilizzando le tecnologie del Web: JavaScript, HTML e CSS. Ecco cosa ci ha detto al riguardo il Dott. Antonio Calanducci, fondatore di Etnatraining [sponsor] e docente presso l’Università di Catania.
1. Titanium permette lo sviluppo di app cross-platform. Cosa significa esattamente?
Con Titanium è possibile generare apps per molteplici dispositivi, partendo da un’unica base di codice. Al momento vi è il supporto per iOS (sia iPhone/iPod touch che iPad) e Android (smartphone e tablet, dalla versione 1.6 alla 4.0 IceCream). Sarebbe utopico credere che lo stesso identico codice e gli stessi asset grafici funzionino perfettamente su tutte le piattaforme. Appcelerator non promette il “write once, run everywhere” (che difatti si trasforma in un “write once, suck everywhere” citando Loren Britcher, autore di Tweetie, client Twitter per iOS), ma “write once, adapt everywhere”. Vi è infatti un meccanismo di “branching” basato su sottocartelle per piattaforme diverse, in cui uno stesso file grafico o un JSS (JavaScript Style Sheet) sarà compilato per la piattaforma di destinazione, ma il codice della business logic, che rappresenta orientativamente l’80% dell’app, rimarrà invariato.
Oltre al supporto per Blackberry e per il MobileWeb (ovvero per tutti gli smartphone che dispongono di un browser mobile di ultima generazione), Appcelerator ha nella sua roadmap anche il support per Windows Phone.
2. Esistono altre piattaforme che promettono lo sviluppo mobile cross-platform, come Phone Gap, Sencha Touch, jQuery Mobile, Adobe Air, Corona, Unity, per citare le più famose. Quali sono le differenze con Titanium?
Le alternative/concorrenti a Titanium offrono tre approcci al problema del cross-platform: uso di una WebView, di OpenGL o di un Runtime proprietario. Phone Gap ad esempio, di recente acquistito da Adobe, permette di “incapsulare” un’applicazione/sito Web che viene visualizzata in una WebView (il browser mobile del dispositivo “nascosto”, senza barre del menù e di stato) come una app da distribuire sui market. Sicuramente è un approccio rapido al “porting” di un sito/web app esistente, ma la “user experience” è naturalmente diversa; l’utente non troverà generalmente il look & feel tipico delle applicazioni sviluppate con gli ambienti nativi (controlli come pulsanti, tableview, pickers etc), ma tutti i controli saranno disegnati con immagini e fogli di stile. Inoltre non avranno accesso a servizi nativi, come local notifications, background services, overlay sulla fotocamera etc; anche le performance ne soffriranno poiché la User Interface sarà “emulata” dentro una pagina web.
Gli approcci basati su OpenGL e il Runtime proprietario soffrono allo stesso modo del problema della “native user experience” sebbene possano rappresentare una buona scelta per alcune tipologie di applicazioni, come i giochi 3D o giochi interattivi sviluppati già con la tecnologia Flash.
Titanium usa un approccio totalmente diverso poiché permette l’accesso diretto e il controllo dei componenti (controlli grafici) e servizi nativi. Le API (Application Programming Interface) offerte dalla piattaforma mappano uno ad uno tutti i controlli e i servizi nativi delle piattaforme target; un pulsante creato con Titanium sarà un pulsante con il look & feel nativo di iOS su iPhone e con il look & feel di Android su un Galaxy Samsung S2. Ciò non solo dal punto di vista estetico ma anche per quanto concerne le performance.
Ecco perché Titanium promette la creazione di app NATIVE.
3. Quali sono i vantaggi/svantaggi di Titanium rispetto allo sviluppo con gli ambienti nativi (Objective-C/Cocoa Touch e Java/Android)?
Per scrivere app con Titanium, si utilizzano i linguaggi con cui si sviluppano siti web, JavaScript per la logica e CSS/HTML per il layout grafico. JavaScript è un linguaggio semplice da imparare, leggibile e intuitivo, le cui basi possono essere apprese in un solo giorno, a differenza invece di Objective-C o Java la cui curva di apprendimento è notevole.
Generalmente quando un’azienda decide di sviluppare un’app mobile, la realizza in un primo momento per una piattaforma (di solito iOS) e passa in seguito ad una seconda piattaforma, il che implica più cicli di sviluppo e testing con team di lavoro molteplici e con skill su ogni diversa piattaforma. Di conseguenza un altro vantaggio è rappresentato dall’unico ambiente e linguaggio di programmazione e dalla possibilità di avanzare contemporaneamente nello sviluppo su più piattaforme. Ulteriore vantaggio è legato ai tempi di sviluppo, difatti JavaScript in tandem con le API di Titanium riesce ad essere molto “sintetico”; lo sviluppatore scrive meno righe di codice rispetto a Objective-C o Java. Su Youtube o è possibile visionare un nostro video in cui viene dimostrato come creare una ShoppingList, sia per iPhone che Android, con sole 10 righe di codice e in soli 10 minuti. Per chi inizia in questo settore JavaScript è molto più semplice da apprendere rispetto Objective-C o Java; chi invece è un Web Developer o Web Designer, il time-to-market sarà bassissimo.
Inoltre nel mondo iOS la gestione della memoria rappresenta uno dei principali ostacoli che devono affrontare i neo-sviluppatori; con Titanium è il framework che se ne occupa, dietro le quinte, permettendo allo sviluppatore di concentrarsi così sulla logica di funzionamento.
Uno svantaggio di Titanium rispetto agli ambienti nativi si ha al momento in cui le case di iOS e Android rilasciano aggiornamenti e nuove funzionalità; occorre infatti attendere che Appcelerator rilasci gli aggiornamenti che consentano di “mappare’ le novità introdotte. Tuttavia Titanium è un framework estendibile, è possibile infatti integrare dei moduli scritti con gli ambienti nativi esponendone le funzionalità in JavaScript. Esistono già tantissimi moduli nativi open source su Github e un MarketPlace ufficiale da cui scaricare o acquistare nuovi moduli.
4. Quali sono i requisiti minimi per la partecipazione ai corsi su Titanium di EtnaTraining?
Nonostante JavaScript sia un linguaggio semplice da apprendere, è richiesta una minima esperienza con la programmazione . Non importa con quale linguaggio, Visual Basic, Turbo Pascal, C/C++, Java, Php, Python. Ci aspettiamo che il partecipante abbia un’idea chiara su quali siano i concetti base della programmazione come variabili, cicli, istruzioni condizionali, funzioni. Un bonus è rappresentato dalla conoscenza dei concetti della programmazine ad oggetti, ma ciò non è strettamente necessario poiché saranno introdotti durante la prima giornata di lavoro. È possibile fare un test a questa pagina per verificare le proprie conoscenze
Dal punto di vista dell’hardware è vivamente consigliato un portatile con sistema Mac; a causa di restrizioni da parte di Apple, lo sviluppo per iOS è consentito solo su tale sistema operativo. Chi partecipa con un PC Windows o Linux potrà sviluppare e fare il testing esclusivamente su Android.
5. Come sono organizzati i vostri corsi? Quali argomenti vengono trattati?
Il nostro corso prevede la presentazione dei concetti del linguaggio che servono a creare app con Titanium in un solo pomeriggio. Senza dimenticare che con un solo linguaggio è possibile creare apps per due piattaforme (entro marzo Appcelerator presenterà il supporto ufficiale per Blackberry e il mobile web, di conseguenza il numero di target device aumenterà).
Il corso è un’alternarsi di teoria frontale (con esempi live) e hands-on pratiche, guidati dallo sviluppo completo, dall’inizio alla fine, di un’applicazione per la gestione di ToDoList: dal design dell’interfaccia utente, l’implementazione dei meccanismi di persistenza con diverse tecnologie (Properties, Database locale, FileSystem), l’interazione con un Web Service per lo storage remoto, l’integrazione con Facebook, fino ad aggiungere un servizio di push notification che avvisa l’utente della nostra applicazione quando la sua “todo” è in scadenza.
6. Dove si svolgono i corsi su Titanium in Italia?
Al momento abbiamo in calendario varie edizioni mensili, in diverse città italiane. Il prossimo corso si terrà a Milano, presso Espero (nostro partner) dal 7 al 10 Febbraio (ancora 4 posti disponibili). Poi toccherà a Catania, Bologna, Torino (Roma, qualora ci fossero richieste). A disposizione sul sito di Entneatraining c’è il calendario completo dei corsi
7. Quanto costano i corsi su Titanium? Sono previsti sconti per gli studenti o non titolari di partita IVA?
Il costo del corso è di 590 euro + IVA. (Chi conosce JavaScript e vuole partecipare a partire dal secondo giorno ha uno sconto di 90 euro). Per gli studenti o per i privati senza partita IVA, di cui ci facciamo noi carico, è previsto uno sconto del 10%, per un totale di 500 euro, tutto incluso. Al lettori di Macitynet, invece, viene riservato un ulteriore sconto di 20 euro. Basta menzionare il nostro sito nel campo dove si richiede di avere informazioni su come si è appreso dei corsi.
Per prenotarsi partire dalla pagina dei corsi
8. Come posso avere ulteriori informazioni su Titanium e sui corsi organizzati da EtnaTraining?