SlideShare ist ein Scribd-Unternehmen logo
1 von 34
JQUERY MOBILE &
LES APPLICATIONS
WEB




  Kiwi Par tÿ 2012
  Par Nicolas HOFFMANN
  Twitter : @Nico3333fr
  http://www.nicolas-hof fmann.net/
WEB MOBILE &
APPLICATIONS ?

 Applications natives
 Applications web

 Deux mondes différents
APPLICATIONS WEB,
AVANTAGES

 Consultable depuis un navigateur…
 … pas uniquement en mobilité

 Pas fermé à un unique écosystème

 Un développement pour tous !

 Des technos ouvertes (HTML5, CSS3, JS)
JQUERY MOBILE




 Annoncé   le 13 Août 2010
 Version 1.0 le 16 Novembre 2011

 Actuellement en version 1.10 (13 Avril 2012)

 http://jquerymobile.com/blog/
JQUERY MOBILE




 Un Framework basé sur jQuery
 Basé sur HTML5 et CSS

 Créer des sites/web apps adaptés aux
  smartphones, aux tablettes, etc.
POURQUOI JQUERY
MOBILE ?

 Unrendu optimal sur de multiples
 plateformes (cross-platform)
POURQUOI JQUERY
MOBILE ?

 Simple,facile à apprendre
 Pas besoin de beaucoup de
  connaissances de base pour démarrer
  avec
 Documentation mise à jour

 De bons résultats pour des efforts assez
  modiques
POURQUOI JQUERY
MOBILE ?

 S’adapteaux périphériques : responsive
 sans effort
POURQUOI JQUERY
MOBILE ?

 Assez  facilement customisable
 Utilise ARIA



  Totalement dans l’esprit de jQuery
        « Write less, do more »
EN PRATIQUE

 http://kiwiparty.nicolas-hoffmann.net/

       Le site de la Kiwi Partÿ
      En version jQuery Mobile !
EN PRATIQUE, POUR
DÉMARRER (1/3)
Quelques fichiers à inclure dans le <head>

<link rel="stylesheet" href="jquery.mobile.min.css" />
<script src="jquery.js"></script>
…
<script src="jquery.mobile.min.js"></script>

Attention : jQuery 1.6.4 -> 1.7.1 !
EN PRATIQUE, POUR
DÉMARRER (2/3)
Quelques fichiers à inclure dans le <head>

<link rel="stylesheet" href="jquery.mobile.min.css" />
<script src="jquery.js"></script>
<script src="js_custom_kiwi.js"></script>
<script src="jquery.mobile.min.js"></script>

Pour customiser les réglages par défaut, doit être
entre jQuery et jQuery Mobile
EN PRATIQUE, POUR
DÉMARRER (3/3)
 Un loader Ajax charge les pages durant la navigation
 Il effectue les transitions demandées

 Peu importe si la page contient des redirections ou
  s’appelle elle-même (formulaire)
 Le tout est transparent pour l’internaute…

 … et aussi pour le développeur !
EN PRATIQUE, LE CODE (1/2)
Principe : attributs data-* que jQuery Mobile va
  transformer en code :

 data-role="page"  
 data-transition="slide"

 data-icon="arrow-r"

 data-mini="true" 

 data-theme="b"

 Etc.
EN PRATIQUE, LE CODE (2/2)
Le code de base d’une page

<div data-role="page">
 <div data-role="header" data-theme="f">
  <h1>Kiwi Partÿ, by Alsacréations</h1>
 </div>
 <div data-role="content">
 </div>
</div>
EN PRATIQUE, LES LISTES
(1/2)
La liste de l’accueil

<ul data-role="listview" data-inset="true">
<li>
  <a href="programme.php" data-transition="slide">
   Le programme
  </a>
</li>
…
</ul>
EN PRATIQUE, LES LISTES
(2/2)
L’exemple utilise deux genres de listes, il y en a bien
  d’autres :

 Avec des séparateurs
 Numérotées

 Avec des bulles d’info, des images, etc.

 Avec des possibilités de recherche

 Etc.
EN PRATIQUE, LES BOUTONS
(1/2)
Exemple Bouton Accueil

<a href="index.php" data-role="button" data-mini="true"
  data-inline="true" data-icon="arrow-l" data-
  iconpos="left" data-transition="slide" data-
  direction="reverse">Accueil</a>
