SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
HTML5, KnockoutJS, Phonegap
            VS
     Sviluppo Nativo
  Quando si e quando no?
Sviluppare applicazioni per dispositivi mobili con particolare
       attenzione agli standard per l’interoperabilità




            Ing. Davide Senatore [Microsoft MVP]
                       Ingenium s.a.s.

                                                            Wikisticker
                                                            RELIVE YOUR TIME
Agenda
•   Building on standard from the ground up
•   Tools and HTML5: ubiquitous language?
•   Javascript: dynamic and modern or ancient and cumbersome?
•   KnockoutJS: MVVM Framework On-The-Web
•   Phonegap AKA Cordova project: pack your app!
•   Native development: big effort!
•   Two apps: Healthcare Manager and Wikisticker
•   Pros & Cons
•   Closing and Q&A
Obiettivo

            Consumer
Massima diffusione della nostra App

             Business
Massima flessibilità della nostra App
Standard
• Progettare un ottimo back-end per le
  nostre app
  • È necessario per proteggere
    l’investimento
  • Si deve basare su tecnologie web
    standard
     • REST, JSON, HTTP

 • L’approccio KISS resta il migliore
    • Oauth, integrazione con i grandi player (FB, Twitter, g+)
    • Simple plain API
       • Riusabile – Semplice – Atomica - Interoperabile



       soluzioni proprietarie possono rivelarsi sgradevoli…
                  Standard is better!
Tools & HTML5
• HTML5
  • In DRAFT, ma sempre più diffuso
  • Risultati a portata di mano
  • Non è più un linguaggio web-only

• Tools
  • Sempre più potenti
  • Rispettano ed aiutano lo sviluppatore
  • Qualunque sia la «provenienza» dello sviluppatore ci sono degli IDE
    di alto livello per sviluppare Mobile Apps in HTML5

       L’uso di HTML5 ci assicura una portabilità delle interfacce su
     più piattaforme client (Web, iPhone, Android, Windows Phone)
Javascript
• Javascript è un linguaggio
  • Potente
  • Flessibile
  • Standard

• È anche «odiato» da molti sviluppatori, in quanto in passato si è
  rivelato uno scoglio molto difficile, ma…
  • I tools sono migliorati
  • Il debug è oggi possibile
  • Un numero sempre maggiore di framework (server e client) sono
    sviluppati in javascript
  • La programmazione web (client) è 100% Javascript

                 Conoscere Javascript è una necessità
MVVM: il fuoco dello sviluppo
• Il pattern MVVM è un presentation
  pattern
  • Permette di semplificare e
    disaccoppiare lo sviluppo delle parti
    componenti un client
  • KnockoutJS implementa MVVM con
    javascript

 • KnockoutJS è un ottimo strumento perché:
   • Può essere utilizzato nel web, in simbiosi con altri framework
   • Può essere utilizzato nello sviluppo mobile, e si integra alla
     perfezione con framework complessi tipo JQueryMobile
   • È *DAVVERO* multipiattaforma essendo basato su standard
MVVM: come funziona?
         Presentation Layer
              (HTML5)




         ViewModel Layer
             (Javascript)




            Model Layer
             (Javascript)




                                Web
SQLite      Objects           services
Phonegap: pack your app!
• Sviluppare con un unico codebase
  • Fare deploy su più piattaforme
  • Impiegare un builder «in the cloud»
  • Tutto questo è possibile, con Phonegap!

• Phonegap nasce per colmare il divario tra le varie piattaforme
  «mobile», uniformando lo sviluppo e permettendo
  • Utilizzo di tools moderni per lo sviluppo
    (jquery/HTML5/KOJS/JQM)
  • Riuso di conoscenze già acquisite nello sviluppo web

               Write ONCE deploy EVERYWHERE…
               …non va sempre così bene!
Bridge the Gap
• L’idea di PhoneGap:
  • Sviluppare app in HTML5+JS
  • Utilizzare una libreria specializzata per ogni piattaforma
    che faccia da «bridge» tra l’HTML5+CSS3+JS ed il
    dispositivo
  • In pratica si tratta di un proxy
  • Dal nostro codice JS, tramite questo proxy, abbiamo
    accesso a tutte (o quasi) le caratteristiche del nostro
    dispositivo
Native Development
• Lo sviluppo nativo consiste nell’ uso
  delle tecnologie e dei linguaggi di
  sviluppo proprietarie delle varie
  piattaforme
  • iOS  Objective-c
  • Android  Java
  • Windows Phone  C#
• Per che piattaforma la sviluppiamo?
      • Windows Phone 7, iPhone, Android, BlackBerry?
• Risposta: PER TUTTE LE PIATTAFORME
   • Strategia: armonizzare e standardizzare la parte «in comune» tra le
     varie piattaforme, ovvero la parte dei servizi (almeno il 50% del valore
     del nostro investimento)

              Se sviluppiamo in nativo avremo bisogno di
                un client diverso per ogni piattaforma!
The big effort of native dev
• Per ottenere alcuni risultati
  • È NECESSARIO andare in nativo!
• Ci sono determinate classi ci
  applicazioni che non conviene
  sviluppare in HTML5

 • Un esempio fra tutti: applicazioni di realtà aumentata
    • Necessitiamo di un «contatto» diretto con le funzionalità HW del
      dispositivo
    • Dobbiamo ottimizzare le routine, per offrire un’esperienza migliore
 • Questo può costare molto, in quanto ci costringe ad avere (minimo)
   tre team di sviluppo per ottenere risultati accettabili

      Prima di scegliere il nativo, valutare se gli stessi risultati si
         possono raggiungere con un’app multipiattaforma
Alcuni esempi di App
• Come esempio possiamo parlare di quattro applicazioni, due
  sviluppate in HTML5, le altre in modalità nativa
  • Healthcare manager (HTML5)
  • Gymmit (HTML5+Nativa)
  • Wikisticker (Nativa)
Healthcare Manager
• Healthcare Manager è un’app per tablet Android che serve
  per raccogliere dati di pazienti sul campo
     • HTML5+Javascript+KnockoutJS+PhoneGap e DB SqlLite


  • È stata sviluppata in multipiattaforma perché il committente
    aveva tablet Android, ma altri clienti potrebbero avere iPad
  • L’app funziona in modalità offline e l’utilizzo di DB SQLite
    permette di essere ancora una volta multipiattaforma
  • È un’app di tipo «gestionale» con menu, composizione di
    documenti, raccolta dati con lookup, selezione da liste, ricerche
