SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
Going Mobile
Sviluppare applicazioni web Domino per
  dispositivi mobili




          Autore: Giuseppe Grasso
           Professione: Sviluppatore
domino   point day2009


                         Agenda

  • Le piattaforme mobili
  • Gli strumenti del mestiere
  • Le tecniche
  • Design ed Architettura
  • Il futuro


                                  2
domino   point day2009


                     Obbiettivo

  • Rendere uno sviluppatore web
    capace di migrare allo sviluppo web
    mobile




                                          3
domino   point day2009


             Le piattaforme mobili
• Nokia Symbian OS
  RIM Blackberry
  Apple iPhone
• Android, palm
  webOS, palm
  garnet, windows
  mobile, linux
domino   point day2009


               Applicazioni native
  • Ogni vendor ha una o più piattaforme proprietarie
    ed sdk (c, c++, java, objective c….)
  • Java ME è la piattaforma più diffusa fra i device con 2
    notevoli eccezioni:
     – Android (Dalvik non esattamente java)
     – iPhone (non se ne parla, espressamente proibito il codice
       interpretato)
  • Flashlite tenta di porsi come piattaforma (per
    android, palm webos, symbian e blackberry) ma
    Apple “fa resistenza”
domino   point day2009


                 Applicazioni web
  • Decisamente limitate rispetto alle applicazioni
    native
  • È possibile realizzare applicazioni siti ed
    applicazioni fruibili dalla maggioranza dei
    dispositivi mobili
  • Ci sono tendenze diffuse fra i vari vendor per
    rendere più competitive le applicazioni web al
    confronto di quelle native.
domino   point day2009


         Con cosa abbiamo a che fare
  Dobbiamo considerando i diversi fattori che influenzano
    pesantemente l’utilizzo di dispositivi mobili:
  • Banda limitata
  • Latenza elevata
  • Batterie
  • Costo dei dati
  • Metodi di input
  • Memoria
  • Processore
  • Schermo
  • Interfaccia di rete
domino   point day2009


                         display
  • Grande varietà di
    dimensioni
  • Portrait/landscape anche
    sullo stesso device
domino   point day2009


                           banda
  • GPRS UMTS 3G 2.5G EDGE HSPA
  • Le torri radio sono una risorsa limitata
     – Per lo più con banda limitata
  • Non può che peggiorare
     –   Sul medio/breve termine
     –   Chiavette
     –   Diffusione
     –   Investimenti
     –   redditività
domino   point day2009


                         Inoltre:
  • Batteria: qualsiasi cosa facciamo, consuma cicli
    CPU, quindi costa carica residua
  • Costo dei dati: roaming, soglie di traffico, costi
    a “pacchetto”
  • Memoria: non è un desktop, idiosincrasie
    architetturali
  • Rete: diretta, proxy based, mista
domino   point day2009


                  L’utente mobile
 Il peggior tipo di utente possibile:
 • Infedele
 • Vuole le sue informazioni subito
 • Mentre è distratto
 • È fortemente limitato nell’input
 • Ha difficoltà a recepire l’output
 • Soglie di attesa ridotte
domino   point day2009


              Case history: ieri sera
  •   17 speaker
  •   Nella lobby di un hotel
  •   Cercano tutti l’indirizzo del ristorante
domino   point day2009


              Case history: ieri sera
 • Grande esposizioni di dispositivi mobili
 • Top di gamma, ultima generazione
 • Tutti abbiamo fallito
 • Soluzione: il desktop della lobby
 • Il sito del ristorante? Bhe… non facciamo
   nomi.
 • Lieto fine: si è mangiato alla grande!!!
domino   point day2009




          Gli strumenti del mestiere
domino   point day2009


                Come procedere?
  • Sviluppo iniziale con i browser desktop:
    firefox, safari, chrome, opera (safari e chrome
    sono basati su webkit) ed i validatori mobili
  • Prima fase di controllo ed affinamento con
    emulatori e simulatori
  • Test di usabilità, verifiche finale e collaudo su
    dispositivi fisici. (obbligatoria ed inevitabile,
    emulatori e simulatori non sono in grado di
    restituire al pieno la “user-experience”)
domino   point day2009


                          Mobile markup




  Da: http://en.wikipedia.org/wiki/File:Mobile_Web_Standards_Evolution_Vector.svg
domino   point day2009


  Validatori: W3C mobileOK Checker
  • Basato su
    W3C mobileOK Basic
    Tests 1.0
    http://www.w3.org/TR/
    mobileOK-basic10-
    tests/
  • molto preciso ed
    affidabile
  • http://validator.w3.org/
    mobile/
domino   point day2009


               Validatori: mobiReady
  •   Diversi test, non solo il markup
  •   Testa pagine, markup e sito
  •   http://ready.mobi/
domino   point day2009


             Emulatori e simulatori
  • Android skd:
    http://developer.android.com/sdk/index.html
  • iPhone (mac only)
    http://developer.apple.com/iphone/
  • BlackBerry Smartphone Simulators
    http://na.blackberry.com/eng/developers/resources
    /simulators.jsp
  • Nokia sdk
    http://www.forum.nokia.com/info/sw.nokia.com/id/
    ec866fab-4b76-49f6-b5a5-
    af0631419e9c/S60_All_in_One_SDKs.html
domino   point day2009


               Emulatore Android
  • Scarica ed installa l’sdk
    http://developer.android.com/sdk/index.html
  • Dall’ SDK Setup scarica i packages da google
  • Crea i tuoi AVD (Android Virtual Device) secondo
    necessità
  • Esegui gli AVD
domino   point day2009


                 Emulatori: Nokia
  • Scarica dal forum nokia sdk per il device da emulare
  • Installa e lancia l’emulatore dai programmi sotto
    “nokia developer tools”