EN PRATIQUE, LES BOUTONS
(2/2)
Exemple Boutons Orateurs

<div data-role="controlgroup" data-type="horizontal"
  data-mini="true">
  <a href="orateurs.php" data-role="button" data-
  mini="true" …>Orateurs</a>
  <a href="programme.php" data-role="button" data-
  mini="true" ..>Programme</a>
</div>
EN PRATIQUE, DISPOSITION
(1/3)
Accordéon du programme

<div data-role="collapsible-set">
 <div data-role="collapsible" data-content-theme="d">
  <h3>9H - Accueil</h3>
  …
  </div>
  …
</div>
EN PRATIQUE, DISPOSITION
(2/3)
Grid Layout du programme

<div class="ui-grid-a">
 <div class="ui-block-a">blabla</div>
 <div class="ui-block-b">blabla bis</div>
</div>

   Peut aller jusqu’à 5 colonnes
EN PRATIQUE, DISPOSITION
(3/3)
            ATTENTION avec le Grid Layout !

   Problème si beaucoup de contenus/colonnes sur un
    petit écran !
                         MAIS

 Assez facile à adapter via media-queries !
 D’autres initiatives comme 960 Grid on jQuery
  Mobile :
  http://jeromeetienne.github.com/jquery-mobile-960/index.
EN PRATIQUE,
FORMULAIRES (1/4)
Les éléments habituels sont là :
 Radios, checkboxes, select (amélioré), text,
  textarea, etc.

D’autres sont possibles :
 Switch (select à deux choix)

 Slider (type range)
EN PRATIQUE,
FORMULAIRES (2/4)
Exemple, appel du formulaire :

<form action="contact.php" method="post" id="form"
  data-transition="flow" data-rel="dialog">

La page de réception après traitement sera donc :

<body>
<div data-role="dialog">
  <div data-role="header" data-theme="e">…
 <div data-role="content">…
EN PRATIQUE,
FORMULAIRES (3/4)
Exemple, un champ texte avec label :

<div data-role="fieldcontain">
  <label for="id_name">Votre nom&nbsp;:</label>
  <input type="text" name="name" id="id_name"
  value="" required="required" data-mini="true" />
</div>
EN PRATIQUE,
FORMULAIRES (4/4)
Considérations personnelles :

 Style responsive, à voir sur petits écrans (450px)
  avec beaucoup de contenu
 Aisément adaptable

 Attributs HTML5 required ?

 Autres types (email, tel, etc.) tolérés sans souci
EN PRATIQUE, POUR
TWEAKER (1/2)
Le texte du loader Ajax est facilement paramétrable :

$(document).bind("mobileinit", function(){

 $.mobile.loadingMessageTextVisible = true;
 $.mobile.loadingMessage = "Loading kiwÿ modules...";

} );
EN PRATIQUE, POUR
TWEAKER (2/2)
Tous les éléments par défaut sont paramétrables :

 Transition par défaut (vers une page, vers dialog)
 Le loader et son message

 Les messages d’erreur

 Etc.
RETOUR D’EXPÉRIENCE (1/2)

 Très peu de styles CSS à ajouter
 Apprentissage assez facile

 Des résultats très rapides

 Performances correctes, exemple home
  (1st View : ~ 135 Ko ~ 2,5s ~ - de 20 requêtes)
  (Repeat View: 1 Ko ~ 0.5s)
 Tweakage assez simple pour « responsiver »
RETOUR D’EXPÉRIENCE (2/2)

 Simple de produire du code valide
 Structure Hx facile à conserver

 Ajout de thèmes faciles via Theme Roller :
  http://jquerymobile.com/themeroller/
 Possible de créer ses transitions via CSS-animation

 Touch-events (tap, etc.), API

 Des possibilités d’utiliser jQuery Mobile pour faire
  une appli native via Phone Gap
CONCLUSION



  jQuery Mobile,
    c’est BIEN !
BONUS DE L’EXEMPLE

 Cache Manifest
 Quelques attributs HTML5 pour la forme

 Un peu de responsive design (programme)

 Géolocalisation/Itinéraire via Google Maps
