Alan tacchinelli

19
Tacchinelli Alan Sviluppatore Web & Mobile [email protected]

Transcript of Alan tacchinelli

Page 1: Alan tacchinelli

Tacchinelli AlanSviluppatore Web & Mobile

[email protected]

Page 2: Alan tacchinelli

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 [email protected] Milano, 19 Ottobre 2012

Page 3: Alan tacchinelli

Diversa piattaformaDiverso linguaggio di programmazione

Tacchinelli [email protected] Milano, 19 Ottobre 2012

Page 4: Alan tacchinelli

Sviluppo nativo iOs? Obj - C

Sviluppo nativo Android? Java

SOLUZIONI CROSS-PLATFORM

Sviluppo altre piattaforme? Altri linguaggi

Tacchinelli [email protected] Milano, 19 Ottobre 2012

Page 5: Alan tacchinelli

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 [email protected] Milano, 19 Ottobre 2012

Page 6: Alan tacchinelli

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 [email protected] Milano, 19 Ottobre 2012

Page 7: Alan tacchinelli

• Supporta più di 5000 API native

• Alcune specifiche per Android, iPhone, iPad

Tacchinelli [email protected] Milano, 19 Ottobre 2012

Page 8: Alan tacchinelli

Tacchinelli [email protected] Milano, 19 Ottobre 2012

Page 9: Alan tacchinelli

Tacchinelli [email protected] Milano, 19 Ottobre 2012

Page 10: Alan tacchinelli

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 [email protected] Milano, 19 Ottobre 2012

Page 11: Alan tacchinelli

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 [email protected] Milano, 19 Ottobre 2012

Page 12: Alan tacchinelli

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 [email protected] Milano, 19 Ottobre 2012

Page 13: Alan tacchinelli

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 [email protected] Milano, 19 Ottobre 2012

Page 14: Alan tacchinelli

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 [email protected] Milano, 19 Ottobre 2012

Page 15: Alan tacchinelli

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 [email protected] Milano, 19 Ottobre 2012

Page 16: Alan tacchinelli

Estensione con moduli e aggiornamento TitaniumSDK con la nostra applicazione Likella

Tacchinelli [email protected] Milano, 19 Ottobre 2012

Page 17: Alan tacchinelli

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 [email protected] 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

Page 18: Alan tacchinelli

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

Tacchinelli [email protected] Milano, 19 Ottobre 2012

Page 19: Alan tacchinelli

Soluzioni efficaci per lo sviluppo in

Appcelerator Titanium

Dott. Tacchinelli AlanSviluppatore Web & Mobile

[email protected]