domino   point day2009


   Forum nokia: Remote Device Access
  • Accesso remoto a veri device nokia
  • Nulla da installare, ma ambiente condiviso in un pool di
    devices, quindi possibili code di attesa e problemi di
    riservatezza
  • http://www.forum.nokia.com/Technology_Topics/Application
    _Quality/Testing/Remote_Device_Access/
domino   point day2009


             simulatori: Blackberry
  • Scarica uno o più emulatori per ogni device/carrier
  • Scarica il “BlackBerry® Email and MDS Services
    Simulator Package”
  • Esegui l’MDS simulator quindi esegui l’emulatore
    blackberry
  • http://na.blackberry.com/eng/developers/browserd
    ev/
domino   point day2009


                Simulatori: iPhone
  • Solo su Mac OS X Snow
    Leopard
    http://developer.apple.c
    om/iphone/
    Oppure simulatori
    hardware:
     – L’iPod touch di tua moglie
     – Vinci l’iPod Touch messo
       in palio da uno dei nostri
       sponsor!
domino   point day2009


            Simulatori: Opera Mini
  • http://www.opera.com/mini/demo/
domino   point day2009




                     Le tecniche
domino   point day2009


          Identificare i device mobili
  • DeviceAtlas
  • Wurfl

  • Forniscono un servizio ed un database di “signature”
    dei device mobili per consentirne l’identificazione.
domino         point day2009



                    Identificare i device mobili:
                            quick&dirty
mobile:=0;
ua:=@LowerCase(@GetHTTPHeader("User-Agent"));
  :=@LowerCase(@GetHTTPHeader("User
ua:=@LowerCase(@GetHTTPHeader("User-Agent"));
xwap:=@GetHTTPHeader(" wap-profile");
    :=@GetHTTPHeader("x
xwap:=@GetHTTPHeader("x-wap-profile");
accept:=@GetHTTPHeader("Accept");
      :=@GetHTTPHeader("Accept
accept:=@GetHTTPHeader("Accept");
uasignatures:=@Explode("up.browser|up.link|mmp|symbian|smartphone|midp|wap|p
            :=@Explode("up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android|blackberry";"|");
uasignatures:=@Explode("up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android|blackberry";"|");
magents:="w3c ":"acs ":"alav":"alca":"amoi":"audi":"avan":"benq":"bird":"blac":"blaz":"brew":"cell":"cldc":"cmd
                 acs-   alav":"alca":"amoi":"audi":"avan":"benq":"bird":"blac":"blaz":"brew":"cell":"cldc":"cmd-
magents:="w3c ":"acs-":"alav":"alca":"amoi":"audi":"avan":"benq":"bird":"blac":"blaz":"brew":"cell":"cldc":"cmd-
    ":"dang":"doco":"eric":"hipt":"inno":"ipaq":"java":"jigs":"kddi":"keji":"leno":"lg ":"lg ":"lg ":"lge
       dang":"doco":"eric":"hipt":"inno":"ipaq":"java":"jigs":"kddi":"keji":"leno":"lg-    lg-    lg-    lge-
    ":"dang":"doco":"eric":"hipt":"inno":"ipaq":"java":"jigs":"kddi":"keji":"leno":"lg-c":"lg-d":"lg-g":"lge-
    ":"maui":"maxo":"midp":"mits":"mmef":"mobi":"mot ":"moto":"mwbp":"nec
       maui":"maxo":"midp":"mits":"mmef":"mobi":"mot-           mwbp":"nec-
    ":"maui":"maxo":"midp":"mits":"mmef":"mobi":"mot-":"moto":"mwbp":"nec-
    ":"newt":"noki":"oper":"palm":"pana":"pant":"phil":"play":"port":"prox":"qwap":"sage":"sams":"sany":"sch
       newt":"noki":"oper":"palm":"pana":"pant":"phil":"play":"port":"prox":"qwap":"sage":"sams":"sany":"sch-
    ":"newt":"noki":"oper":"palm":"pana":"pant":"phil":"play":"port":"prox":"qwap":"sage":"sams":"sany":"sch-
    ":"sec-":"send":"seri":"sgh ":"shar":"sie ":"siem":"smal":"smar":"sony":"sph ":"symb":"t-mo":"teli":"tim
              send":"seri":"sgh-    shar":"sie-   siem":"smal":"smar":"sony":"sph-  symb":"t             tim-
    ":"sec-":"send":"seri":"sgh-":"shar":"sie-":"siem":"smal":"smar":"sony":"sph-":"symb":"t-mo":"teli":"tim-
    ":"tosh":"tsm ":"upg1":"upsi":"vk ":"voda":"wap
       tosh":"tsm-          upsi":"vk-     voda":"wap-
    ":"tosh":"tsm-":"upg1":"upsi":"vk-v":"voda":"wap-
    ":"wapa":"wapi":"wapp":"wapr":"webc":"winw":"winw":"xda":"xda
       wapa":"wapi":"wapp":"wapr":"webc":"winw":"winw":"xda":"xda-
    ":"wapa":"wapi":"wapp":"wapr":"webc":"winw":"winw":"xda":"xda-";
@If(@Contains(accept;"application/vnd.wap.xhtml+xml");mobile:=mobile+1;@Nothing);
                    ;"application/vnd.wap.xhtml+xml");mobile:=mobile+1;@Nothing
@If(@Contains(accept;"application/vnd.wap.xhtml+xml");mobile:=mobile+1;@Nothing);
@If(@Contains(ua;uasignatures);mobile:=mobile+1;@Nothing);
                             );mobile:=mobile+1;@Nothing
@If(@Contains(ua;uasignatures);mobile:=mobile+1;@Nothing);
@If(@Contains(ua;magents);mobile:=mobile+1;@Nothing);
@If(@Contains(ua;magents);mobile:=mobile+1;@Nothing);
                        );mobile:=mobile+1;@Nothing
@If(@length(xwap)>0;mobile:=mobile+1;@Nothing);
@If(@length(xwap)>0;mobile:=mobile+1;@Nothing);
                )>0;mobile:=mobile+1;@Nothing
@If(@Contains(ua;"opera mini");mobile:=mobile+1;@Nothing
                                                @Nothing);
@If(@Contains(ua;"opera mini");mobile:=mobile+1;@Nothing);
@If(@Contains(ua;"windows");mobile:=0;@Nothing);
                ;"windows");mobile:=0;@Nothing
