4. 02.10.15 4
Qui suis-je ?
• Ingénieur Polytech’Nice – Promotion 2006
• Fondateur & Gérant d’i2N depuis 2007
• Consultant auprès des entreprises pour
les accompagner dans leur gestion des
technologies de l’information (web, mise
en place de solutions logicielles &
matérielle)
5. 02.10.15 5
i2N : Notre métier
Conception de sites Internet sur mesure
(institutionnel, e-commerce, mobile)
Suivi et développement (référencement,
stratégie social media)
Développement de logiciels sur mesure
Gestion de parcs informatiques &
Maintenance
6. 02.10.15 6
i2N : Nos références
Mairie de Monaco, Sûreté Publique de Monaco, SBM, Education
Nationale, Grimaldi Forum, Radio Vitamine, Radio Riviera …
Tous secteurs : Immobilier, BTP, Institutionnels, Juridique, Services …
www.i2n.mc
7. 02.10.15 7
Et vous ?
Quelques questions pour vous …
Quelles sont vos connaissances en Javascript ?
Avez-vous déjà développé nativement pour mobile ?
Avez-vous déjà développé un site adapté aux mobiles ?
15. 02.10.15 15
Concrètement …
• Où place-t-on ce code ?
– Dans les feuilles de styles CSS traditionnelles
• Que peut-on faire ?
– Tout! C’est un CSS qui est exécuté avec la
condition de largeur / hauteur du media
On peut donc envisager de :
• cacher des éléments,
• les redimensionner,
• les repositionner,
• changer la taille des polices et leurs couleurs,
17. 02.10.15 17
Quel impact pour mon IHM ?
• Un site responsive doit se concevoir à la
base :
– On va créer l’interface utilisateur desktop en
pensant qu’on va devoir faire une interface
responsive
– On va utiliser un système de grille pour gérer les
repositionnements (12 colonnes en général)
– Le but étant de maximiser l’expérience
utilisateur, il faut donc penser à ce dont
l’utilisateur aura besoin en mobilité et au moyen
le plus simple pour lui de l’atteindre
18. 02.10.15 18
Parlons peu, mais bien
Voici quelques exemples de sites
responsive réalisés en @media queries
19. 02.10.15 19
Responsive ? OK. Tests ? …
Multiplication des résolutions
Multiplication des devices
Multiplication des tests
20. 02.10.15 20
Plus de tests ?
• Le responsive design ouvre un large champ des
possibles
• On peut prendre en charge tout un tas de
nouveaux cas
• On multiplie donc le nombre de device capables
de lire l’IHM
• On veut améliorer l’expérience utilisateur
Ca veut donc dire plus de tests !
21. 02.10.15 21
Quels outils ?
• Vos navigateurs favoris ont ce qu’il faut
– F12 sur Google Chrome
– Ctrl + Maj + M sur Firefox
• Ne pas délaisser les tests réels sur
smartphone / tablette
– Les navigateurs mobiles (iOS notamment)
nous réservent parfois quelques surprises …
23. 02.10.15 23
On parlait de grille …
Pour un design responsive, on donne en général
une largeur en colonnes lesquelles occupent un %
de la largeur de l’écran
24. 02.10.15 24
La grille de Bootstrap
Bootstrap propose une liste de classes CSS
permettant de matérialiser cette grille.
Celles-ci sont placées dans une div de classe row :
25. 02.10.15 25
La grille de Bootstrap
• Les classes sont de différent types pour
définir la largeur d’une colonne en
fonction du device utilisé
39. 02.10.15 39
Au programme …
1. A chaque projet sa techno
2. 1 code Plusieurs plateformes
3. La puissance de jQuery sur mobile
4. Quelques librairies mobiles intéressantes
41. 02.10.15 41
Se poser les bonnes questions
• Que voulons nous faire avec notre mobile ?
– Consultation de pages Internet
– Consultation de données disponibles hors ligne
– Consultation de données remises à jour
– Interaction avec une application ou un site web
– Utiliser les fonctionnalités du mobile (boussole,
géolocalisation, accéléromètre)
– Jeux en 3D
– Streaming audio et vidéo
42. 02.10.15 42
Avoir les bonnes réponses
• Que voulons nous faire avec notre mobile ?
– Consultation de pages Internet Site mobile
– Consultation de données disponibles hors ligne
Site mobile / application
– Consultation de données remises à jour
Site mobile / application
– Interaction avec une application ou un site web
Site mobile / application
– Utiliser les fonctionnalités du mobile (boussole, géolocalisation,
accéléromètre)
Application Phonegap / native
– Tirer parti du mobile à 100% (jeux en 3D, streaming audio et
vidéo)
Application native
43. 02.10.15 43
Le cross platform c’est bien
• Mais on n’a pas accès à toutes les fonctionnalités du
mobile
• Mais on n’a pas une gestion aussi fine des performances
• Mais on n’est pas aussi rétro compatible qu’on le
souhaiterait (quoi que)
Par contre, on gagne du temps
si le choix est fait à bon escient
44. 02.10.15 44
Phonegap / Apache Cordova
Des applis mobiles en Javascript ?
C’est possible …
45. 02.10.15 45
Vous avez dit Phonegap ?
• Le principe général :
– 1 code unique
– Plusieurs plateformes cibles
• Les avantages:
– Temps de développement réduit
– Maintenabilité sur différentes plateformes
– 1 seul langage pour différentes plateformes
46. 02.10.15 46
Phonegap ou Cordova ?
• Phonegap est une distribution de Cordova
– Cordova est le moteur qui fait tourner Phonegap
– Phonegap peut proposer quelques plugins complémentaires<
(notamment propriétaires)
• Cependant …
– Ils restent tous les 2 gratuits
– Ils restent tous les 2 open source
47. 02.10.15 47
Vous avez dit Phonegap ?
• Cherche à réduire l’écart entre les téléphones
• Concrètement :
– Outil de création d’un projet type pour chaque OS
– 1 répertoire pour le code
– Code HTML + Javascript
– Librairie Javascript à inclure
– Fichier de préférences à éditer suivant les besoins
• En pratique, Phonegap crée une WebView
qui exécute du code Web
48. 02.10.15 48
Vous avez dit Phonegap ?
• Cependant :
– Quelques petits inconvénients liés à une WebView
– N’évite pas les tests sur les différentes plateformes !
– Difficile à déboguer finement car ça reste du JS …
• Mais ces inconvénients sont à mettre en perspective par
rapport au gain de temps et aux avantages !
58. 02.10.15 58
Le fichier config.xml
• Définition
– des composants disponibles
– du nom de l’application
– du splashscreen
– de paramètres globaux
– …
Différent suivant les cibles
66. 02.10.15 66
Ajoutez votre code natif …
• Possibilité de développer des plugins natifs
• Appels depuis le code Javascript :
• winParam : Fonction appelée en cas de réussite
• Error : Fonction appelée en cas d’erreur
• Service : classe de la méthode appelée
• Action : méthode appelée
67. 02.10.15 67
Utilisation d’un plugin
• Déclarer le plugin dans le fichier config.xml
On définit la fonction echo sur l’objet window qui appelle
la méthode echo de la classe Echo
70. 02.10.15 70
Pour aller plus loin …
• Possibilité d’inclure des librairies Javascript spécifiques
• Possibilité d’écrire des plugins natifs
– Si cela ne vaut pas un développement spécifique …
• L’API en ligne : http://docs.phonegap.com
• Le Wiki : https://github.com/phonegap/phonegap/wiki
71. 02.10.15 71
Le look d’une application native ?
• Malgré tous ces avantages
• Malgré tous ces composants
• Cela garde le look d’un site mobile
et non d’une application :/
Des librairies peuvent vous y aider …
74. 02.10.15 74
jQuery mais en mobile
• jQuery est utilisable sur Mobile
• jQueryMobile apporte des fonctionnalités cross platform
=> Layout, Dialog, Transitions, Multipage
• Différents thèmes
• Outil WYSIWYG de mise en forme
• Possibilité de décliner un site en
3 versions : classique, tablette et mobile
75. 02.10.15 75
Avec Phonegap ?
• Intégration possible avec Phonegap
• Inclusion simple du code JS et HTML dans
l’application et le tour est joué
• Quelques variables à régler
78. 02.10.15 78
Construit pour Phonegap
• Librairie JS
• Définit un lot de balises HTML et d’attributs sémantiques
• Fonctionnalités cross platform et widgets
=> Layout, Dialog, Transitions, Multipage
• Différents thèmes
• Thèmes et gabarits disponibles
http://onsen.io/
84. 02.10.15 84
En bref …
• Le responsive saura vous apporter une IHM
adaptée à tous vos supports
• Bien utilisé, Phonegap pourra vous faire
gagner du temps en développement pour
plusieurs cibles
• jQuery Mobile / OnsenUI vous permettra de
faire de beaux sites / applicationscross-
platform
• N’évite pas les tests sur les différentes
plateformes