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)
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
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
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 ?
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,
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
02.10.15 18
Parlons peu, mais bien
Voici quelques exemples de sites
responsive réalisés en @media queries
02.10.15 19
Responsive ? OK. Tests ? …
Multiplication des résolutions
Multiplication des devices
Multiplication des tests
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 !
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 …
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
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 :
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é
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
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
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
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
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
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
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
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 !
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
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
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
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
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 …
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
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
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/
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