@If(@Contains(ua;"windows");mobile:=0;@Nothing);


@If(mobile=0;"desktop";"mobile:"+@Text(mobile))
@If(mobile=0;"desktop";"mobile:"+@Text(mobile))
domino   point day2009


               Css per device mobili
 •   <link rel="stylesheet" href="..." type="text/css"
     media="handheld">
 •   <style type="text/css" media="handheld">...</style>
 •   <style type="text/css"> @media handheld { ... } </style>

 • CSS Mobile Profile 2.0:
   http://www.w3.org/TR/css-mobile/
 • un css per media “handheld” può essere usato
   come primo intervento per rendere siti
   tradizionali più comodamente fruibili da
   dispositivi mobili.
domino      point day2009


    Serviamo il content-type corretto
  •application/xhtml+xml
  •UTF-8

  …. Se ovviamente stiamo in
  XHTML-MP ovvero:
                        "-
  <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
  "http://www.wapforum.org/DTD/xhtml-
  "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">

                        "-
  <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN"
  "http://www.openmobilealliance.org/tech/DTD/xhtml-
                                     tech/DTD/xhtml
  "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd">

                        "-
  <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
  "http://www.openmobilealliance.org/tech/DTD/xhtml-
                                     tech/DTD/xhtml
  "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
domino   point day2009


              meta HandheldFriendly
  <meta name="HandheldFriendly" content="true"/>

  Indica al browser che la pagina è destinata a dispositivi mobili (es: non è
     necessario scalare il contenuto)
domino   point day2009


                    meta Viewport
  <meta name="viewport" content="width=device-width; height=device-
     height; user-scalable=0; initial-scale=1.0; maximum-
     scale=1.4"/>


  Controlla come il contenuto deve essere ridimensionato rispetto
    al display del dispositivo.

  width= device-width | floating-point (200—10,000)
  height= device-height | floating-point (223—10,000)
  user-scalable= 0 | 1       yes | no
  intial-scale= floating-point ( >0 – 10 )
  maximum-scale= floating-point ( >0 – 10 )
domino   point day2009


               Performance: expire
  • @SetHTTPHeader("Expires";@Adjust(@Now([ServerTime]);0;
    0;0;0;30;0));

  • Diciamo per quanto tempo il browser può mantenere valida
    la pagina nella cache senza la necessità di controllare con il
    server se è stata modificata.

  • Non per pagine, css, javascript o risorse immagine, serve una
    regola sul server, vedi:
    http://www.ibm.com/developerworks/lotus/library/ls-
    resp_head_rules/index.html
domino   point day2009


         Performance: expire (8.5.1?)




 • WOHAAAA!!!!!!
domino   point day2009


               Attributo accesskey
  <a href="index.html" accesskey=“1">Home</a>
  • Fondamentali per i dispositivi non touch
                          UK Government recommendation for
  • Sii consistente es:   access keys
                                S - Skip navigation
                                1 - Home page
                                2 - What's new
                                3 - Site map
                                4 - Search
                                5 - Frequently Asked Questions (FAQ)
                                6 - Help
                                7 - Complaints procedure
                                8 - Terms and conditions
                                9 - Feedback form
                                0 - Access key details
domino   point day2009


                         Tag label
  <label><input ….. ></label>
  • Usiamo la label per “ingrandire” l’area del
    controllo di input

  • (optgroup label è un’altra cosa)
domino   point day2009


         Miglioramenti incrementali
  • Serviamo contenuti specifici per il dispositivo,
    ad esempio adeguandoci alle convenzioni del
    vendor per migliorare l’experience degli utenti
domino   point day2009




             Design ed Architettura
domino   point day2009


                              design
                                                    header

  •   Pagine piccole (20k max)                Navigazione primaria
  •   Manteniamo un layout semplice
  •   Scroll solo in una dimensione
  •   Se il target è un’unica piattaforma,
      manteniamo le convenzioni del                contenuti
      vendor (es: Nokia Mobile Web
      Templates
      http://www.forum.nokia.com/Tec
      hnology_Topics/Web_Technologie         Navigazione secondaria
      s/Browsing/Web_Templates/)
                                                     footer
domino   point day2009


                             design
  •   Priorità ai contenuti
  •   Bersagli GRANDI (label nei form)!
  •   Identifica i link in modo chiaro ed evidente
  •   La dimensione dei font varia molto più facilmente che sui
      desktop
  •   Contrasto e pochi colori
  •   TABLE?????
  •   Accesso rapido: m.azienda.it o azienda.it/mobile
  •   Alt tag per chi ha le immagini disattivate
  •   Margini: piccoli ma che ci siano!
  •   Markup valido….
domino   point day2009


                    architettura
  • Tradizionale          • “proxy”


          Domino           Domino     Mobile
          DB               DB         app
domino   point day2009


  Architettura proxy: m.dominopoint.it
                             • Non ho/non desidero
                               accesso ai sorgenti
  DB Blog           Mobile
                    app
                               origine
                             • Origini multiple
                             • Evoluzioni separate
  DB Forum                   • più facile di quanto
                               sembri
