Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Introduzione ad Appcelerator Titanium

I principali vantaggi di Titanium: perchè conviene sfruttare questo framework, come funziona e quali sono i requisiti per imparare ad usarlo.
I principali vantaggi di Titanium: perchè conviene sfruttare questo framework, come funziona e quali sono i requisiti per imparare ad usarlo.
Link copiato negli appunti

Lo sviluppo di applicazioni mobile sta diventando sempre più
importante nel panorama software consumer e soprattutto
enterprise. In un mercato in crisi e difficile come quello
odierno, le imprese hanno sempre più la necessità di produrre
soluzioni fruibili da tablet o smartphone.

Sviluppare app native o ibride?

Lo sviluppo di una applicazione mobile pone sempre alcuni
interrogativi legati alla piattaforma da adottare. Meglio
iOS o Android?
Meglio una soluzione nativa oppure
ibrida o totalmente Web? Meglio sviluppare in outsourcing oppure
sfruttare competenze già acquisite in azienda dal personale IT?

Le principali piattaforme mobile sul mercato si appoggiano a
tecnologie non compatibili tra loro, per cui lo sviluppo nativo
cross platform implica il dover produrre ciascuna app per iOS e
Android utilizzando due progetti distinti: uno per
piattaforma. Ciò implica la necessità di preparare
asset grafici che rispettino le linee guida dei produttori, avere a disposizione team
di sviluppo che sappiano programmare in Objective-C e Java, e
quindi dover gestire due basi di codice separate, che vanno altresì documentate
e sottoposte a debug e testing.

Spesso non si hanno a disposizione sviluppatori con le competenze
necessarie e non è nemmeno semplice riconvertire un team a
sviluppare per mobile. Lo sviluppo di un'app cross-platform potrebbe tradursi in un aumento dei costi e dei tempi di
consegna difficilmente sostenibile.

App HTML5?

Per risolvere questa situazione potenzialmente complessa alcuni
adottano lo sviluppo di applicazioni web o ibride da far girare
sui loro dispositivi. Questo tipo di soluzioni hanno il vantaggio di
essere scritte utilizzando HTML5, CSS e JavaScript e che possono
girare teoricamente su qualsiasi device. Purtroppo, anche in
questo caso, non sempre è possibile adottare questa strategia; le
ragioni sono molteplici:

  • Minimo comune denominatore
    Le WebApp, pur avendo la capacità di interagire con l'hardware
    di un dispositivo mobile, rischiano di rappresentare il minimo
    comune denominatore tra le caratteristiche di ciascuna
    piattaforma. Ciò implica che difficilmente potranno usufruire
    delle funzionalità avanzate di ogni singolo dispositivo, nè dei
    servizi di alto livello offerti dall'ultima release di un
    sistema operativo mobile.
  • Performance
    Esiste un problema legato alle prestazioni: trattandosi di
    applicazioni che girano in una WebView, non si possono ottenere
    performance pari a quelle di una equivalente applicazione
    nativa.
  • Conformità alle linee guida
    Una WebApp non sfrutta le linee guida della user experience del dispositivo.
    Questo è spesso un requisito importante, di cui occorre tenere
    conto nello sviluppo dell'applicazione, e che richiederebbe
    l'adozione di uno stile e di una UX costruita ad hoc per essere
    simile a quella nativa di ciascuna piattaforma.

App cross-platform in JavaScript (ma non HTML5)

Titanium è un sistema di sviluppo che permette
di scrivere applicazioni cross-platform utilizzando un solo
linguaggio di programmazione: JavaScript. Questo consente ai
programmatori provenienti dallo sviluppo su web di riutilizzare le
proprie competenze anche in ambito mobile, producendo applicazioni
native
(cioè che non girano dentro una WebView)
e multipiattaforma.