Gymmit
• Gymmit, il social network dello sport e degli sportivi
  • due app, che sono state sviluppate sullo stesso back end
  • Una multipiattaforma, per iPhone e Android
  • Una nativa, per Windows Phone

  • Le app servono per trovare palestre, campi da tennis etc.
  • Consultare i calendari corsi delle strutture
  • Effettuare prenotazioni
Wikisticker
• Wikisticker è un’app di geo-messaging in realtà aumentata.
  Permette di lasciare dediche, messaggi o avvisi geolocalizzati,
  fruibili in realtà aumentata.
  • In pratica consente di vedere questi avvisi come se ci fluttuassero
    attorno
  • Nella versione 2.0 permette di lasciare anche foto ricordo o
    messaggi audio e di linkare contenuti direttamente nello spazio

• È stata sviluppata con
  •   Back-end multipiattaforma basato su standard
  •   Client nativo Windows Phone
  •   Client nativo Android (correntemente in sviluppo)
  •   Completamente multilingua
Smau milano 2012   arena social media davide-senatore
Interoperable back-end:
Pro & Cons
• Pro
  • Scrivo il back end e lo riutilizzo su tutte le piattaforme
  • Posso utilizzare qualunque linguaggio o piattaforma per crearlo, a
    patto di interloquire mediante standard
  • Leggero e impegna poca banda, importante per servizi con
    grande traffico
• Contro
  • Richiede uno sforzo progettuale maggiore
  • È necessario pensarlo come scenario request-response con
    serializzazione di classi POCO/POJO
  • Richiesto un Versioning rigoroso per accordare tutte le
    piattaforme
Multiplatform Client:
Pro & Cons
• Pro
  • Strumenti di sviluppo allo stato dell’arte (VS2012,
    Dreamweaver,IntellijIDEA etc.)
  • Sviluppo unificato, il limite è la fantasia dei grafici
  • Disponibilità di plugin di qualsiasi tipo (jQuery etc)
  • Molti framework disponibili (jQueryMobile)
  • Interfaccia condivisa tra le varie piattaforme
  • Costo ridotto (rispetto alle app native)
  • Qualunque developer WEB è un developer di Hybrid App
• Contro
  •   Non sfrutta completamente le peculiarità di ogni device
  •   Inadatte per CPU intensive app (performance)
  •   Non rispettano le guidelines di ogni piattaforma (vedi Metro)
  •   Dipendono essenzialmente dalla bontà del browser del device
  •   Interfaccia unica per tutte le piattaforme, si perde la caratteristica di
      ognuno
Native Client:
Pro & Cons
• Pro
  •   Performance
  •   Contatto con la piattaforma
  •   Rispetto delle linee guida grafiche e di design
  •   Uso di features tipiche della piattaforma o del sistema operativo
  •   Debug con strumenti integrati (VS, Intellij, Xcode…)
• Contro
  • Conoscenza del dispositivo
  • Conoscenza di un linguaggio tipico della piattaforma
  • Se si vuole sviluppare per n piattaforme si devono creare n
    progetti, ciascuno diverso dall’altro
  • Il rilascio delle versioni può diventare problematico
Conclusioni
• Sviluppare App Interoperabili e Multipiattaforma o Native:
  • Per il back-end:
     • Utilizzare standard per la comunicazione, REST e JSON
     • Pensare e realizzare API flessibili ma mirate per risolvere i problemi
       del dominio applicativo
  • Per il front-end multiplatform
     • Conoscere HTML è garanzia di operatività immediata
     • Nessun bisogno di imparare linguaggi nuovi
     • Sviluppo unificato, ma performances che dipendono dai browser
  • Per il front-end nativo
     • Si deve conoscere bene il dispositivo dove si va a sviluppare
     • Si possono rispettare le design guideline della piattaforma
     • Ci si può avvalere di tutte le feature offerte dall’accoppiata
       device/sistema operativo
Link e riferimenti
• Alcuni link utili:
   • PhoneGap
      • http://phonegap.com
   • KnockoutJS
      • http://knockoutjs.com
   • Jquery Mobile
      • http://jquerymobile.com
   • Mango Tools
      • http://www.microsoft.com/download/en/details.aspx?id=27570
   • Intellij IDEA
      • http://www.jetbrains.com
   • Android SDK
      • http://developer.android.com/sdk/index.html
Contatti
   • Davide Senatore
                       blogs.ugidotnet.org/dsenatore

                       info@ingeniumsoft.com

                       www.ingeniumsoft.com

                       www.gymmit.com

                       www.wikisticker.com

@davidesenatore




                                     Wikisticker
                                     RELIVE YOUR TIME

Mais conteúdo relacionado

Mais procurados

Sviluppare applicazioni Metro con Windows 8 e WinRT
Sviluppare applicazioni Metro con Windows 8 e WinRTSviluppare applicazioni Metro con Windows 8 e WinRT
Sviluppare applicazioni Metro con Windows 8 e WinRTcodeblock
 
Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di riaLorenzo Bortolotto
 
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1codeblock
 
DrupalDay 2014: AngularJS + IonicFramework + Drupal Services
DrupalDay 2014: AngularJS + IonicFramework + Drupal ServicesDrupalDay 2014: AngularJS + IonicFramework + Drupal Services
DrupalDay 2014: AngularJS + IonicFramework + Drupal ServicesMichel Morelli
 
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013Luca Zulian
 
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouchProgrammiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouchStefano Ottaviani
 
Nativo vs Xamarin pro e contro
Nativo vs Xamarin pro e controNativo vs Xamarin pro e contro
Nativo vs Xamarin pro e controCarmelo Ruota
 
TIYLA - Translate In Your Language @Whymca '11
TIYLA - Translate In Your Language @Whymca '11TIYLA - Translate In Your Language @Whymca '11
TIYLA - Translate In Your Language @Whymca '11Stefano Zingarini
 

Mais procurados (11)

Sviluppare applicazioni Metro con Windows 8 e WinRT
Sviluppare applicazioni Metro con Windows 8 e WinRTSviluppare applicazioni Metro con Windows 8 e WinRT
Sviluppare applicazioni Metro con Windows 8 e WinRT
 
MonoTouch, un anno dopo
MonoTouch, un anno dopoMonoTouch, un anno dopo
MonoTouch, un anno dopo
 
Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di ria
 
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
 
