Date post: | 09-Jul-2015 |
Category: |
Technology |
Upload: | smau |
View: | 280 times |
Download: | 0 times |
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
Diversa piattaformaDiverso linguaggio di programmazione
Tacchinelli [email protected] Milano, 19 Ottobre 2012
Sviluppo nativo iOs? Obj - C
Sviluppo nativo Android? Java
SOLUZIONI CROSS-PLATFORM
Sviluppo altre piattaforme? Altri linguaggi
Tacchinelli [email protected] 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 [email protected] 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 [email protected] Milano, 19 Ottobre 2012
• Supporta più di 5000 API native
• Alcune specifiche per Android, iPhone, iPad
Tacchinelli [email protected] Milano, 19 Ottobre 2012
Tacchinelli [email protected] Milano, 19 Ottobre 2012
Tacchinelli [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] Milano, 19 Ottobre 2012
Estensione con moduli e aggiornamento TitaniumSDK con la nostra applicazione Likella
Tacchinelli [email protected] 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 [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
NBC, ZipCar, Ebay, University of Wisconsin, The New York Senate, Merlin Entertainments, TripLingo, …
Tacchinelli [email protected] Milano, 19 Ottobre 2012
Soluzioni efficaci per lo sviluppo in
Appcelerator Titanium
Dott. Tacchinelli AlanSviluppatore Web & Mobile