Ad oggi, Titanium (l'ultima versione è la 3.2.3 GA) supporta lo
sviluppo su iOS, Android, MobileWeb
(HTML5), Blackberry e Tizen.

Architettura

Titanium è un framework di tipo write once adapt everywhere,
cioè un framework in cui gran parte della logica di business,
delle funzioni di base, della gestione degli eventi può essere
considerata al 100% cross platform, ma dove è possibile
specializzare il codice per sfruttare alcune caratteristiche
tipiche di una piattaforma e non disponibili sulle altre. Un caso
tipico è l'interfaccia utente.

Per fare un esempio, le UI di Android e iOS hanno entrambe a
disposizione widget come le etichette (Label) e i
pulsanti (Button) ma iOS ha widget che non sono presenti
in Android (le Coverflow per citarne una) e viceversa
(le ActionBar per esempio).

Titanium permette di scrivere app in grado di sfruttare
le peculiarità di ciascuna piattaforma
su cui è
previsto il rilascio: sarà possibile, ad esempio, utilizzare l'ActionBar
se l'app gira su Android oppure farne a meno nel caso di altri
sistemi operativi.

Come funziona Titanium?

Titanium fa da ponte tra il codice sorgente dell'applicazione e
il sistema operativo nativo. Le applicazioni, scritte in
JavaScript non usano il DOM ma effettuano chiamate all'API
esposta dall'SDK di Titanium.

Quando si scrive un'applicazione che, per esempio, fa chiamate al
sistema operativo per disegnare un pulsante o per interrogare il
GPS, si deve chiamare in realtà una funzione dell'SDK che,
attraverso l'uso di oggetti Proxy, permette di
mappare le richieste fatte attraverso JavaScript nelle equivalenti
chiamate in codice nativo.

Lo stesso meccanismo funziona nella direzione opposta: quando il
sistema operativo deve notificare un evento all'applicazione (per
esempio un pulsante premuto o un altro evento dell'interfaccia
utente), l'evento viene trasportato in alto (bubbling)
fino a poter essere gestito dentro il codice JavaScript.

Il sistema dei proxy permette alle applicazioni
Titanium di avere il look and feel delle applicazioni native
(perchè la UI è disegnata attraverso chiamate ai metodi nativi del
sistema operativo) con il vantaggio per lo sviluppatore di dover
gestire un solo progetto e una sola base di codice per più
piattaforme, per di più utilizzando un linguaggio semplice e
potente come JavaScript.

Le applicazioni risultanti saranno leggermente più lente
delle equivalenti native, ma il tempo di sviluppo, soprattutto se
multipiattaforma, è ridotto al minimo.

Titanium è gratuito (esiste una versione
enterprise a pagamento), è disponibile per OSX, Windows e Linux.
Può essere usato sia con la IDE proprietaria (Titanium
Studio
) che con una CLI (Command Line Interface) basata
su Node.js e personalizzabile. Per chi usa editor come Sublime
Text, sono presenti molti plugin (uno su tutti: sublime-ti-build)
per scrivere e compilare senza utilizzare l'IDE.

Titanium Studio è dotato comunque di un debugger
integrato che permette il debug dell'applicazione sia sul
simulatore che sul dispositivo fisico, quest'ultimo indispensabile
nel caso di sviluppo su Android (dato che l'emulatore di Google
non è molto performante).

Per chi vuole iniziare a sviluppare app con Titanium è
sicuramente necessario conoscere JavaScript. Chi ha nozioni di HTML,
XML e CSS troverà facile e intuitivo lavorare con i
progetti Alloy, il framework MVC di Titanium. Non
sono necessarie le competenze per lo sviluppo in codice nativo (Java e/o
Objective-C), a meno che non si vogliano creare moduli esterni. Chi
ha già programmato in ambiente Node.js potrà utilizzare la
versione Titanium, Node.ACS, che permette di associare a ciascuna
app un backend Node.js online che gira sul cloud di Appcelerator.

Nella prossima lezione vedremo come installare Titanium e quali
strumenti ci mette a disposizione per lo sviluppo delle nostre
applicazioni native.

Ti consigliamo anche