INTRO TO XAMARIN
INTRO TO XAMARININTRO TO XAMARIN
INTRO TO XAMARIN
 
DrupalDay 2014: AngularJS + IonicFramework + Drupal Services
DrupalDay 2014: AngularJS + IonicFramework + Drupal ServicesDrupalDay 2014: AngularJS + IonicFramework + Drupal Services
DrupalDay 2014: AngularJS + IonicFramework + Drupal Services
 
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
 
Rich Internet Application
Rich Internet ApplicationRich Internet Application
Rich Internet Application
 
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouchProgrammiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
 
Nativo vs Xamarin pro e contro
Nativo vs Xamarin pro e controNativo vs Xamarin pro e contro
Nativo vs Xamarin pro e contro
 
TIYLA - Translate In Your Language @Whymca '11
TIYLA - Translate In Your Language @Whymca '11TIYLA - Translate In Your Language @Whymca '11
TIYLA - Translate In Your Language @Whymca '11
 

Destaque

Smau Bari 2013 menocarta.net conservazione a norma scritture contabili
Smau Bari 2013 menocarta.net conservazione a norma scritture contabiliSmau Bari 2013 menocarta.net conservazione a norma scritture contabili
Smau Bari 2013 menocarta.net conservazione a norma scritture contabiliSMAU
 
Smau milano 2012 arena expo comm mario-maschio
Smau milano 2012   arena expo comm mario-maschioSmau milano 2012   arena expo comm mario-maschio
Smau milano 2012 arena expo comm mario-maschioSMAU
 
Smau Bari 2013 Vincenzo Tondolo
Smau Bari 2013 Vincenzo TondoloSmau Bari 2013 Vincenzo Tondolo
Smau Bari 2013 Vincenzo TondoloSMAU
 
Smau Bari 2013 Forum PA - agrimi
Smau Bari 2013 Forum PA - agrimiSmau Bari 2013 Forum PA - agrimi
Smau Bari 2013 Forum PA - agrimiSMAU
 
Smau Bologna 2012 Gentili-Fratepietro cyberwar
Smau Bologna 2012 Gentili-Fratepietro cyberwarSmau Bologna 2012 Gentili-Fratepietro cyberwar
Smau Bologna 2012 Gentili-Fratepietro cyberwarSMAU
 
Smau milano 2012 arena social media matteo-fermi
Smau milano 2012   arena social media matteo-fermiSmau milano 2012   arena social media matteo-fermi
Smau milano 2012 arena social media matteo-fermiSMAU
 
Smau milano 2012 arena social media michele-orsi
Smau milano 2012   arena social media michele-orsiSmau milano 2012   arena social media michele-orsi
Smau milano 2012 arena social media michele-orsiSMAU
 
Smau Bari 2013 Forum PA - serratrice
Smau Bari 2013 Forum PA - serratriceSmau Bari 2013 Forum PA - serratrice
Smau Bari 2013 Forum PA - serratriceSMAU
 
Smau Milano 2012 Mob App Camp Del Pero
Smau Milano 2012 Mob App Camp Del PeroSmau Milano 2012 Mob App Camp Del Pero
Smau Milano 2012 Mob App Camp Del PeroSMAU
 
Smau Bologna 2012 Claudio Rubbiani
Smau Bologna 2012 Claudio RubbianiSmau Bologna 2012 Claudio Rubbiani
Smau Bologna 2012 Claudio RubbianiSMAU
 
Smau milano 2012 paolo mora
Smau milano 2012 paolo moraSmau milano 2012 paolo mora
Smau milano 2012 paolo moraSMAU
 
Smau milano 2012 arena social media matteo-collina
Smau milano 2012   arena social media matteo-collinaSmau milano 2012   arena social media matteo-collina
Smau milano 2012 arena social media matteo-collinaSMAU
 
Smau Milano 2011 Enzo Venneri
Smau Milano 2011 Enzo VenneriSmau Milano 2011 Enzo Venneri
Smau Milano 2011 Enzo VenneriSMAU
 
Smau Bologna 2012 Fabio Lazzarini
Smau Bologna 2012 Fabio LazzariniSmau Bologna 2012 Fabio Lazzarini
Smau Bologna 2012 Fabio LazzariniSMAU
 
Smau Bari 2013 Forum PA - marra
Smau Bari 2013 Forum PA - marraSmau Bari 2013 Forum PA - marra
Smau Bari 2013 Forum PA - marraSMAU
 
Smau milano 2012 arena social media massimo-grava
Smau milano 2012   arena social media massimo-gravaSmau milano 2012   arena social media massimo-grava
Smau milano 2012 arena social media massimo-gravaSMAU
 
Smau Bari 2012 Rodolfo Giometti
Smau Bari 2012   Rodolfo GiomettiSmau Bari 2012   Rodolfo Giometti
Smau Bari 2012 Rodolfo GiomettiSMAU
 
Smau milano 2012 arena expo comm paolo-zanzottera
Smau milano 2012   arena expo comm paolo-zanzotteraSmau milano 2012   arena expo comm paolo-zanzottera
Smau milano 2012 arena expo comm paolo-zanzotteraSMAU
 

Destaque (18)

Smau Bari 2013 menocarta.net conservazione a norma scritture contabili
Smau Bari 2013 menocarta.net conservazione a norma scritture contabiliSmau Bari 2013 menocarta.net conservazione a norma scritture contabili
Smau Bari 2013 menocarta.net conservazione a norma scritture contabili
 
Smau milano 2012 arena expo comm mario-maschio
Smau milano 2012   arena expo comm mario-maschioSmau milano 2012   arena expo comm mario-maschio
Smau milano 2012 arena expo comm mario-maschio
 
Smau Bari 2013 Vincenzo Tondolo
Smau Bari 2013 Vincenzo TondoloSmau Bari 2013 Vincenzo Tondolo
Smau Bari 2013 Vincenzo Tondolo
 
Smau Bari 2013 Forum PA - agrimi
Smau Bari 2013 Forum PA - agrimiSmau Bari 2013 Forum PA - agrimi
Smau Bari 2013 Forum PA - agrimi
 
Smau Bologna 2012 Gentili-Fratepietro cyberwar
Smau Bologna 2012 Gentili-Fratepietro cyberwarSmau Bologna 2012 Gentili-Fratepietro cyberwar
Smau Bologna 2012 Gentili-Fratepietro cyberwar
 
