Tacchinelli Alan
Sviluppatore Web & Mobile

   atacchinelli@vista.it
Dott. Tacchinelli Alan
 Laurea 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 Alan
  atacchinelli@vista.it                                            Milano, 19 Ottobre 2012
Diverso linguaggio
Diversa piattaforma
                         di programmazione


 Tacchinelli Alan
 atacchinelli@vista.it             Milano, 19 Ottobre 2012
Sviluppo nativo iOs?                   Obj - C


Sviluppo nativo Android?               Java


Sviluppo altre piattaforme?            Altri linguaggi



                    SOLUZIONI CROSS-PLATFORM
 Tacchinelli Alan
 atacchinelli@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 Alan
    atacchinelli@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 Alan
atacchinelli@vista.it                                      Milano, 19 Ottobre 2012
•   Supporta più di
    5000 API native

•   Alcune specifiche
    per Android,
    iPhone, iPad




       Tacchinelli Alan
       atacchinelli@vista.it   Milano, 19 Ottobre 2012
Tacchinelli Alan
atacchinelli@vista.it   Milano, 19 Ottobre 2012
Tacchinelli Alan
atacchinelli@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 Alan
    atacchinelli@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 Alan
    atacchinelli@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 OrientationChange
Titanium.Gesture.addEventListener('orientationchange',function(){
    // do code
    ...
});



    Tacchinelli Alan
    atacchinelli@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 Alan
    atacchinelli@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 Alan
    atacchinelli@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 Alan
    atacchinelli@vista.it                       Milano, 19 Ottobre 2012
   Estensione con moduli e aggiornamento Titanium
    SDK con la nostra applicazione Likella




    Tacchinelli Alan
    atacchinelli@vista.it                  Milano, 19 Ottobre 2012
   Vantaggi                               Svantaggi
    ◦ Cross – platform app in breve         ◦ Modifiche a codice per
      tempo                                   piattaforme diverse
    ◦ Un codice, molte piattaforme          ◦ Vari passaggi di traduzioni
    ◦ Nessun linguaggio nativo da             per accedere ad API native
      conoscere                               possono generare bug
    ◦ Estendibilità con moduli nativi       ◦ Gestione memoria non
    ◦ Ampia community di                      sempre efficiente
      sviluppatori, forum e Q&A,            ◦ Aggiornamenti
      KitchenSink                           ◦ File installazione app occupa
                                              più memoria




      Tacchinelli Alan
      atacchinelli@vista.it                                   Milano, 19 Ottobre 2012
NBC, ZipCar, Ebay, University of Wisconsin, The New York Senate, Merlin Entertainments,
TripLingo, …



  Tacchinelli Alan
  atacchinelli@vista.it                                                 Milano, 19 Ottobre 2012
Soluzioni efficaci per lo sviluppo in
      Appcelerator Titanium




        Dott. Tacchinelli Alan
         Sviluppatore Web & Mobile



            atacchinelli@vista.it

Alan tacchinelli

  • 1.
    Tacchinelli Alan Sviluppatore Web& Mobile atacchinelli@vista.it
  • 2.
    Dott. Tacchinelli Alan Laurea 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 Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 3.
    Diverso linguaggio Diversa piattaforma di programmazione Tacchinelli Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 4.
    Sviluppo nativo iOs? Obj - C Sviluppo nativo Android? Java Sviluppo altre piattaforme? Altri linguaggi SOLUZIONI CROSS-PLATFORM Tacchinelli Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 5.
    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 Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 6.
    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 Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 7.
    Supporta più di 5000 API native • Alcune specifiche per Android, iPhone, iPad Tacchinelli Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 8.
  • 9.
  • 10.
    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 Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 11.
    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 Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 12.
    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 OrientationChange Titanium.Gesture.addEventListener('orientationchange',function(){ // do code ... }); Tacchinelli Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 13.
    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 Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 14.
    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 Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 15.
    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 Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 16.
    Estensione con moduli e aggiornamento Titanium SDK con la nostra applicazione Likella Tacchinelli Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 17.
    Vantaggi  Svantaggi ◦ Cross – platform app in breve ◦ Modifiche a codice per tempo piattaforme diverse ◦ Un codice, molte piattaforme ◦ Vari passaggi di traduzioni ◦ Nessun linguaggio nativo da per accedere ad API native conoscere possono generare bug ◦ Estendibilità con moduli nativi ◦ Gestione memoria non ◦ Ampia community di sempre efficiente sviluppatori, forum e Q&A, ◦ Aggiornamenti KitchenSink ◦ File installazione app occupa più memoria Tacchinelli Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 18.
    NBC, ZipCar, Ebay,University of Wisconsin, The New York Senate, Merlin Entertainments, TripLingo, … Tacchinelli Alan atacchinelli@vista.it Milano, 19 Ottobre 2012
  • 19.
    Soluzioni efficaci perlo sviluppo in Appcelerator Titanium Dott. Tacchinelli Alan Sviluppatore Web & Mobile atacchinelli@vista.it