SUPER-BONUS DE L’EXEMPLE
THAT’S FINI !

 Merci pour « l’ immenserie de votre attenture »
 Merci à Alsacréations pour m’avoir permis de
  présenter tout cela
 Merci à tous les gens à qui j’ai oublié de dire merci




            Des questions ?

Weitere ähnliche Inhalte

Was ist angesagt?

Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Bruno Bonnin
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !Bruno Bonnin
 
Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007Netvibes
 
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon
 
Hello AngularJS - Back to the future
Hello AngularJS - Back to the futureHello AngularJS - Back to the future
Hello AngularJS - Back to the futureOuadie LAHDIOUI
 
Jquery
JqueryJquery
Jquerykrymo
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hoodsvuillet
 

Was ist angesagt? (13)

Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !
 
Gwt final
Gwt finalGwt final
Gwt final
 
JQuery
JQueryJQuery
JQuery
 
Histoires de CMS
Histoires de CMSHistoires de CMS
Histoires de CMS
 
Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007
 
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
 
Hello AngularJS - Back to the future
Hello AngularJS - Back to the futureHello AngularJS - Back to the future
Hello AngularJS - Back to the future
 
Jquery
JqueryJquery
Jquery
 
Cours Code Part 2
Cours Code Part 2Cours Code Part 2
Cours Code Part 2
 
Prise en main de Joomla
Prise en main de JoomlaPrise en main de Joomla
Prise en main de Joomla
 
SEO Dirty Secrets
SEO Dirty SecretsSEO Dirty Secrets
SEO Dirty Secrets
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hood
 

Andere mochten auch

Amnesty International pdf.
Amnesty International  pdf.Amnesty International  pdf.
Amnesty International pdf.alexandrallen
 
Systèmes multi-agents & flux du trafic aérien
Systèmes multi-agents & flux du trafic aérienSystèmes multi-agents & flux du trafic aérien
Systèmes multi-agents & flux du trafic aérienMohamed Imli
 
Instituto nacional de patimonio del ecuador
Instituto nacional de patimonio del ecuadorInstituto nacional de patimonio del ecuador
Instituto nacional de patimonio del ecuadorFABIANVALAREZO
 
Presentacion computacion 6 to quimico apt
Presentacion computacion 6 to  quimico aptPresentacion computacion 6 to  quimico apt
Presentacion computacion 6 to quimico aptAsharita Landazuri
 
1 invitacion a_una_barbacoa-e
1 invitacion a_una_barbacoa-e1 invitacion a_una_barbacoa-e
1 invitacion a_una_barbacoa-ezzzzpaff
 
JWT Brussels "La publicite s invite chez vous"
JWT Brussels "La publicite s invite chez vous"JWT Brussels "La publicite s invite chez vous"
JWT Brussels "La publicite s invite chez vous"Eric Dubois d'Enghien
 
Forum Secteur Public 2014 de Gfi Informatique
Forum Secteur Public 2014 de Gfi InformatiqueForum Secteur Public 2014 de Gfi Informatique
Forum Secteur Public 2014 de Gfi InformatiqueInetum
 
Le classement des livres doc fiche n°7
Le classement des livres doc fiche n°7Le classement des livres doc fiche n°7
Le classement des livres doc fiche n°7DocMargueriteDuras
 
Newsletter #4 - Le Hibou Agence .V. du 27 avril 2012
Newsletter #4 - Le Hibou Agence .V. du 27 avril 2012Newsletter #4 - Le Hibou Agence .V. du 27 avril 2012
Newsletter #4 - Le Hibou Agence .V. du 27 avril 2012Le Hibou
 

Andere mochten auch (20)

Amnesty International pdf.
Amnesty International  pdf.Amnesty International  pdf.
Amnesty International pdf.
 
Nxt
NxtNxt
Nxt
 
Systèmes multi-agents & flux du trafic aérien
Systèmes multi-agents & flux du trafic aérienSystèmes multi-agents & flux du trafic aérien
Systèmes multi-agents & flux du trafic aérien
 
E codesing lina (1)
E codesing lina (1)E codesing lina (1)
E codesing lina (1)
 
Cafenumérique avisclients
Cafenumérique avisclientsCafenumérique avisclients
Cafenumérique avisclients
 
Instituto nacional de patimonio del ecuador
Instituto nacional de patimonio del ecuadorInstituto nacional de patimonio del ecuador
Instituto nacional de patimonio del ecuador
 