domino   point day2009




                         Il futuro
domino   point day2009


               Browser Blackberry
  • Il browser Blackberry firmware 5.0 dovrebbe
    supportare le xpages
  • RIM ha acquisito Torch, produttrice di un
    ottimo browser basato su webkit, le “voci” lo
    vedrebbero sulla piattaforma nel Q1 2010
  • Quando succederà, tutti i major player
    useranno un browser webkit based (iPhone,
    Android e Symbian lo sono già)
domino   point day2009


               Applicazioni mobili
  • Vedremo sempre più funzionalità core del dispositivo
    esposte al browser via javascript (es: location api)
  • Supporto offline “a là” google gears (con)
  • Supporto database locali (mysql)
  • Markup desktop
  • Diffusione di browser mobili “desktop capable”
  • Framework mobili multiplatform
domino   point day2009


                         widgets
  • Sempre più funzionalità core del dispositivo esposte
    al browser via javascript (es: location api, bluetooth,
    fotocamera etc.)
  • Ajax (già una realtà su alcuni dispositivi)
  • Supporto offline a là google gears
  • Supporto database locali (sqlLite)
  • Vedremo se i vendor aderiranno agli standard
    (http://www.w3.org/TR/widgets-reqs/ )
domino   point day2009


                         contatti

          Giuseppe Grasso:
          m.dominopoint.it
          giuseppe.grasso@gmail.com
          twitter.com/grassog

Weitere ähnliche Inhalte

Andere mochten auch

Weo redrawing energyclimatemap
Weo redrawing energyclimatemapWeo redrawing energyclimatemap
Weo redrawing energyclimatemap
Paul Keisch
 
2013 11 14 acta reunion colectivos 13 noviembre 2013 en getafe
2013 11 14 acta reunion colectivos 13 noviembre 2013 en getafe2013 11 14 acta reunion colectivos 13 noviembre 2013 en getafe
2013 11 14 acta reunion colectivos 13 noviembre 2013 en getafe
aulasenlacalle
 
Apa Fusi Dingin Berikutnya Pembangkit Listrik Eco Untuk Mendapatkan Persetuju...
Apa Fusi Dingin Berikutnya Pembangkit Listrik Eco Untuk Mendapatkan Persetuju...Apa Fusi Dingin Berikutnya Pembangkit Listrik Eco Untuk Mendapatkan Persetuju...
Apa Fusi Dingin Berikutnya Pembangkit Listrik Eco Untuk Mendapatkan Persetuju...
New Nature Paradigm Tech Analysis: Green, Sustainable, Collaborative
 
Tplus Design Transformations
Tplus Design TransformationsTplus Design Transformations
Tplus Design Transformations
guest972e4b
 
Personal learning network
Personal learning network Personal learning network
Personal learning network
Kim McNulty
 
Sistemas de transporte urbano sostenible
Sistemas de transporte urbano sostenibleSistemas de transporte urbano sostenible
Sistemas de transporte urbano sostenible
Universia Perú
 

Andere mochten auch (20)

Weo redrawing energyclimatemap
Weo redrawing energyclimatemapWeo redrawing energyclimatemap
Weo redrawing energyclimatemap
 
Turata iphone 6 6 plus handmade bling case
Turata iphone 6  6 plus handmade bling caseTurata iphone 6  6 plus handmade bling case
Turata iphone 6 6 plus handmade bling case
 
2013 11 14 acta reunion colectivos 13 noviembre 2013 en getafe
2013 11 14 acta reunion colectivos 13 noviembre 2013 en getafe2013 11 14 acta reunion colectivos 13 noviembre 2013 en getafe
2013 11 14 acta reunion colectivos 13 noviembre 2013 en getafe
 
Apa Fusi Dingin Berikutnya Pembangkit Listrik Eco Untuk Mendapatkan Persetuju...
Apa Fusi Dingin Berikutnya Pembangkit Listrik Eco Untuk Mendapatkan Persetuju...Apa Fusi Dingin Berikutnya Pembangkit Listrik Eco Untuk Mendapatkan Persetuju...
Apa Fusi Dingin Berikutnya Pembangkit Listrik Eco Untuk Mendapatkan Persetuju...
 
UDI RAQUEL BENÍTEZ PARA PUBLICAR
UDI RAQUEL BENÍTEZ PARA PUBLICARUDI RAQUEL BENÍTEZ PARA PUBLICAR
UDI RAQUEL BENÍTEZ PARA PUBLICAR
 
Leader en el nuevo marco de Desarrollo Rural 2014-2020
Leader en el nuevo marco de Desarrollo Rural 2014-2020Leader en el nuevo marco de Desarrollo Rural 2014-2020
Leader en el nuevo marco de Desarrollo Rural 2014-2020
 
Flexible storage management with Linux and openATTIC
Flexible storage management with Linux and openATTICFlexible storage management with Linux and openATTIC
Flexible storage management with Linux and openATTIC
 
Tplus Design Transformations
Tplus Design TransformationsTplus Design Transformations
Tplus Design Transformations
 
Experiencias educativas
Experiencias educativasExperiencias educativas
Experiencias educativas
 
arnaud_end_portfolio
arnaud_end_portfolioarnaud_end_portfolio
arnaud_end_portfolio
 
Personal learning network
Personal learning network Personal learning network
Personal learning network
 
Context Analysis, initial Research
Context Analysis, initial ResearchContext Analysis, initial Research
Context Analysis, initial Research
 
Presentación Eclareon pv gpm comercial
Presentación Eclareon pv gpm comercialPresentación Eclareon pv gpm comercial
Presentación Eclareon pv gpm comercial
 
Me gusta
Me gustaMe gusta
Me gusta
 
Tesis paula mera
Tesis paula meraTesis paula mera
Tesis paula mera
 
Sistemas de transporte urbano sostenible
Sistemas de transporte urbano sostenibleSistemas de transporte urbano sostenible
Sistemas de transporte urbano sostenible
 
DVILA agencica de publicidad packaging www.dvila.com
DVILA agencica de publicidad packaging www.dvila.comDVILA agencica de publicidad packaging www.dvila.com
DVILA agencica de publicidad packaging www.dvila.com
 
Notificación por aviso acto administrativo resolucion 299
Notificación por aviso acto administrativo resolucion 299Notificación por aviso acto administrativo resolucion 299
Notificación por aviso acto administrativo resolucion 299
 
Projeto Mercosul Digital é matéria de capa da revista America Economia
Projeto Mercosul Digital é matéria de capa da revista America EconomiaProjeto Mercosul Digital é matéria de capa da revista America Economia
Projeto Mercosul Digital é matéria de capa da revista America Economia
 
7in1 Internet Marketing Seminar - SN Saal Salzburg - Vortragender Michael Koh...
7in1 Internet Marketing Seminar - SN Saal Salzburg - Vortragender Michael Koh...7in1 Internet Marketing Seminar - SN Saal Salzburg - Vortragender Michael Koh...
7in1 Internet Marketing Seminar - SN Saal Salzburg - Vortragender Michael Koh...
 

Ähnlich wie Sviluppare applicazioni Domino Web per dispositivi Mobili

Sviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGapSviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGap
DotNetMarche
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
SMAU
 
Il futuro di Windows Phone
Il futuro di Windows PhoneIl futuro di Windows Phone
Il futuro di Windows Phone
Matteo Pagani
 
Touch&play framework
Touch&play frameworkTouch&play framework
Touch&play framework
CSP Scarl
 

Ähnlich wie Sviluppare applicazioni Domino Web per dispositivi Mobili (20)

platforms
platformsplatforms
platforms
 
Sviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGapSviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGap
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
 
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net oriented
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
HCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsHCIM08 - Mobile Applications
HCIM08 - Mobile Applications
 
Applicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceApplicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformance
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld Devices
 
Adesso In Onda
Adesso In OndaAdesso In Onda
Adesso In Onda
 
Android & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioniAndroid & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioni
 
Il futuro di Windows Phone
Il futuro di Windows PhoneIl futuro di Windows Phone
Il futuro di Windows Phone
 
Mr.Robot - How To Make a Robot !
Mr.Robot - How To Make a Robot !Mr.Robot - How To Make a Robot !
Mr.Robot - How To Make a Robot !
 
Touch&play framework
Touch&play frameworkTouch&play framework
Touch&play framework
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROID
 
A.rodolfi perugia 4.0
A.rodolfi perugia 4.0A.rodolfi perugia 4.0
A.rodolfi perugia 4.0
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
 
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
 
Io, Android
Io, AndroidIo, Android
Io, Android
 

Mehr von Dominopoint - Italian Lotus User Group

Mehr von Dominopoint - Italian Lotus User Group (20)

TOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in DominoTOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in Domino
 
Domino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo TaskDomino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo Task
 
Mail Client from Traveler to Verse On-Premises
Mail Client from Traveler to Verse On-PremisesMail Client from Traveler to Verse On-Premises
Mail Client from Traveler to Verse On-Premises
 
IBM Worspace: Towards a culture of conversations
IBM Worspace: Towards a culture of conversationsIBM Worspace: Towards a culture of conversations
IBM Worspace: Towards a culture of conversations
 
Microsoft Outlook for Domino (IMSMO)
Microsoft Outlook for Domino (IMSMO)Microsoft Outlook for Domino (IMSMO)
Microsoft Outlook for Domino (IMSMO)
 
Riding the Enterprise Integration train
Riding the Enterprise Integration trainRiding the Enterprise Integration train
Riding the Enterprise Integration train
 
Ortocloud l'applicazione per fare orto su Bluemix
Ortocloud l'applicazione per fare orto su BluemixOrtocloud l'applicazione per fare orto su Bluemix
Ortocloud l'applicazione per fare orto su Bluemix
 
Meetit16 KeyNote di Apertura
Meetit16 KeyNote di AperturaMeetit16 KeyNote di Apertura
Meetit16 KeyNote di Apertura
 
IBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with AngularjsIBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with Angularjs
 
IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...
 
Cloudant e XPages
Cloudant e XPagesCloudant e XPages
Cloudant e XPages
 
IBM Bluemix
IBM BluemixIBM Bluemix
IBM Bluemix
 
IBM Connections 10 things every user should know
IBM Connections 10 things every user should knowIBM Connections 10 things every user should know
IBM Connections 10 things every user should know
 
IBM Verse New Way To Work
IBM Verse New Way To WorkIBM Verse New Way To Work
IBM Verse New Way To Work
 
Crossware MailSignature
Crossware MailSignatureCrossware MailSignature
Crossware MailSignature
 
Cooperteam soluzioni
Cooperteam soluzioniCooperteam soluzioni
Cooperteam soluzioni
 
Notes and Domino Roadmap
Notes and Domino RoadmapNotes and Domino Roadmap
Notes and Domino Roadmap
 
La Collaborazione Europea
La Collaborazione EuropeaLa Collaborazione Europea
La Collaborazione Europea
 
the future of work
the future of workthe future of work
the future of work
 
Dominopoint meet the experts 2015 - XPages
Dominopoint   meet the experts 2015 - XPagesDominopoint   meet the experts 2015 - XPages
Dominopoint meet the experts 2015 - XPages
 

Sviluppare applicazioni Domino Web per dispositivi Mobili

  • 1. Going Mobile Sviluppare applicazioni web Domino per dispositivi mobili Autore: Giuseppe Grasso Professione: Sviluppatore
  • 2. domino point day2009 Agenda • Le piattaforme mobili • Gli strumenti del mestiere • Le tecniche • Design ed Architettura • Il futuro 2
  • 3. domino point day2009 Obbiettivo • Rendere uno sviluppatore web capace di migrare allo sviluppo web mobile 3
  • 4. domino point day2009 Le piattaforme mobili • Nokia Symbian OS RIM Blackberry Apple iPhone • Android, palm webOS, palm garnet, windows mobile, linux
  • 5. domino point day2009 Applicazioni native • Ogni vendor ha una o più piattaforme proprietarie ed sdk (c, c++, java, objective c….) • Java ME è la piattaforma più diffusa fra i device con 2 notevoli eccezioni: – Android (Dalvik non esattamente java) – iPhone (non se ne parla, espressamente proibito il codice interpretato) • Flashlite tenta di porsi come piattaforma (per android, palm webos, symbian e blackberry) ma Apple “fa resistenza”
  • 6. domino point day2009 Applicazioni web • Decisamente limitate rispetto alle applicazioni native • È possibile realizzare applicazioni siti ed applicazioni fruibili dalla maggioranza dei dispositivi mobili • Ci sono tendenze diffuse fra i vari vendor per rendere più competitive le applicazioni web al confronto di quelle native.
  • 7. domino point day2009 Con cosa abbiamo a che fare Dobbiamo considerando i diversi fattori che influenzano pesantemente l’utilizzo di dispositivi mobili: • Banda limitata • Latenza elevata • Batterie • Costo dei dati • Metodi di input • Memoria • Processore • Schermo • Interfaccia di rete
  • 8. domino point day2009 display • Grande varietà di dimensioni • Portrait/landscape anche sullo stesso device
  • 9. domino point day2009 banda • GPRS UMTS 3G 2.5G EDGE HSPA • Le torri radio sono una risorsa limitata – Per lo più con banda limitata • Non può che peggiorare – Sul medio/breve termine – Chiavette – Diffusione – Investimenti – redditività
  • 10. domino point day2009 Inoltre: • Batteria: qualsiasi cosa facciamo, consuma cicli CPU, quindi costa carica residua • Costo dei dati: roaming, soglie di traffico, costi a “pacchetto” • Memoria: non è un desktop, idiosincrasie architetturali • Rete: diretta, proxy based, mista
  • 11. domino point day2009 L’utente mobile Il peggior tipo di utente possibile: • Infedele • Vuole le sue informazioni subito • Mentre è distratto • È fortemente limitato nell’input • Ha difficoltà a recepire l’output • Soglie di attesa ridotte
  • 12. domino point day2009 Case history: ieri sera • 17 speaker • Nella lobby di un hotel • Cercano tutti l’indirizzo del ristorante
  • 13. domino point day2009 Case history: ieri sera • Grande esposizioni di dispositivi mobili • Top di gamma, ultima generazione • Tutti abbiamo fallito • Soluzione: il desktop della lobby • Il sito del ristorante? Bhe… non facciamo nomi. • Lieto fine: si è mangiato alla grande!!!
  • 14. domino point day2009 Gli strumenti del mestiere
  • 15. domino point day2009 Come procedere? • Sviluppo iniziale con i browser desktop: firefox, safari, chrome, opera (safari e chrome sono basati su webkit) ed i validatori mobili • Prima fase di controllo ed affinamento con emulatori e simulatori • Test di usabilità, verifiche finale e collaudo su dispositivi fisici. (obbligatoria ed inevitabile, emulatori e simulatori non sono in grado di restituire al pieno la “user-experience”)
  • 16. domino point day2009 Mobile markup Da: http://en.wikipedia.org/wiki/File:Mobile_Web_Standards_Evolution_Vector.svg
  • 17. domino point day2009 Validatori: W3C mobileOK Checker • Basato su W3C mobileOK Basic Tests 1.0 http://www.w3.org/TR/ mobileOK-basic10- tests/ • molto preciso ed affidabile • http://validator.w3.org/ mobile/
  • 18. domino point day2009 Validatori: mobiReady • Diversi test, non solo il markup • Testa pagine, markup e sito • http://ready.mobi/
  • 19. domino point day2009 Emulatori e simulatori • Android skd: http://developer.android.com/sdk/index.html • iPhone (mac only) http://developer.apple.com/iphone/ • BlackBerry Smartphone Simulators http://na.blackberry.com/eng/developers/resources /simulators.jsp • Nokia sdk http://www.forum.nokia.com/info/sw.nokia.com/id/ ec866fab-4b76-49f6-b5a5- af0631419e9c/S60_All_in_One_SDKs.html
  • 20. domino point day2009 Emulatore Android • Scarica ed installa l’sdk http://developer.android.com/sdk/index.html • Dall’ SDK Setup scarica i packages da google • Crea i tuoi AVD (Android Virtual Device) secondo necessità • Esegui gli AVD
  • 21. domino point day2009 Emulatori: Nokia • Scarica dal forum nokia sdk per il device da emulare • Installa e lancia l’emulatore dai programmi sotto “nokia developer tools”
  • 22. domino point day2009 Forum nokia: Remote Device Access • Accesso remoto a veri device nokia • Nulla da installare, ma ambiente condiviso in un pool di devices, quindi possibili code di attesa e problemi di riservatezza • http://www.forum.nokia.com/Technology_Topics/Application _Quality/Testing/Remote_Device_Access/
  • 23. domino point day2009 simulatori: Blackberry • Scarica uno o più emulatori per ogni device/carrier • Scarica il “BlackBerry® Email and MDS Services Simulator Package” • Esegui l’MDS simulator quindi esegui l’emulatore blackberry • http://na.blackberry.com/eng/developers/browserd ev/
  • 24. domino point day2009 Simulatori: iPhone • Solo su Mac OS X Snow Leopard http://developer.apple.c om/iphone/ Oppure simulatori hardware: – L’iPod touch di tua moglie – Vinci l’iPod Touch messo in palio da uno dei nostri sponsor!
  • 25. domino point day2009 Simulatori: Opera Mini • http://www.opera.com/mini/demo/
  • 26. domino point day2009 Le tecniche
  • 27. domino point day2009 Identificare i device mobili • DeviceAtlas • Wurfl • Forniscono un servizio ed un database di “signature” dei device mobili per consentirne l’identificazione.
  • 28. domino point day2009 Identificare i device mobili: quick&dirty mobile:=0; ua:=@LowerCase(@GetHTTPHeader("User-Agent")); :=@LowerCase(@GetHTTPHeader("User ua:=@LowerCase(@GetHTTPHeader("User-Agent")); xwap:=@GetHTTPHeader(" wap-profile"); :=@GetHTTPHeader("x xwap:=@GetHTTPHeader("x-wap-profile"); accept:=@GetHTTPHeader("Accept"); :=@GetHTTPHeader("Accept accept:=@GetHTTPHeader("Accept"); uasignatures:=@Explode("up.browser|up.link|mmp|symbian|smartphone|midp|wap|p :=@Explode("up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android|blackberry";"|"); uasignatures:=@Explode("up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android|blackberry";"|"); magents:="w3c ":"acs ":"alav":"alca":"amoi":"audi":"avan":"benq":"bird":"blac":"blaz":"brew":"cell":"cldc":"cmd acs- alav":"alca":"amoi":"audi":"avan":"benq":"bird":"blac":"blaz":"brew":"cell":"cldc":"cmd- magents:="w3c ":"acs-":"alav":"alca":"amoi":"audi":"avan":"benq":"bird":"blac":"blaz":"brew":"cell":"cldc":"cmd- ":"dang":"doco":"eric":"hipt":"inno":"ipaq":"java":"jigs":"kddi":"keji":"leno":"lg ":"lg ":"lg ":"lge dang":"doco":"eric":"hipt":"inno":"ipaq":"java":"jigs":"kddi":"keji":"leno":"lg- lg- lg- lge- ":"dang":"doco":"eric":"hipt":"inno":"ipaq":"java":"jigs":"kddi":"keji":"leno":"lg-c":"lg-d":"lg-g":"lge- ":"maui":"maxo":"midp":"mits":"mmef":"mobi":"mot ":"moto":"mwbp":"nec maui":"maxo":"midp":"mits":"mmef":"mobi":"mot- mwbp":"nec- ":"maui":"maxo":"midp":"mits":"mmef":"mobi":"mot-":"moto":"mwbp":"nec- ":"newt":"noki":"oper":"palm":"pana":"pant":"phil":"play":"port":"prox":"qwap":"sage":"sams":"sany":"sch newt":"noki":"oper":"palm":"pana":"pant":"phil":"play":"port":"prox":"qwap":"sage":"sams":"sany":"sch- ":"newt":"noki":"oper":"palm":"pana":"pant":"phil":"play":"port":"prox":"qwap":"sage":"sams":"sany":"sch- ":"sec-":"send":"seri":"sgh ":"shar":"sie ":"siem":"smal":"smar":"sony":"sph ":"symb":"t-mo":"teli":"tim send":"seri":"sgh- shar":"sie- siem":"smal":"smar":"sony":"sph- symb":"t tim- ":"sec-":"send":"seri":"sgh-":"shar":"sie-":"siem":"smal":"smar":"sony":"sph-":"symb":"t-mo":"teli":"tim- ":"tosh":"tsm ":"upg1":"upsi":"vk ":"voda":"wap tosh":"tsm- upsi":"vk- voda":"wap- ":"tosh":"tsm-":"upg1":"upsi":"vk-v":"voda":"wap- ":"wapa":"wapi":"wapp":"wapr":"webc":"winw":"winw":"xda":"xda wapa":"wapi":"wapp":"wapr":"webc":"winw":"winw":"xda":"xda- ":"wapa":"wapi":"wapp":"wapr":"webc":"winw":"winw":"xda":"xda-"; @If(@Contains(accept;"application/vnd.wap.xhtml+xml");mobile:=mobile+1;@Nothing); ;"application/vnd.wap.xhtml+xml");mobile:=mobile+1;@Nothing @If(@Contains(accept;"application/vnd.wap.xhtml+xml");mobile:=mobile+1;@Nothing); @If(@Contains(ua;uasignatures);mobile:=mobile+1;@Nothing); );mobile:=mobile+1;@Nothing @If(@Contains(ua;uasignatures);mobile:=mobile+1;@Nothing); @If(@Contains(ua;magents);mobile:=mobile+1;@Nothing); @If(@Contains(ua;magents);mobile:=mobile+1;@Nothing); );mobile:=mobile+1;@Nothing @If(@length(xwap)>0;mobile:=mobile+1;@Nothing); @If(@length(xwap)>0;mobile:=mobile+1;@Nothing); )>0;mobile:=mobile+1;@Nothing @If(@Contains(ua;"opera mini");mobile:=mobile+1;@Nothing @Nothing); @If(@Contains(ua;"opera mini");mobile:=mobile+1;@Nothing); @If(@Contains(ua;"windows");mobile:=0;@Nothing); ;"windows");mobile:=0;@Nothing @If(@Contains(ua;"windows");mobile:=0;@Nothing); @If(mobile=0;"desktop";"mobile:"+@Text(mobile)) @If(mobile=0;"desktop";"mobile:"+@Text(mobile))
  • 29. domino point day2009 Css per device mobili • <link rel="stylesheet" href="..." type="text/css" media="handheld"> • <style type="text/css" media="handheld">...</style> • <style type="text/css"> @media handheld { ... } </style> • CSS Mobile Profile 2.0: http://www.w3.org/TR/css-mobile/ • un css per media “handheld” può essere usato come primo intervento per rendere siti tradizionali più comodamente fruibili da dispositivi mobili.
  • 30. domino point day2009 Serviamo il content-type corretto •application/xhtml+xml •UTF-8 …. Se ovviamente stiamo in XHTML-MP ovvero: "- <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml- "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> "- <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml- tech/DTD/xhtml "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd"> "- <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml- tech/DTD/xhtml "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
  • 31. domino point day2009 meta HandheldFriendly <meta name="HandheldFriendly" content="true"/> Indica al browser che la pagina è destinata a dispositivi mobili (es: non è necessario scalare il contenuto)
  • 32. domino point day2009 meta Viewport <meta name="viewport" content="width=device-width; height=device- height; user-scalable=0; initial-scale=1.0; maximum- scale=1.4"/> Controlla come il contenuto deve essere ridimensionato rispetto al display del dispositivo. width= device-width | floating-point (200—10,000) height= device-height | floating-point (223—10,000) user-scalable= 0 | 1 yes | no intial-scale= floating-point ( >0 – 10 ) maximum-scale= floating-point ( >0 – 10 )
  • 33. domino point day2009 Performance: expire • @SetHTTPHeader("Expires";@Adjust(@Now([ServerTime]);0; 0;0;0;30;0)); • Diciamo per quanto tempo il browser può mantenere valida la pagina nella cache senza la necessità di controllare con il server se è stata modificata. • Non per pagine, css, javascript o risorse immagine, serve una regola sul server, vedi: http://www.ibm.com/developerworks/lotus/library/ls- resp_head_rules/index.html
  • 34. domino point day2009 Performance: expire (8.5.1?) • WOHAAAA!!!!!!
  • 35. domino point day2009 Attributo accesskey <a href="index.html" accesskey=“1">Home</a> • Fondamentali per i dispositivi non touch UK Government recommendation for • Sii consistente es: access keys S - Skip navigation 1 - Home page 2 - What's new 3 - Site map 4 - Search 5 - Frequently Asked Questions (FAQ) 6 - Help 7 - Complaints procedure 8 - Terms and conditions 9 - Feedback form 0 - Access key details
  • 36. domino point day2009 Tag label <label><input ….. ></label> • Usiamo la label per “ingrandire” l’area del controllo di input • (optgroup label è un’altra cosa)
  • 37. domino point day2009 Miglioramenti incrementali • Serviamo contenuti specifici per il dispositivo, ad esempio adeguandoci alle convenzioni del vendor per migliorare l’experience degli utenti
  • 38. domino point day2009 Design ed Architettura
  • 39. domino point day2009 design header • Pagine piccole (20k max) Navigazione primaria • Manteniamo un layout semplice • Scroll solo in una dimensione • Se il target è un’unica piattaforma, manteniamo le convenzioni del contenuti vendor (es: Nokia Mobile Web Templates http://www.forum.nokia.com/Tec hnology_Topics/Web_Technologie Navigazione secondaria s/Browsing/Web_Templates/) footer
  • 40. domino point day2009 design • Priorità ai contenuti • Bersagli GRANDI (label nei form)! • Identifica i link in modo chiaro ed evidente • La dimensione dei font varia molto più facilmente che sui desktop • Contrasto e pochi colori • TABLE????? • Accesso rapido: m.azienda.it o azienda.it/mobile • Alt tag per chi ha le immagini disattivate • Margini: piccoli ma che ci siano! • Markup valido….
  • 41. domino point day2009 architettura • Tradizionale • “proxy” Domino Domino Mobile DB DB app
  • 42. domino point day2009 Architettura proxy: m.dominopoint.it • Non ho/non desidero accesso ai sorgenti DB Blog Mobile app origine • Origini multiple • Evoluzioni separate DB Forum • più facile di quanto sembri
  • 43. domino point day2009 Il futuro
  • 44. domino point day2009 Browser Blackberry • Il browser Blackberry firmware 5.0 dovrebbe supportare le xpages • RIM ha acquisito Torch, produttrice di un ottimo browser basato su webkit, le “voci” lo vedrebbero sulla piattaforma nel Q1 2010 • Quando succederà, tutti i major player useranno un browser webkit based (iPhone, Android e Symbian lo sono già)
  • 45. domino point day2009 Applicazioni mobili • Vedremo sempre più funzionalità core del dispositivo esposte al browser via javascript (es: location api) • Supporto offline “a là” google gears (con) • Supporto database locali (mysql) • Markup desktop • Diffusione di browser mobili “desktop capable” • Framework mobili multiplatform
  • 46. domino point day2009 widgets • Sempre più funzionalità core del dispositivo esposte al browser via javascript (es: location api, bluetooth, fotocamera etc.) • Ajax (già una realtà su alcuni dispositivi) • Supporto offline a là google gears • Supporto database locali (sqlLite) • Vedremo se i vendor aderiranno agli standard (http://www.w3.org/TR/widgets-reqs/ )
  • 47. domino point day2009 contatti Giuseppe Grasso: m.dominopoint.it giuseppe.grasso@gmail.com twitter.com/grassog