Smau milano 2012 arena social media matteo-fermi
Smau milano 2012   arena social media matteo-fermiSmau milano 2012   arena social media matteo-fermi
Smau milano 2012 arena social media matteo-fermi
 
Smau milano 2012 arena social media michele-orsi
Smau milano 2012   arena social media michele-orsiSmau milano 2012   arena social media michele-orsi
Smau milano 2012 arena social media michele-orsi
 
Smau Bari 2013 Forum PA - serratrice
Smau Bari 2013 Forum PA - serratriceSmau Bari 2013 Forum PA - serratrice
Smau Bari 2013 Forum PA - serratrice
 
Smau Milano 2012 Mob App Camp Del Pero
Smau Milano 2012 Mob App Camp Del PeroSmau Milano 2012 Mob App Camp Del Pero
Smau Milano 2012 Mob App Camp Del Pero
 
Smau Bologna 2012 Claudio Rubbiani
Smau Bologna 2012 Claudio RubbianiSmau Bologna 2012 Claudio Rubbiani
Smau Bologna 2012 Claudio Rubbiani
 
Smau milano 2012 paolo mora
Smau milano 2012 paolo moraSmau milano 2012 paolo mora
Smau milano 2012 paolo mora
 
Smau milano 2012 arena social media matteo-collina
Smau milano 2012   arena social media matteo-collinaSmau milano 2012   arena social media matteo-collina
Smau milano 2012 arena social media matteo-collina
 
Smau Milano 2011 Enzo Venneri
Smau Milano 2011 Enzo VenneriSmau Milano 2011 Enzo Venneri
Smau Milano 2011 Enzo Venneri
 
Smau Bologna 2012 Fabio Lazzarini
Smau Bologna 2012 Fabio LazzariniSmau Bologna 2012 Fabio Lazzarini
Smau Bologna 2012 Fabio Lazzarini
 
Smau Bari 2013 Forum PA - marra
Smau Bari 2013 Forum PA - marraSmau Bari 2013 Forum PA - marra
Smau Bari 2013 Forum PA - marra
 
Smau milano 2012 arena social media massimo-grava
Smau milano 2012   arena social media massimo-gravaSmau milano 2012   arena social media massimo-grava
Smau milano 2012 arena social media massimo-grava
 
Smau Bari 2012 Rodolfo Giometti
Smau Bari 2012   Rodolfo GiomettiSmau Bari 2012   Rodolfo Giometti
Smau Bari 2012 Rodolfo Giometti
 
Smau milano 2012 arena expo comm paolo-zanzottera
Smau milano 2012   arena expo comm paolo-zanzotteraSmau milano 2012   arena expo comm paolo-zanzottera
Smau milano 2012 arena expo comm paolo-zanzottera
 

Semelhante a Smau milano 2012 arena social media davide-senatore

Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developerssparkfabrik
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileRoberto Cappelletti
 
C# Mobile application architecture
C# Mobile application architectureC# Mobile application architecture
C# Mobile application architectureLeonardo Alario
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione AvanzataStefano Sanna
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScriptRoberto Messora
 
Introduzione a DotNetNuke
Introduzione a DotNetNukeIntroduzione a DotNetNuke
Introduzione a DotNetNukeMassimo Bonanni
 
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...DrupalDay
 
Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...Commit University
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
Costruire app per WinPhone, iOS e Android con C# e Xamarin
Costruire app per WinPhone, iOS e Android con C# e XamarinCostruire app per WinPhone, iOS e Android con C# e Xamarin
Costruire app per WinPhone, iOS e Android con C# e XamarinFabio Cozzolino
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaCommit University
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web Appdotnetcode
 
Dal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDiego Giorgini
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROIDPaolo Tosato
 
L'App store per applicazioni Enterprise: La mobilità porta a porta
L'App store per applicazioni Enterprise: La mobilità porta a portaL'App store per applicazioni Enterprise: La mobilità porta a porta
L'App store per applicazioni Enterprise: La mobilità porta a portaMicrofocusitalia
 

Semelhante a Smau milano 2012 arena social media davide-senatore (20)

Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
 
platforms
platformsplatforms
platforms
 
C# Mobile application architecture
C# Mobile application architectureC# Mobile application architecture
C# Mobile application architecture
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Introduzione a DotNetNuke
Introduzione a DotNetNukeIntroduzione a DotNetNuke
Introduzione a DotNetNuke
 
Intro xamarin forms
Intro xamarin formsIntro xamarin forms
Intro xamarin forms
 
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
 
Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...
 
Xamarin
XamarinXamarin
Xamarin
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Costruire app per WinPhone, iOS e Android con C# e Xamarin
Costruire app per WinPhone, iOS e Android con C# e XamarinCostruire app per WinPhone, iOS e Android con C# e Xamarin
Costruire app per WinPhone, iOS e Android con C# e Xamarin
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaforma
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
Dal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie Google
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROID
 
L'App store per applicazioni Enterprise: La mobilità porta a porta
L'App store per applicazioni Enterprise: La mobilità porta a portaL'App store per applicazioni Enterprise: La mobilità porta a porta
L'App store per applicazioni Enterprise: La mobilità porta a porta
 
Introduzione ad Android
Introduzione ad AndroidIntroduzione ad Android
Introduzione ad Android
 
Adesso In Onda
Adesso In OndaAdesso In Onda
Adesso In Onda
 

Mais de SMAU

L'intelligenza artificiale per il marketing automation: come automatizzare le...
L'intelligenza artificiale per il marketing automation: come automatizzare le...L'intelligenza artificiale per il marketing automation: come automatizzare le...
L'intelligenza artificiale per il marketing automation: come automatizzare le...SMAU
 
Il supporto IA nella Lead Generation con Linkedin e Sales Navigator
Il supporto IA nella Lead Generation con Linkedin e Sales NavigatorIl supporto IA nella Lead Generation con Linkedin e Sales Navigator
Il supporto IA nella Lead Generation con Linkedin e Sales NavigatorSMAU
 
SMAU MILANO 2023 | Intrapreneurship: I dipendenti come driver dell'innovazione
SMAU MILANO 2023 | Intrapreneurship: I dipendenti come driver dell'innovazioneSMAU MILANO 2023 | Intrapreneurship: I dipendenti come driver dell'innovazione
SMAU MILANO 2023 | Intrapreneurship: I dipendenti come driver dell'innovazioneSMAU
 