Presentacion computacion 6 to quimico apt
Presentacion computacion 6 to  quimico aptPresentacion computacion 6 to  quimico apt
Presentacion computacion 6 to quimico apt
 
PRODUCTO TURÍSTICO Jaime Enrique Quispe Huayta
PRODUCTO TURÍSTICO Jaime Enrique Quispe HuaytaPRODUCTO TURÍSTICO Jaime Enrique Quispe Huayta
PRODUCTO TURÍSTICO Jaime Enrique Quispe Huayta
 
Bc t11-estrés oxidativo
Bc t11-estrés oxidativoBc t11-estrés oxidativo
Bc t11-estrés oxidativo
 
1 invitacion a_una_barbacoa-e
1 invitacion a_una_barbacoa-e1 invitacion a_una_barbacoa-e
1 invitacion a_una_barbacoa-e
 
El elefante sumiso
El elefante sumisoEl elefante sumiso
El elefante sumiso
 
Eac
EacEac
Eac
 
JWT Brussels "La publicite s invite chez vous"
JWT Brussels "La publicite s invite chez vous"JWT Brussels "La publicite s invite chez vous"
JWT Brussels "La publicite s invite chez vous"
 
Forum Secteur Public 2014 de Gfi Informatique
Forum Secteur Public 2014 de Gfi InformatiqueForum Secteur Public 2014 de Gfi Informatique
Forum Secteur Public 2014 de Gfi Informatique
 
Su madre
Su madreSu madre
Su madre
 
Dossier de Presse 2013-2014
Dossier  de Presse 2013-2014 Dossier  de Presse 2013-2014
Dossier de Presse 2013-2014
 
Abitudini di vita
Abitudini di vita Abitudini di vita
Abitudini di vita
 
Te apetece echar una mirada a los
Te apetece echar una mirada a losTe apetece echar una mirada a los
Te apetece echar una mirada a los
 
Le classement des livres doc fiche n°7
Le classement des livres doc fiche n°7Le classement des livres doc fiche n°7
Le classement des livres doc fiche n°7
 
Newsletter #4 - Le Hibou Agence .V. du 27 avril 2012
Newsletter #4 - Le Hibou Agence .V. du 27 avril 2012Newsletter #4 - Le Hibou Agence .V. du 27 avril 2012
Newsletter #4 - Le Hibou Agence .V. du 27 avril 2012
 

Ähnlich wie jQuery Mobile & Applications Web

La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 
HTML5, le web de demain - BNSA
HTML5, le web de demain - BNSAHTML5, le web de demain - BNSA
HTML5, le web de demain - BNSABNSA - Aquitaine
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflineDNG Consulting
 
Cours yeoman backbone box2d
Cours yeoman backbone box2dCours yeoman backbone box2d
Cours yeoman backbone box2dhugomallet
 
Front end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeFront end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeOuadie LAHDIOUI
 
Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10davrous
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogySacha Leprêtre
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applicationsgoldoraf
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidemaru.maru
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonGoogle Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonStéphane Liétard
 
memoire sur la technologie de RIA
memoire sur la technologie de RIAmemoire sur la technologie de RIA
memoire sur la technologie de RIAifis
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 

Ähnlich wie jQuery Mobile & Applications Web (20)

La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
HTML5, le web de demain - BNSA
HTML5, le web de demain - BNSAHTML5, le web de demain - BNSA
HTML5, le web de demain - BNSA
 
Drupal & Mobilité
Drupal & MobilitéDrupal & Mobilité
Drupal & Mobilité
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Cours yeoman backbone box2d
Cours yeoman backbone box2dCours yeoman backbone box2d
Cours yeoman backbone box2d
 
Cours cordova & REST
Cours cordova & RESTCours cordova & REST
Cours cordova & REST
 
Front end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeFront end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitée
 
Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogy
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-side
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
 
CV_Bilel CHAOUADI
CV_Bilel CHAOUADICV_Bilel CHAOUADI
CV_Bilel CHAOUADI
 
jQuery mobile vs Twitter bootstrap
jQuery mobile vs Twitter bootstrapjQuery mobile vs Twitter bootstrap
jQuery mobile vs Twitter bootstrap
 
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonGoogle Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
 
