Alan tacchinelli

Post on 09-Jul-2015

284 views 0 download

Transcript of Alan tacchinelli

Tacchinelli AlanSviluppatore Web & Mobile

atacchinelli@vista.it

Dott. Tacchinelli AlanLaurea Magistrale in Scienze e Tecnologie Informatiche

Università di Bologna, sede di Cesena

Sviluppatore Web & Mobile presso

Vista Tecnologie sede a Ravenna

VideoVista: utilizzato anche dal Quirinale

PreVista: cms accessibile da mobile

Likella.com: progetto social retail rivolto al mobile con

fidelity card virtuali

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Diversa piattaformaDiverso linguaggio di programmazione

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Sviluppo nativo iOs? Obj - C

Sviluppo nativo Android? Java

SOLUZIONI CROSS-PLATFORM

Sviluppo altre piattaforme? Altri linguaggi

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Framework per lo sviluppo cross-platform

Accesso a componenti nativi

Utilizzo di tecnologie web (Javascript, HTML, CSS)

Open source (licenza Apache 2.0)

Supporto commerciale

Supporta framework Javascript (es. MooTools)

Estendibile con moduli nativi Obj – C e Java

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Pre – compiler◦ Ottimizza, analizza e cerca dipendenza

Front-end compiler◦ Preparazione per JS interpreter

Webkit javascriptCore

Mozilla Rhino o V8

Platform compiler & packager◦ Compile with native tools (Xcode, Android SDK)

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

• Supporta più di 5000 API native

• Alcune specifiche per Android, iPhone, iPad

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Non è sempre vero

// Get platform name

var osname = Ti.Platform.osname;

var isAndroid = (osname == 'android') ? true : false;

var isIphone = (osname == 'iphone') ? true : false;

// Branch the code

if (isAndroid){

// do android code

...

} else {

// do code for other platforms

...

}

// Branch the values

var myValue = (isAndroid) ? 100 : 150;

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Titanium API interpretate e tradotte in API native

Titanium API in javascript code mappano uno a uno le API native

Non tutte le API sono disponibili per tutte le piattaforme; proprietà e metodi diversi per piattaforme diverse

Si possono verificare comportamenti anomali

Ricerca in documentazione e Q&A

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Ogni oggetto possiede metodi e proprietà

Si possono trovare modi alternativi per ottenere lo stesso risultato

Se Titanium non fa quello che ci aspettiamo, scriviamo noi un metodo per forzarlo a fare quello che vogliamo al verificarsi di un certo evento

Es. on OrientationChangeTitanium.Gesture.addEventListener('orientationchange',function(){

// do code

...

});

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Fondamentale la gestione della memoria

Titanium si occupa di tutto… in teoria

In pratica… non sempre la memoria è gestita correttamente

Memory leaks e possibili app crash

Ricerca in documentazione e Q&A

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Anche qui cercare metodi alternativi per ottenere lo stesso risultato

Cercare di forzare Titanium a liberare la memoria, utilizzare altri oggetti come contenitori

Utilizzare CommonJS

Es. immagini per photogallery, o in table view

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

I sistemi nativi sono sempre in aggiornamento

Tempo di attesa per aggiornamento SDK di Titanium (comunque abbastanza frequenti)

Continuous build e licenza Apache 2.0

Possibilità di utilizzare moduli esterni.

Appcelerator Open Mobile Marketplace

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Estensione con moduli e aggiornamento TitaniumSDK con la nostra applicazione Likella

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Vantaggi◦ Cross – platform app in breve

tempo◦ Un codice, molte piattaforme◦ Nessun linguaggio nativo da

conoscere◦ Estendibilità con moduli nativi◦ Ampia community di

sviluppatori, forum e Q&A, KitchenSink

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Svantaggi◦ Modifiche a codice per

piattaforme diverse◦ Vari passaggi di traduzioni

per accedere ad API native possono generare bug

◦ Gestione memoria non sempre efficiente

◦ Aggiornamenti◦ File installazione app occupa

più memoria

NBC, ZipCar, Ebay, University of Wisconsin, The New York Senate, Merlin Entertainments, TripLingo, …

Tacchinelli Alanatacchinelli@vista.it Milano, 19 Ottobre 2012

Soluzioni efficaci per lo sviluppo in

Appcelerator Titanium

Dott. Tacchinelli AlanSviluppatore Web & Mobile

atacchinelli@vista.it