SMAU MILANO 2023 | TECNOLOGIE IMMERSIVE E METAVERSO: SOLUZIONI INNOVATIVE PER...
SMAU MILANO 2023 | TECNOLOGIE IMMERSIVE E METAVERSO: SOLUZIONI INNOVATIVE PER...SMAU MILANO 2023 | TECNOLOGIE IMMERSIVE E METAVERSO: SOLUZIONI INNOVATIVE PER...
SMAU MILANO 2023 | TECNOLOGIE IMMERSIVE E METAVERSO: SOLUZIONI INNOVATIVE PER...SMAU
 
SMAU MILANO 2023 | SMAU MILANO 2023 | Le nuove frontiere dell'ESGtech
SMAU MILANO 2023 | SMAU MILANO 2023 | Le nuove frontiere dell'ESGtechSMAU MILANO 2023 | SMAU MILANO 2023 | Le nuove frontiere dell'ESGtech
SMAU MILANO 2023 | SMAU MILANO 2023 | Le nuove frontiere dell'ESGtechSMAU
 
SMAU MILANO 2023 | AI: Un Alleato Innovativo per l'Omnichannel Customer Exper...
SMAU MILANO 2023 | AI: Un Alleato Innovativo per l'Omnichannel Customer Exper...SMAU MILANO 2023 | AI: Un Alleato Innovativo per l'Omnichannel Customer Exper...
SMAU MILANO 2023 | AI: Un Alleato Innovativo per l'Omnichannel Customer Exper...SMAU
 
SMAU MILANO 2023 | 𝐃𝐢𝐠𝐢𝐭𝐚𝐥 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 𝐉𝐨𝐮𝐫𝐧𝐞𝐲 La nuova frontiera della formazio...
SMAU MILANO 2023 | 𝐃𝐢𝐠𝐢𝐭𝐚𝐥 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 𝐉𝐨𝐮𝐫𝐧𝐞𝐲 La nuova frontiera della formazio...SMAU MILANO 2023 | 𝐃𝐢𝐠𝐢𝐭𝐚𝐥 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 𝐉𝐨𝐮𝐫𝐧𝐞𝐲 La nuova frontiera della formazio...
SMAU MILANO 2023 | 𝐃𝐢𝐠𝐢𝐭𝐚𝐥 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 𝐉𝐨𝐮𝐫𝐧𝐞𝐲 La nuova frontiera della formazio...SMAU
 
SMAU MILANO 2023 | COME PROGETTARE SOLUZIONI CIRCOLARI E MODELLI DI BUSINESS ...
SMAU MILANO 2023 | COME PROGETTARE SOLUZIONI CIRCOLARI E MODELLI DI BUSINESS ...SMAU MILANO 2023 | COME PROGETTARE SOLUZIONI CIRCOLARI E MODELLI DI BUSINESS ...
SMAU MILANO 2023 | COME PROGETTARE SOLUZIONI CIRCOLARI E MODELLI DI BUSINESS ...SMAU
 
SMAU MILANO 2023 | Google Business Profile tra SEO e Social Media
SMAU MILANO 2023 | Google Business Profile tra SEO e Social MediaSMAU MILANO 2023 | Google Business Profile tra SEO e Social Media
SMAU MILANO 2023 | Google Business Profile tra SEO e Social MediaSMAU
 
SMAU MILANO 2023 | Il PM incontra la proprietà intellettuale: pianificare la ...
SMAU MILANO 2023 | Il PM incontra la proprietà intellettuale: pianificare la ...SMAU MILANO 2023 | Il PM incontra la proprietà intellettuale: pianificare la ...
SMAU MILANO 2023 | Il PM incontra la proprietà intellettuale: pianificare la ...SMAU
 
SMAU MILANO 2023 | Il neuromarketing: solo 8 secondi per catturare l’attenzio...
SMAU MILANO 2023 | Il neuromarketing: solo 8 secondi per catturare l’attenzio...SMAU MILANO 2023 | Il neuromarketing: solo 8 secondi per catturare l’attenzio...
SMAU MILANO 2023 | Il neuromarketing: solo 8 secondi per catturare l’attenzio...SMAU
 
SMAU MILANO 2023 | Collaborazioni vincenti: Come le startup possono creare pa...
SMAU MILANO 2023 | Collaborazioni vincenti: Come le startup possono creare pa...SMAU MILANO 2023 | Collaborazioni vincenti: Come le startup possono creare pa...
SMAU MILANO 2023 | Collaborazioni vincenti: Come le startup possono creare pa...SMAU
 
SMAU MILANO 2023 | Funnel Hacking: massimizzare il ROAS in 7 passaggi
SMAU MILANO 2023 | Funnel Hacking: massimizzare il ROAS in 7 passaggiSMAU MILANO 2023 | Funnel Hacking: massimizzare il ROAS in 7 passaggi
SMAU MILANO 2023 | Funnel Hacking: massimizzare il ROAS in 7 passaggiSMAU
 
SMAU MILANO 2023 | Una reputazione che ti precede: come il personal storytell...
SMAU MILANO 2023 | Una reputazione che ti precede: come il personal storytell...SMAU MILANO 2023 | Una reputazione che ti precede: come il personal storytell...
SMAU MILANO 2023 | Una reputazione che ti precede: come il personal storytell...SMAU
 
SMAU MILANO 2023 | Come scalare una produzione video: il caso “Vongola Lupino...
SMAU MILANO 2023 | Come scalare una produzione video: il caso “Vongola Lupino...SMAU MILANO 2023 | Come scalare una produzione video: il caso “Vongola Lupino...
SMAU MILANO 2023 | Come scalare una produzione video: il caso “Vongola Lupino...SMAU
 
SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...
SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...
SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...SMAU
 