memoire sur la technologie de RIA
memoire sur la technologie de RIAmemoire sur la technologie de RIA
memoire sur la technologie de RIA
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 

jQuery Mobile & Applications Web

  • 1. JQUERY MOBILE & LES APPLICATIONS WEB Kiwi Par tÿ 2012 Par Nicolas HOFFMANN Twitter : @Nico3333fr http://www.nicolas-hof fmann.net/
  • 2. WEB MOBILE & APPLICATIONS ?  Applications natives  Applications web  Deux mondes différents
  • 3. APPLICATIONS WEB, AVANTAGES  Consultable depuis un navigateur…  … pas uniquement en mobilité  Pas fermé à un unique écosystème  Un développement pour tous !  Des technos ouvertes (HTML5, CSS3, JS)
  • 4. JQUERY MOBILE  Annoncé le 13 Août 2010  Version 1.0 le 16 Novembre 2011  Actuellement en version 1.10 (13 Avril 2012)  http://jquerymobile.com/blog/
  • 5. JQUERY MOBILE  Un Framework basé sur jQuery  Basé sur HTML5 et CSS  Créer des sites/web apps adaptés aux smartphones, aux tablettes, etc.
  • 6. POURQUOI JQUERY MOBILE ?  Unrendu optimal sur de multiples plateformes (cross-platform)
  • 7. POURQUOI JQUERY MOBILE ?  Simple,facile à apprendre  Pas besoin de beaucoup de connaissances de base pour démarrer avec  Documentation mise à jour  De bons résultats pour des efforts assez modiques
  • 8. POURQUOI JQUERY MOBILE ?  S’adapteaux périphériques : responsive sans effort
  • 9. POURQUOI JQUERY MOBILE ?  Assez facilement customisable  Utilise ARIA Totalement dans l’esprit de jQuery « Write less, do more »
  • 10. EN PRATIQUE http://kiwiparty.nicolas-hoffmann.net/ Le site de la Kiwi Partÿ En version jQuery Mobile !
  • 11. EN PRATIQUE, POUR DÉMARRER (1/3) Quelques fichiers à inclure dans le <head> <link rel="stylesheet" href="jquery.mobile.min.css" /> <script src="jquery.js"></script> … <script src="jquery.mobile.min.js"></script> Attention : jQuery 1.6.4 -> 1.7.1 !
  • 12. EN PRATIQUE, POUR DÉMARRER (2/3) Quelques fichiers à inclure dans le <head> <link rel="stylesheet" href="jquery.mobile.min.css" /> <script src="jquery.js"></script> <script src="js_custom_kiwi.js"></script> <script src="jquery.mobile.min.js"></script> Pour customiser les réglages par défaut, doit être entre jQuery et jQuery Mobile
  • 13. EN PRATIQUE, POUR DÉMARRER (3/3)  Un loader Ajax charge les pages durant la navigation  Il effectue les transitions demandées  Peu importe si la page contient des redirections ou s’appelle elle-même (formulaire)  Le tout est transparent pour l’internaute…  … et aussi pour le développeur !
  • 14. EN PRATIQUE, LE CODE (1/2) Principe : attributs data-* que jQuery Mobile va transformer en code :  data-role="page"    data-transition="slide"  data-icon="arrow-r"  data-mini="true"   data-theme="b"  Etc.
  • 15. EN PRATIQUE, LE CODE (2/2) Le code de base d’une page <div data-role="page"> <div data-role="header" data-theme="f"> <h1>Kiwi Partÿ, by Alsacréations</h1> </div> <div data-role="content"> </div> </div>
  • 16. EN PRATIQUE, LES LISTES (1/2) La liste de l’accueil <ul data-role="listview" data-inset="true"> <li> <a href="programme.php" data-transition="slide"> Le programme </a> </li> … </ul>
  • 17. EN PRATIQUE, LES LISTES (2/2) L’exemple utilise deux genres de listes, il y en a bien d’autres :  Avec des séparateurs  Numérotées  Avec des bulles d’info, des images, etc.  Avec des possibilités de recherche  Etc.
  • 18. EN PRATIQUE, LES BOUTONS (1/2) Exemple Bouton Accueil <a href="index.php" data-role="button" data-mini="true" data-inline="true" data-icon="arrow-l" data- iconpos="left" data-transition="slide" data- direction="reverse">Accueil</a>
  • 19. EN PRATIQUE, LES BOUTONS (2/2) Exemple Boutons Orateurs <div data-role="controlgroup" data-type="horizontal" data-mini="true"> <a href="orateurs.php" data-role="button" data- mini="true" …>Orateurs</a> <a href="programme.php" data-role="button" data- mini="true" ..>Programme</a> </div>
  • 20. EN PRATIQUE, DISPOSITION (1/3) Accordéon du programme <div data-role="collapsible-set"> <div data-role="collapsible" data-content-theme="d"> <h3>9H - Accueil</h3> … </div> … </div>
  • 21. EN PRATIQUE, DISPOSITION (2/3) Grid Layout du programme <div class="ui-grid-a"> <div class="ui-block-a">blabla</div> <div class="ui-block-b">blabla bis</div> </div>  Peut aller jusqu’à 5 colonnes
  • 22. EN PRATIQUE, DISPOSITION (3/3) ATTENTION avec le Grid Layout !  Problème si beaucoup de contenus/colonnes sur un petit écran ! MAIS  Assez facile à adapter via media-queries !  D’autres initiatives comme 960 Grid on jQuery Mobile : http://jeromeetienne.github.com/jquery-mobile-960/index.
  • 23. EN PRATIQUE, FORMULAIRES (1/4) Les éléments habituels sont là :  Radios, checkboxes, select (amélioré), text, textarea, etc. D’autres sont possibles :  Switch (select à deux choix)  Slider (type range)
  • 24. EN PRATIQUE, FORMULAIRES (2/4) Exemple, appel du formulaire : <form action="contact.php" method="post" id="form" data-transition="flow" data-rel="dialog"> La page de réception après traitement sera donc : <body> <div data-role="dialog"> <div data-role="header" data-theme="e">… <div data-role="content">…
  • 25. EN PRATIQUE, FORMULAIRES (3/4) Exemple, un champ texte avec label : <div data-role="fieldcontain"> <label for="id_name">Votre nom&nbsp;:</label> <input type="text" name="name" id="id_name" value="" required="required" data-mini="true" /> </div>
  • 26. EN PRATIQUE, FORMULAIRES (4/4) Considérations personnelles :  Style responsive, à voir sur petits écrans (450px) avec beaucoup de contenu  Aisément adaptable  Attributs HTML5 required ?  Autres types (email, tel, etc.) tolérés sans souci
  • 27. EN PRATIQUE, POUR TWEAKER (1/2) Le texte du loader Ajax est facilement paramétrable : $(document).bind("mobileinit", function(){ $.mobile.loadingMessageTextVisible = true; $.mobile.loadingMessage = "Loading kiwÿ modules..."; } );
  • 28. EN PRATIQUE, POUR TWEAKER (2/2) Tous les éléments par défaut sont paramétrables :  Transition par défaut (vers une page, vers dialog)  Le loader et son message  Les messages d’erreur  Etc.
  • 29. RETOUR D’EXPÉRIENCE (1/2)  Très peu de styles CSS à ajouter  Apprentissage assez facile  Des résultats très rapides  Performances correctes, exemple home (1st View : ~ 135 Ko ~ 2,5s ~ - de 20 requêtes) (Repeat View: 1 Ko ~ 0.5s)  Tweakage assez simple pour « responsiver »
  • 30. RETOUR D’EXPÉRIENCE (2/2)  Simple de produire du code valide  Structure Hx facile à conserver  Ajout de thèmes faciles via Theme Roller : http://jquerymobile.com/themeroller/  Possible de créer ses transitions via CSS-animation  Touch-events (tap, etc.), API  Des possibilités d’utiliser jQuery Mobile pour faire une appli native via Phone Gap
  • 31. CONCLUSION jQuery Mobile, c’est BIEN !
  • 32. BONUS DE L’EXEMPLE  Cache Manifest  Quelques attributs HTML5 pour la forme  Un peu de responsive design (programme)  Géolocalisation/Itinéraire via Google Maps
  • 34. THAT’S FINI !  Merci pour « l’ immenserie de votre attenture »  Merci à Alsacréations pour m’avoir permis de présenter tout cela  Merci à tous les gens à qui j’ai oublié de dire merci Des questions ?