SMAU MILANO 2023 | L'intelligenza artificiale per davvero (facciamola sul ser...
SMAU MILANO 2023 | L'intelligenza artificiale per davvero (facciamola sul ser...SMAU MILANO 2023 | L'intelligenza artificiale per davvero (facciamola sul ser...
SMAU MILANO 2023 | L'intelligenza artificiale per davvero (facciamola sul ser...SMAU
 
SMAU MILANO 2023 | Personal Branding: come comunicare in maniera efficace la...
SMAU MILANO 2023 |  Personal Branding: come comunicare in maniera efficace la...SMAU MILANO 2023 |  Personal Branding: come comunicare in maniera efficace la...
SMAU MILANO 2023 | Personal Branding: come comunicare in maniera efficace la...SMAU
 
SMAU MILANO 2023 | What's Next? Rivoluzioni industriali, intelligenza artific...
SMAU MILANO 2023 | What's Next? Rivoluzioni industriali, intelligenza artific...SMAU MILANO 2023 | What's Next? Rivoluzioni industriali, intelligenza artific...
SMAU MILANO 2023 | What's Next? Rivoluzioni industriali, intelligenza artific...SMAU
 
SMAU MILANO 2023 | SMAU MILANO 2023 | Intelligenza Artificiale e chatbots
SMAU MILANO 2023 | SMAU MILANO 2023 | Intelligenza Artificiale e chatbotsSMAU MILANO 2023 | SMAU MILANO 2023 | Intelligenza Artificiale e chatbots
SMAU MILANO 2023 | SMAU MILANO 2023 | Intelligenza Artificiale e chatbotsSMAU
 

Mais de SMAU (20)

L'intelligenza artificiale per il marketing automation: come automatizzare le...
L'intelligenza artificiale per il marketing automation: come automatizzare le...L'intelligenza artificiale per il marketing automation: come automatizzare le...
L'intelligenza artificiale per il marketing automation: come automatizzare le...
 
Il supporto IA nella Lead Generation con Linkedin e Sales Navigator
Il supporto IA nella Lead Generation con Linkedin e Sales NavigatorIl supporto IA nella Lead Generation con Linkedin e Sales Navigator
Il supporto IA nella Lead Generation con Linkedin e Sales Navigator
 
SMAU MILANO 2023 | Intrapreneurship: I dipendenti come driver dell'innovazione
SMAU MILANO 2023 | Intrapreneurship: I dipendenti come driver dell'innovazioneSMAU MILANO 2023 | Intrapreneurship: I dipendenti come driver dell'innovazione
SMAU MILANO 2023 | Intrapreneurship: I dipendenti come driver dell'innovazione
 
SMAU MILANO 2023 | TECNOLOGIE IMMERSIVE E METAVERSO: SOLUZIONI INNOVATIVE PER...
SMAU MILANO 2023 | TECNOLOGIE IMMERSIVE E METAVERSO: SOLUZIONI INNOVATIVE PER...SMAU MILANO 2023 | TECNOLOGIE IMMERSIVE E METAVERSO: SOLUZIONI INNOVATIVE PER...
SMAU MILANO 2023 | TECNOLOGIE IMMERSIVE E METAVERSO: SOLUZIONI INNOVATIVE PER...
 
SMAU MILANO 2023 | SMAU MILANO 2023 | Le nuove frontiere dell'ESGtech
SMAU MILANO 2023 | SMAU MILANO 2023 | Le nuove frontiere dell'ESGtechSMAU MILANO 2023 | SMAU MILANO 2023 | Le nuove frontiere dell'ESGtech
SMAU MILANO 2023 | SMAU MILANO 2023 | Le nuove frontiere dell'ESGtech
 
SMAU MILANO 2023 | AI: Un Alleato Innovativo per l'Omnichannel Customer Exper...
SMAU MILANO 2023 | AI: Un Alleato Innovativo per l'Omnichannel Customer Exper...SMAU MILANO 2023 | AI: Un Alleato Innovativo per l'Omnichannel Customer Exper...
SMAU MILANO 2023 | AI: Un Alleato Innovativo per l'Omnichannel Customer Exper...
 
SMAU MILANO 2023 | 𝐃𝐢𝐠𝐢𝐭𝐚𝐥 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 𝐉𝐨𝐮𝐫𝐧𝐞𝐲 La nuova frontiera della formazio...
SMAU MILANO 2023 | 𝐃𝐢𝐠𝐢𝐭𝐚𝐥 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 𝐉𝐨𝐮𝐫𝐧𝐞𝐲 La nuova frontiera della formazio...SMAU MILANO 2023 | 𝐃𝐢𝐠𝐢𝐭𝐚𝐥 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 𝐉𝐨𝐮𝐫𝐧𝐞𝐲 La nuova frontiera della formazio...
SMAU MILANO 2023 | 𝐃𝐢𝐠𝐢𝐭𝐚𝐥 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 𝐉𝐨𝐮𝐫𝐧𝐞𝐲 La nuova frontiera della formazio...
 
SMAU MILANO 2023 | COME PROGETTARE SOLUZIONI CIRCOLARI E MODELLI DI BUSINESS ...
SMAU MILANO 2023 | COME PROGETTARE SOLUZIONI CIRCOLARI E MODELLI DI BUSINESS ...SMAU MILANO 2023 | COME PROGETTARE SOLUZIONI CIRCOLARI E MODELLI DI BUSINESS ...
SMAU MILANO 2023 | COME PROGETTARE SOLUZIONI CIRCOLARI E MODELLI DI BUSINESS ...
 
SMAU MILANO 2023 | Google Business Profile tra SEO e Social Media
SMAU MILANO 2023 | Google Business Profile tra SEO e Social MediaSMAU MILANO 2023 | Google Business Profile tra SEO e Social Media
SMAU MILANO 2023 | Google Business Profile tra SEO e Social Media
 
SMAU MILANO 2023 | Il PM incontra la proprietà intellettuale: pianificare la ...
SMAU MILANO 2023 | Il PM incontra la proprietà intellettuale: pianificare la ...SMAU MILANO 2023 | Il PM incontra la proprietà intellettuale: pianificare la ...
SMAU MILANO 2023 | Il PM incontra la proprietà intellettuale: pianificare la ...
 
SMAU MILANO 2023 | Il neuromarketing: solo 8 secondi per catturare l’attenzio...
SMAU MILANO 2023 | Il neuromarketing: solo 8 secondi per catturare l’attenzio...SMAU MILANO 2023 | Il neuromarketing: solo 8 secondi per catturare l’attenzio...
SMAU MILANO 2023 | Il neuromarketing: solo 8 secondi per catturare l’attenzio...
 
SMAU MILANO 2023 | Collaborazioni vincenti: Come le startup possono creare pa...
SMAU MILANO 2023 | Collaborazioni vincenti: Come le startup possono creare pa...SMAU MILANO 2023 | Collaborazioni vincenti: Come le startup possono creare pa...
SMAU MILANO 2023 | Collaborazioni vincenti: Come le startup possono creare pa...
 
SMAU MILANO 2023 | Funnel Hacking: massimizzare il ROAS in 7 passaggi
SMAU MILANO 2023 | Funnel Hacking: massimizzare il ROAS in 7 passaggiSMAU MILANO 2023 | Funnel Hacking: massimizzare il ROAS in 7 passaggi
SMAU MILANO 2023 | Funnel Hacking: massimizzare il ROAS in 7 passaggi
 
SMAU MILANO 2023 | Una reputazione che ti precede: come il personal storytell...
SMAU MILANO 2023 | Una reputazione che ti precede: come il personal storytell...SMAU MILANO 2023 | Una reputazione che ti precede: come il personal storytell...
SMAU MILANO 2023 | Una reputazione che ti precede: come il personal storytell...
 
SMAU MILANO 2023 | Come scalare una produzione video: il caso “Vongola Lupino...
SMAU MILANO 2023 | Come scalare una produzione video: il caso “Vongola Lupino...SMAU MILANO 2023 | Come scalare una produzione video: il caso “Vongola Lupino...
SMAU MILANO 2023 | Come scalare una produzione video: il caso “Vongola Lupino...
 
SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...
SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...
SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...
 
SMAU MILANO 2023 | L'intelligenza artificiale per davvero (facciamola sul ser...
SMAU MILANO 2023 | L'intelligenza artificiale per davvero (facciamola sul ser...SMAU MILANO 2023 | L'intelligenza artificiale per davvero (facciamola sul ser...
SMAU MILANO 2023 | L'intelligenza artificiale per davvero (facciamola sul ser...
 
SMAU MILANO 2023 | Personal Branding: come comunicare in maniera efficace la...
SMAU MILANO 2023 |  Personal Branding: come comunicare in maniera efficace la...SMAU MILANO 2023 |  Personal Branding: come comunicare in maniera efficace la...
SMAU MILANO 2023 | Personal Branding: come comunicare in maniera efficace la...
 
SMAU MILANO 2023 | What's Next? Rivoluzioni industriali, intelligenza artific...
SMAU MILANO 2023 | What's Next? Rivoluzioni industriali, intelligenza artific...SMAU MILANO 2023 | What's Next? Rivoluzioni industriali, intelligenza artific...
SMAU MILANO 2023 | What's Next? Rivoluzioni industriali, intelligenza artific...
 
SMAU MILANO 2023 | SMAU MILANO 2023 | Intelligenza Artificiale e chatbots
SMAU MILANO 2023 | SMAU MILANO 2023 | Intelligenza Artificiale e chatbotsSMAU MILANO 2023 | SMAU MILANO 2023 | Intelligenza Artificiale e chatbots
SMAU MILANO 2023 | SMAU MILANO 2023 | Intelligenza Artificiale e chatbots
 

Smau milano 2012 arena social media davide-senatore

  • 1. HTML5, KnockoutJS, Phonegap VS Sviluppo Nativo Quando si e quando no? Sviluppare applicazioni per dispositivi mobili con particolare attenzione agli standard per l’interoperabilità Ing. Davide Senatore [Microsoft MVP] Ingenium s.a.s. Wikisticker RELIVE YOUR TIME
  • 2. Agenda • Building on standard from the ground up • Tools and HTML5: ubiquitous language? • Javascript: dynamic and modern or ancient and cumbersome? • KnockoutJS: MVVM Framework On-The-Web • Phonegap AKA Cordova project: pack your app! • Native development: big effort! • Two apps: Healthcare Manager and Wikisticker • Pros & Cons • Closing and Q&A
  • 3. Obiettivo Consumer Massima diffusione della nostra App Business Massima flessibilità della nostra App
  • 4. Standard • Progettare un ottimo back-end per le nostre app • È necessario per proteggere l’investimento • Si deve basare su tecnologie web standard • REST, JSON, HTTP • L’approccio KISS resta il migliore • Oauth, integrazione con i grandi player (FB, Twitter, g+) • Simple plain API • Riusabile – Semplice – Atomica - Interoperabile soluzioni proprietarie possono rivelarsi sgradevoli… Standard is better!
  • 5. Tools & HTML5 • HTML5 • In DRAFT, ma sempre più diffuso • Risultati a portata di mano • Non è più un linguaggio web-only • Tools • Sempre più potenti • Rispettano ed aiutano lo sviluppatore • Qualunque sia la «provenienza» dello sviluppatore ci sono degli IDE di alto livello per sviluppare Mobile Apps in HTML5 L’uso di HTML5 ci assicura una portabilità delle interfacce su più piattaforme client (Web, iPhone, Android, Windows Phone)
  • 6. Javascript • Javascript è un linguaggio • Potente • Flessibile • Standard • È anche «odiato» da molti sviluppatori, in quanto in passato si è rivelato uno scoglio molto difficile, ma… • I tools sono migliorati • Il debug è oggi possibile • Un numero sempre maggiore di framework (server e client) sono sviluppati in javascript • La programmazione web (client) è 100% Javascript Conoscere Javascript è una necessità
  • 7. MVVM: il fuoco dello sviluppo • Il pattern MVVM è un presentation pattern • Permette di semplificare e disaccoppiare lo sviluppo delle parti componenti un client • KnockoutJS implementa MVVM con javascript • KnockoutJS è un ottimo strumento perché: • Può essere utilizzato nel web, in simbiosi con altri framework • Può essere utilizzato nello sviluppo mobile, e si integra alla perfezione con framework complessi tipo JQueryMobile • È *DAVVERO* multipiattaforma essendo basato su standard
  • 8. MVVM: come funziona? Presentation Layer (HTML5) ViewModel Layer (Javascript) Model Layer (Javascript) Web SQLite Objects services
  • 9. Phonegap: pack your app! • Sviluppare con un unico codebase • Fare deploy su più piattaforme • Impiegare un builder «in the cloud» • Tutto questo è possibile, con Phonegap! • Phonegap nasce per colmare il divario tra le varie piattaforme «mobile», uniformando lo sviluppo e permettendo • Utilizzo di tools moderni per lo sviluppo (jquery/HTML5/KOJS/JQM) • Riuso di conoscenze già acquisite nello sviluppo web Write ONCE deploy EVERYWHERE… …non va sempre così bene!
  • 10. Bridge the Gap • L’idea di PhoneGap: • Sviluppare app in HTML5+JS • Utilizzare una libreria specializzata per ogni piattaforma che faccia da «bridge» tra l’HTML5+CSS3+JS ed il dispositivo • In pratica si tratta di un proxy • Dal nostro codice JS, tramite questo proxy, abbiamo accesso a tutte (o quasi) le caratteristiche del nostro dispositivo
  • 11. Native Development • Lo sviluppo nativo consiste nell’ uso delle tecnologie e dei linguaggi di sviluppo proprietarie delle varie piattaforme • iOS  Objective-c • Android  Java • Windows Phone  C# • Per che piattaforma la sviluppiamo? • Windows Phone 7, iPhone, Android, BlackBerry? • Risposta: PER TUTTE LE PIATTAFORME • Strategia: armonizzare e standardizzare la parte «in comune» tra le varie piattaforme, ovvero la parte dei servizi (almeno il 50% del valore del nostro investimento) Se sviluppiamo in nativo avremo bisogno di un client diverso per ogni piattaforma!
  • 12. The big effort of native dev • Per ottenere alcuni risultati • È NECESSARIO andare in nativo! • Ci sono determinate classi ci applicazioni che non conviene sviluppare in HTML5 • Un esempio fra tutti: applicazioni di realtà aumentata • Necessitiamo di un «contatto» diretto con le funzionalità HW del dispositivo • Dobbiamo ottimizzare le routine, per offrire un’esperienza migliore • Questo può costare molto, in quanto ci costringe ad avere (minimo) tre team di sviluppo per ottenere risultati accettabili Prima di scegliere il nativo, valutare se gli stessi risultati si possono raggiungere con un’app multipiattaforma
  • 13. Alcuni esempi di App • Come esempio possiamo parlare di quattro applicazioni, due sviluppate in HTML5, le altre in modalità nativa • Healthcare manager (HTML5) • Gymmit (HTML5+Nativa) • Wikisticker (Nativa)
  • 14. Healthcare Manager • Healthcare Manager è un’app per tablet Android che serve per raccogliere dati di pazienti sul campo • HTML5+Javascript+KnockoutJS+PhoneGap e DB SqlLite • È stata sviluppata in multipiattaforma perché il committente aveva tablet Android, ma altri clienti potrebbero avere iPad • L’app funziona in modalità offline e l’utilizzo di DB SQLite permette di essere ancora una volta multipiattaforma • È un’app di tipo «gestionale» con menu, composizione di documenti, raccolta dati con lookup, selezione da liste, ricerche
  • 15. Gymmit • Gymmit, il social network dello sport e degli sportivi • due app, che sono state sviluppate sullo stesso back end • Una multipiattaforma, per iPhone e Android • Una nativa, per Windows Phone • Le app servono per trovare palestre, campi da tennis etc. • Consultare i calendari corsi delle strutture • Effettuare prenotazioni
  • 16. Wikisticker • Wikisticker è un’app di geo-messaging in realtà aumentata. Permette di lasciare dediche, messaggi o avvisi geolocalizzati, fruibili in realtà aumentata. • In pratica consente di vedere questi avvisi come se ci fluttuassero attorno • Nella versione 2.0 permette di lasciare anche foto ricordo o messaggi audio e di linkare contenuti direttamente nello spazio • È stata sviluppata con • Back-end multipiattaforma basato su standard • Client nativo Windows Phone • Client nativo Android (correntemente in sviluppo) • Completamente multilingua
  • 18. Interoperable back-end: Pro & Cons • Pro • Scrivo il back end e lo riutilizzo su tutte le piattaforme • Posso utilizzare qualunque linguaggio o piattaforma per crearlo, a patto di interloquire mediante standard • Leggero e impegna poca banda, importante per servizi con grande traffico • Contro • Richiede uno sforzo progettuale maggiore • È necessario pensarlo come scenario request-response con serializzazione di classi POCO/POJO • Richiesto un Versioning rigoroso per accordare tutte le piattaforme
  • 19. Multiplatform Client: Pro & Cons • Pro • Strumenti di sviluppo allo stato dell’arte (VS2012, Dreamweaver,IntellijIDEA etc.) • Sviluppo unificato, il limite è la fantasia dei grafici • Disponibilità di plugin di qualsiasi tipo (jQuery etc) • Molti framework disponibili (jQueryMobile) • Interfaccia condivisa tra le varie piattaforme • Costo ridotto (rispetto alle app native) • Qualunque developer WEB è un developer di Hybrid App • Contro • Non sfrutta completamente le peculiarità di ogni device • Inadatte per CPU intensive app (performance) • Non rispettano le guidelines di ogni piattaforma (vedi Metro) • Dipendono essenzialmente dalla bontà del browser del device • Interfaccia unica per tutte le piattaforme, si perde la caratteristica di ognuno
  • 20. Native Client: Pro & Cons • Pro • Performance • Contatto con la piattaforma • Rispetto delle linee guida grafiche e di design • Uso di features tipiche della piattaforma o del sistema operativo • Debug con strumenti integrati (VS, Intellij, Xcode…) • Contro • Conoscenza del dispositivo • Conoscenza di un linguaggio tipico della piattaforma • Se si vuole sviluppare per n piattaforme si devono creare n progetti, ciascuno diverso dall’altro • Il rilascio delle versioni può diventare problematico
  • 21. Conclusioni • Sviluppare App Interoperabili e Multipiattaforma o Native: • Per il back-end: • Utilizzare standard per la comunicazione, REST e JSON • Pensare e realizzare API flessibili ma mirate per risolvere i problemi del dominio applicativo • Per il front-end multiplatform • Conoscere HTML è garanzia di operatività immediata • Nessun bisogno di imparare linguaggi nuovi • Sviluppo unificato, ma performances che dipendono dai browser • Per il front-end nativo • Si deve conoscere bene il dispositivo dove si va a sviluppare • Si possono rispettare le design guideline della piattaforma • Ci si può avvalere di tutte le feature offerte dall’accoppiata device/sistema operativo
  • 22. Link e riferimenti • Alcuni link utili: • PhoneGap • http://phonegap.com • KnockoutJS • http://knockoutjs.com • Jquery Mobile • http://jquerymobile.com • Mango Tools • http://www.microsoft.com/download/en/details.aspx?id=27570 • Intellij IDEA • http://www.jetbrains.com • Android SDK • http://developer.android.com/sdk/index.html
  • 23. Contatti • Davide Senatore blogs.ugidotnet.org/dsenatore info@ingeniumsoft.com www.ingeniumsoft.com www.gymmit.com www.wikisticker.com @davidesenatore Wikisticker RELIVE YOUR TIME