SlideShare une entreprise Scribd logo
1  sur  67
QUE FAIRE POUR CEUX QUI ONT DES
FONDS SOMBRES POUR LEUR SLIDES ?
Mobilité & Multi-device avec




par @mtopolov CTO de @adyax & @padcms
100 Experts Drupal, 45 gros projets Drupal en 2011
Mobilité ?
Web mobile c’est quoi ?

Multiplicité des terminaux
Interfaces tactiles
Utilisation dans un contexte de vie courante
Réseaux à qualité aléatoire / mode offline
Multi-device ?
Multiplicité des terminaux


 + Nombreux ratios (4:3, 16:9, 16:10, 3:4, 1:1...)
 + Diverses résolutions (240x240 -> 2048x1536)
 = Importance à adapter le contenu au contenant
Tactile ?
Interfaces tactiles

 Les doigts sont plus gros et gauches que la souris
 Le scroll est simple et naturel (mais fatiguant en vertical)
 Contenus plus gros et disposés verticalement
 Nécessité de feedback visuel (pas de click-click)
Usage en conditions
  de vie courante
Théorie
La pratique c’est ça
ça
ça
ou même ça !
Contexte de vie courante


Vitesse & Pertinence (couper le superflu)
Le plus important d’abord (reograniser le contenu)
Profiter, de la localisation (si pertinent)
EDGE ou Offline
Réseau aléatoire et offline

 Votre contenu devrait être disponible en cas de perte
 de la connexion internet
 Le contenu doit être le plus léger possible
 Le temps de réponse de votre serveur réduit au
 minimum.
Pourquoi est-ce important ?
6 000 000 000 000 000 000 octets / mois
Explosion du trafic mobile

 en 2016 le trafic mobile sera multiplié par 30
 Internet mobile c’est déjà 50% du trafic en Afrique et
 Asie
 200 millions de tablettes dans le monde
 Aujourd’hui le trafic mobile c’est 50 fois le trafic
 broadband.
Je ne le vois pas...

 Poule/oeuf : les gens ne (re)viennent pas car votre site
 n’est pas adapté aux terminaux
 Référencement mobile n’est pas que du SEO
 (présence en App Store, Raccourcis Safari, TV
 connectés, portails mobiles, google mobile)
 Votre contenu n’est pas utilisé en mobilité (mais ce
 n’est pas une fatalité)
Solutions
Solutions Drupal Mobile

 Responsive Design
 Thème mobile (contexte mobile)
 Apps Natives (PhoneGap, Titanium, ou DYI)
 Un mot sur le web local
Que faire pour qui ?
                   Responsive   Thème Mobile   App native

     eCommerce                     OUI
          Media      NON           OUI           OUI
 Réseaux Sociaux     NON                         OUI
        Marques      OUI           NON
Bases de données     OUI                        NON
       ONG/Gov       OUI                        NON
Responsive Design
(ou comment briller en soirée geek)
Super trendy
Responsive design

Très sympa en démo client (l’effet «Waouuu»)
Une réelle difficulté lors de l’intégration HTML = 2 fois
plus long à faire
Nécessite un vrai travail fonctionnel en amont
Avantage : peu d’impact sur le développement pur
Coté Drupal ?

Omega, un starter thème responsive & grid (D7
uniquement)
Globalement le responsive ne concerne que très peu
Drupal (Panels?)
Penser à gérer les presets différents pour ImageCache
Concrètement
<link href="/css/screen.css" type="text/css" rel="stylesheet"
media="all" />

<link rel="stylesheet" media="only screen and (max-width:
1020px)" href="/css/screen_800.css" type="text/css" />

<link rel="stylesheet" media="only screen and (max-width:
600px)" href="/css/screen_320.css" type="text/css" />
Un peu de JS
 $(document).ready(function(){
  if(
    screen.width < 750 ||
    navigator.userAgent.match(/Android/i) ||
    navigator.userAgent.match(/webOS/i) ||
    navigator.userAgent.match(/iPhone/i) ||
    navigator.userAgent.match(/iPod/i)
  ){
    $('body').addClass('this-is-mobile');
  };
Quelques exemples responsive
Quelques exemples responsive
Quelques exemples responsive
Quelques exemples responsive
Quelques exemples responsive
Quelques exemples responsive
Theme mobile
(ou plutôt le contexte mobile !)
Theme mobile


Quand switcher sur le contexte mobile ?
On switch pas de theme, mais bien de contexte,
les Views, Panels, Modules custom sont impactés...
Pour aller vite, utiliser jQuery Mobile, si le client est ok.
Quand switcher ?

Le plus tôt possible (LB, Proxy).
Ne surtout pas le faire dans Drupal (Browscap,
Wurfl...)


         Load      Cache /
                             HTTP    Drupal
        Balancer    Proxy
Varnish (1/2)
Cookie ?              UA           Erreur Custom                 Redirect




if (!req.http.Cookie ~ "mdevice=desktop") {
	      set req.http.X-Device = "pc";

	   if (req.http.User-Agent ~ "iP(hone|od)" || req.http.User-Agent ~ "Android" ||
req.http.User-Agent ~ "Symbian" || req.http.User-Agent ~ "BlackBerry" || req.http.User-
Agent ~ "^SonyEricsson" || req.http.User-Agent ~ "^Nokia" || req.http.User-Agent ~
"^SAMSUNG" || req.http.User-Agent ~ "^LG" || req.http.User-Agent ~ "	webOS") {
	       set req.http.X-Device = "mobile";
	     }
Varnish (2/2)
Cookie ?            UA            Erreur Custom              Redirect


if(req.http.X-Device == "mobile") {
	      if(req.http.host !~ "m.erol.adyax.com:6081") {
	    	      error 751 "m.erol.adyax.com:6081"; } 	      }

sub vcl_error {
	   if (obj.status == 751) {
	   	     if (obj.response ~ "m.erol.adyax.com:6081") {
	   	     	     set obj.http.Location = "http://m.erol.adyax.com:6081" req.url;	
	   	     	     set obj.http.Vary = "Cookie";
	   	     	     set obj.http.Cache-Control = "private";
	   	     	     set obj.http.Expires = "Sat, 21 Aug 2022 06:00:00 GMT"; }
	   	     set obj.status = 302;
	   	     return(deliver); } }
Contexte mobile : principes
    Theme Custom / JQuery Mobile (Theme)


          ImageCache, Panels (Layout)


   Mobile Tools / Domains (mobile.tonsite.com)


        VARNISH (Redirection HTTP 302)
jQuery Mobile
  jQuery Mobile: «Touch-Optimized Web Framework for
  Smartphones & Tablets »
  On peut customiser facilement
  Ressemble à l’interface iPhone




http://jquerymobile.com/
j-Query pour & contre
           Plus                      Moins

 Rapide à mettre en place Votre client doit accepter
        (2-3 jours)          le design JQuery...
  Navigation proche des      Difficile à hacker si on
   menus du terminal              veut aller loin
 Vous évite de réfléchir au Vous évite de réfléchir au
          mobile                    mobile
Quelques exemples live
Quelques exemples live
Quelques exemples live
Quelques exemples live
Quelques exemples live
Applications Natives
Principes de base

Votre application doit récupérer le contenu depuis
Drupal
Une consultation en mode offline devrait être
possible (stockage interne des données)
Le contenu peut être mis à jour à tout moment
Services 3.X


 Donne accès aux noeuds, files, taxonomies, users,
 views
 Gère la sécurité (API Key)
 Server API permet de coder ses propres protocoles
Problèmes courants

Absence de structure dans les données (à cause de
CCK)
SOAP n’est pas standard et buggué
Pas de WSDL
Problèmes avec les NodeRefs, Medias, Champs
composés
<?xml version='1.0' ?>
<methodCall>
 <methodName>node.create</methodName>
 <params>
  <param>
   <value>
    <struct>
     <member>
      <name>type</name>
      <value>
        <string>story</string>
      </value>
                                             node.create
     </member>
     <member>
      <name>body</name>
      <value>
        <string>Create body input</string>
      </value>
     </member>
     <member>
      <name>title</name>
      <value>
        <string>Test title</string>
      </value>
     </member>
    </struct>
   </value>
  </param>
 </params>
</methodCall>
SOAP                                         399 octets


<?xml version='1.0' encoding='UTF-8'?>
<s:Envelope
  xmlns:s="http://www.w3.org/2001/06/soap-envelope"
  xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/1999/XMLSchema">
  <s:Body>
    <x:FlickrRequest xmlns:x="urn:flickr">
      <method>flickr.echo</method>
      <name>value</name>
    </x:FlickrRequest>
  </s:Body>
</s:Envelope>
XML-RPC                                  99 octets



<?xml version="1.0"?>
<methodCall>
  <methodName>flickr.echo</methodName>
  <params/>
</methodCall>
JSON                            68 octets



{
    "method" : "flickr.echo",
    "params" : null,
    "id"    : 1
}
B-PLIST                                                   52 octets



  6270   6c69   7374   3030   d101   0256   6d65   7468
  6f64   5b66   6c69   636b   722e   6563   686f   080b
  1200   0000   0000   0001   0100   0000   0000   0000
  0300   0000   0000   0000   0000   0000   0000   0000
  1e
...sinon, il y a le HTML

 Toute l’application n’est qu’un loader de WebUI avec
 un wrapper d'événements JS
 Coté Drupal, on génére des pages HTML (avec Boost)
 La synchro est basée sur SVN (http://pecl.php.net/
 package/svn/1.0.0)
Attention les dangers HTML


Sur les terminaux WebUI sont lents => prégénration
en images + zones clicables
Réécriture des URL (navigation locale)
Intégration de vidéos (parsing des <object>)
SG : Drupal web site + Mobile theme + iPad App
SG : Drupal web site + Mobile theme + iPad App
SG : Drupal web site + Mobile theme + iPad App
SG : Drupal web site + Mobile theme + iPad App
Liste des modules Mobiles utiles

http://drupal.org/project/mobile_tools


http://drupal.org/project/domain


http://drupal.org/project/browscap


http://drupal.org/project/omega


http://drupal.org/project/views_jqm
Premier outil de publication de magazines
    pour tablettes (iPad & Android)
              OPEN SOURCE

         Lancement : 15 Juin !!!

                        http://padcms.com
                             @PadCMS
Une question ? N'hésitez
  pas à nous solliciter.

 @adyax, @mtopolov

Contenu connexe

Tendances

Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007Netvibes
 
Introduction à la performance web
Introduction à la performance webIntroduction à la performance web
Introduction à la performance webRaphaël Goetter
 
Spring 3 en production
Spring 3 en productionSpring 3 en production
Spring 3 en productionJulien Dubois
 
Google App Engine For Java
Google App Engine For JavaGoogle App Engine For Java
Google App Engine For Javatcouery
 
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)hibnico
 
Play Framework - Toulouse JUG - nov 2011
Play Framework - Toulouse JUG - nov 2011Play Framework - Toulouse JUG - nov 2011
Play Framework - Toulouse JUG - nov 2011Sylvain Wallez
 
Intégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudesIntégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudesRaphaël Goetter
 
Machines Virtuelles dans Azure quoi de neuf ?
Machines Virtuelles dans Azure quoi de neuf ?Machines Virtuelles dans Azure quoi de neuf ?
Machines Virtuelles dans Azure quoi de neuf ?Microsoft Décideurs IT
 
Vive les tableaux de mise en page !
Vive les tableaux de mise en page !Vive les tableaux de mise en page !
Vive les tableaux de mise en page !Raphaël Goetter
 

Tendances (11)

jQuery
jQueryjQuery
jQuery
 
Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007
 
Jquery : les bases
Jquery : les basesJquery : les bases
Jquery : les bases
 
Introduction à la performance web
Introduction à la performance webIntroduction à la performance web
Introduction à la performance web
 
Spring 3 en production
Spring 3 en productionSpring 3 en production
Spring 3 en production
 
Google App Engine For Java
Google App Engine For JavaGoogle App Engine For Java
Google App Engine For Java
 
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
 
Play Framework - Toulouse JUG - nov 2011
Play Framework - Toulouse JUG - nov 2011Play Framework - Toulouse JUG - nov 2011
Play Framework - Toulouse JUG - nov 2011
 
Intégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudesIntégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudes
 
Machines Virtuelles dans Azure quoi de neuf ?
Machines Virtuelles dans Azure quoi de neuf ?Machines Virtuelles dans Azure quoi de neuf ?
Machines Virtuelles dans Azure quoi de neuf ?
 
Vive les tableaux de mise en page !
Vive les tableaux de mise en page !Vive les tableaux de mise en page !
Vive les tableaux de mise en page !
 

En vedette

Les CHATBOTS façonnent-ils le web de demain ?
Les CHATBOTS façonnent-ils le web de demain ?Les CHATBOTS façonnent-ils le web de demain ?
Les CHATBOTS façonnent-ils le web de demain ?Antony GLAZIOU
 
Chatbots & expérience client : comment les chatbots transforment l'expérience...
Chatbots & expérience client : comment les chatbots transforment l'expérience...Chatbots & expérience client : comment les chatbots transforment l'expérience...
Chatbots & expérience client : comment les chatbots transforment l'expérience...iAdvize
 
Les chatbots : vers une démocratisation du conversationnel automatisé ?
Les chatbots : vers une démocratisation du conversationnel automatisé ?Les chatbots : vers une démocratisation du conversationnel automatisé ?
Les chatbots : vers une démocratisation du conversationnel automatisé ?Vanksen
 
Les Agents Virtuels Intelligents
Les Agents Virtuels IntelligentsLes Agents Virtuels Intelligents
Les Agents Virtuels IntelligentsThomas Bromehead
 
MobiliteaTime #8 : Les Chat Bots
MobiliteaTime #8 : Les Chat BotsMobiliteaTime #8 : Les Chat Bots
MobiliteaTime #8 : Les Chat BotsUSERADGENTS
 
Créations.2011
Créations.2011Créations.2011
Créations.2011elodie67
 
Dossier de presse colloque la Guerre des Etoiles
Dossier de presse colloque la Guerre des EtoilesDossier de presse colloque la Guerre des Etoiles
Dossier de presse colloque la Guerre des Etoileswomenup
 
2013 synergie collab sametime & unified communication
2013 synergie collab sametime & unified communication2013 synergie collab sametime & unified communication
2013 synergie collab sametime & unified communicationSynergie Informatique France
 
Catalogue everlife f w 13 (1)
Catalogue everlife f w 13 (1)Catalogue everlife f w 13 (1)
Catalogue everlife f w 13 (1)everlife2012
 
Leo Burnett We Are Open, Novembre 2012
Leo Burnett We Are Open, Novembre 2012Leo Burnett We Are Open, Novembre 2012
Leo Burnett We Are Open, Novembre 2012LeoBurnettFrance
 
A Lune & Beethoven Mb 091003
A Lune & Beethoven Mb 091003A Lune & Beethoven Mb 091003
A Lune & Beethoven Mb 091003lluis gil
 
Opération Bords des champs
Opération Bords des champsOpération Bords des champs
Opération Bords des champsUrtikan.net
 
Relike - decouverte du service
Relike - decouverte du serviceRelike - decouverte du service
Relike - decouverte du serviceAntoine Gounel
 

En vedette (20)

Les CHATBOTS façonnent-ils le web de demain ?
Les CHATBOTS façonnent-ils le web de demain ?Les CHATBOTS façonnent-ils le web de demain ?
Les CHATBOTS façonnent-ils le web de demain ?
 
Chatbots & expérience client : comment les chatbots transforment l'expérience...
Chatbots & expérience client : comment les chatbots transforment l'expérience...Chatbots & expérience client : comment les chatbots transforment l'expérience...
Chatbots & expérience client : comment les chatbots transforment l'expérience...
 
Les chatbots : vers une démocratisation du conversationnel automatisé ?
Les chatbots : vers une démocratisation du conversationnel automatisé ?Les chatbots : vers une démocratisation du conversationnel automatisé ?
Les chatbots : vers une démocratisation du conversationnel automatisé ?
 
A la rencontre du bot
A la rencontre du botA la rencontre du bot
A la rencontre du bot
 
Les Agents Virtuels Intelligents
Les Agents Virtuels IntelligentsLes Agents Virtuels Intelligents
Les Agents Virtuels Intelligents
 
MobiliteaTime #8 : Les Chat Bots
MobiliteaTime #8 : Les Chat BotsMobiliteaTime #8 : Les Chat Bots
MobiliteaTime #8 : Les Chat Bots
 
Couleur rouge
Couleur rougeCouleur rouge
Couleur rouge
 
Créations.2011
Créations.2011Créations.2011
Créations.2011
 
Dossier de presse colloque la Guerre des Etoiles
Dossier de presse colloque la Guerre des EtoilesDossier de presse colloque la Guerre des Etoiles
Dossier de presse colloque la Guerre des Etoiles
 
Clientes
ClientesClientes
Clientes
 
2013 synergie collab sametime & unified communication
2013 synergie collab sametime & unified communication2013 synergie collab sametime & unified communication
2013 synergie collab sametime & unified communication
 
Présent i cours2
Présent i cours2Présent i cours2
Présent i cours2
 
Catalogue everlife f w 13 (1)
Catalogue everlife f w 13 (1)Catalogue everlife f w 13 (1)
Catalogue everlife f w 13 (1)
 
Instagram _ Mai 2012
Instagram _ Mai 2012Instagram _ Mai 2012
Instagram _ Mai 2012
 
Leo Burnett We Are Open, Novembre 2012
Leo Burnett We Are Open, Novembre 2012Leo Burnett We Are Open, Novembre 2012
Leo Burnett We Are Open, Novembre 2012
 
A Lune & Beethoven Mb 091003
A Lune & Beethoven Mb 091003A Lune & Beethoven Mb 091003
A Lune & Beethoven Mb 091003
 
Opération Bords des champs
Opération Bords des champsOpération Bords des champs
Opération Bords des champs
 
Relike - decouverte du service
Relike - decouverte du serviceRelike - decouverte du service
Relike - decouverte du service
 
La Timeline _ Mars 2012
La Timeline _ Mars 2012La Timeline _ Mars 2012
La Timeline _ Mars 2012
 
445
445445
445
 

Similaire à La mobilité dans Drupal

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
 
jQuery Mobile & Applications Web
jQuery Mobile & Applications WebjQuery Mobile & Applications Web
jQuery Mobile & Applications WebNicolas Hoffmann
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascriptcodedarmor
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applicationsgoldoraf
 
CV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALCV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALYoussouph Barry
 
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
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasMicrosoft
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Jean-Laurent de Morlhon
 
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopConfoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopFrédéric Harper
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASGuillaume Sauthier
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 
Symposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorSymposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorArthurMaroulier
 
Glossaire web pour les profanes - Webdesign
Glossaire web pour les profanes - WebdesignGlossaire web pour les profanes - Webdesign
Glossaire web pour les profanes - WebdesignRelax In The Air
 

Similaire à La mobilité dans Drupal (20)

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
jQuery Mobile & Applications WebjQuery Mobile & Applications Web
jQuery Mobile & Applications Web
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
 
CV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALCV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPAL
 
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
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de Jonas
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Nouveaux apis
Nouveaux apisNouveaux apis
Nouveaux apis
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopConfoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnAS
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
Symposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorSymposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme Meteor
 
Glossaire web pour les profanes - Webdesign
Glossaire web pour les profanes - WebdesignGlossaire web pour les profanes - Webdesign
Glossaire web pour les profanes - Webdesign
 

Plus de Adyax

Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€Adyax
 
Applications métier avec Drupal
Applications métier avec DrupalApplications métier avec Drupal
Applications métier avec DrupalAdyax
 
Using Drupal to publish Web, Print and Mobile from same CMS
Using Drupal to publish Web, Print and Mobile from same CMSUsing Drupal to publish Web, Print and Mobile from same CMS
Using Drupal to publish Web, Print and Mobile from same CMSAdyax
 
Multiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using DrupalMultiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using DrupalAdyax
 
Estimation de projets Drupal
Estimation de projets DrupalEstimation de projets Drupal
Estimation de projets DrupalAdyax
 
Drupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSDrupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSAdyax
 
Drupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimatesDrupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimatesAdyax
 
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAPRéaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAPAdyax
 
Présentation de Drupal
Présentation de DrupalPrésentation de Drupal
Présentation de DrupalAdyax
 
Cours 3/3 - Architecture Web
Cours 3/3 - Architecture WebCours 3/3 - Architecture Web
Cours 3/3 - Architecture WebAdyax
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture WebAdyax
 
Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Adyax
 
Gestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalGestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalAdyax
 
Gestion des médias dans Drupal
Gestion des médias dans DrupalGestion des médias dans Drupal
Gestion des médias dans DrupalAdyax
 
Varnish
VarnishVarnish
VarnishAdyax
 
Drupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-CommerceDrupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-CommerceAdyax
 
eCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactileseCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactilesAdyax
 
For a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalFor a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalAdyax
 
Drupal usage by example : World Food Programme
Drupal usage by example : World Food ProgrammeDrupal usage by example : World Food Programme
Drupal usage by example : World Food ProgrammeAdyax
 
Learn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.frLearn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.frAdyax
 

Plus de Adyax (20)

Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€
 
Applications métier avec Drupal
Applications métier avec DrupalApplications métier avec Drupal
Applications métier avec Drupal
 
Using Drupal to publish Web, Print and Mobile from same CMS
Using Drupal to publish Web, Print and Mobile from same CMSUsing Drupal to publish Web, Print and Mobile from same CMS
Using Drupal to publish Web, Print and Mobile from same CMS
 
Multiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using DrupalMultiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using Drupal
 
Estimation de projets Drupal
Estimation de projets DrupalEstimation de projets Drupal
Estimation de projets Drupal
 
Drupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSDrupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMS
 
Drupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimatesDrupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimates
 
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAPRéaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
 
Présentation de Drupal
Présentation de DrupalPrésentation de Drupal
Présentation de Drupal
 
Cours 3/3 - Architecture Web
Cours 3/3 - Architecture WebCours 3/3 - Architecture Web
Cours 3/3 - Architecture Web
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
 
Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"
 
Gestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalGestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec Drupal
 
Gestion des médias dans Drupal
Gestion des médias dans DrupalGestion des médias dans Drupal
Gestion des médias dans Drupal
 
Varnish
VarnishVarnish
Varnish
 
Drupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-CommerceDrupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-Commerce
 
eCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactileseCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactiles
 
For a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalFor a Social Local and Mobile Drupal
For a Social Local and Mobile Drupal
 
Drupal usage by example : World Food Programme
Drupal usage by example : World Food ProgrammeDrupal usage by example : World Food Programme
Drupal usage by example : World Food Programme
 
Learn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.frLearn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.fr
 

La mobilité dans Drupal

  • 1. QUE FAIRE POUR CEUX QUI ONT DES FONDS SOMBRES POUR LEUR SLIDES ?
  • 2. Mobilité & Multi-device avec par @mtopolov CTO de @adyax & @padcms
  • 3. 100 Experts Drupal, 45 gros projets Drupal en 2011
  • 5. Web mobile c’est quoi ? Multiplicité des terminaux Interfaces tactiles Utilisation dans un contexte de vie courante Réseaux à qualité aléatoire / mode offline
  • 7. Multiplicité des terminaux + Nombreux ratios (4:3, 16:9, 16:10, 3:4, 1:1...) + Diverses résolutions (240x240 -> 2048x1536) = Importance à adapter le contenu au contenant
  • 9. Interfaces tactiles Les doigts sont plus gros et gauches que la souris Le scroll est simple et naturel (mais fatiguant en vertical) Contenus plus gros et disposés verticalement Nécessité de feedback visuel (pas de click-click)
  • 10. Usage en conditions de vie courante
  • 13. ça
  • 14. ça
  • 16. Contexte de vie courante Vitesse & Pertinence (couper le superflu) Le plus important d’abord (reograniser le contenu) Profiter, de la localisation (si pertinent)
  • 18. Réseau aléatoire et offline Votre contenu devrait être disponible en cas de perte de la connexion internet Le contenu doit être le plus léger possible Le temps de réponse de votre serveur réduit au minimum.
  • 19. Pourquoi est-ce important ? 6 000 000 000 000 000 000 octets / mois
  • 20. Explosion du trafic mobile en 2016 le trafic mobile sera multiplié par 30 Internet mobile c’est déjà 50% du trafic en Afrique et Asie 200 millions de tablettes dans le monde Aujourd’hui le trafic mobile c’est 50 fois le trafic broadband.
  • 21. Je ne le vois pas... Poule/oeuf : les gens ne (re)viennent pas car votre site n’est pas adapté aux terminaux Référencement mobile n’est pas que du SEO (présence en App Store, Raccourcis Safari, TV connectés, portails mobiles, google mobile) Votre contenu n’est pas utilisé en mobilité (mais ce n’est pas une fatalité)
  • 23. Solutions Drupal Mobile Responsive Design Thème mobile (contexte mobile) Apps Natives (PhoneGap, Titanium, ou DYI) Un mot sur le web local
  • 24. Que faire pour qui ? Responsive Thème Mobile App native eCommerce OUI Media NON OUI OUI Réseaux Sociaux NON OUI Marques OUI NON Bases de données OUI NON ONG/Gov OUI NON
  • 25. Responsive Design (ou comment briller en soirée geek)
  • 27. Responsive design Très sympa en démo client (l’effet «Waouuu») Une réelle difficulté lors de l’intégration HTML = 2 fois plus long à faire Nécessite un vrai travail fonctionnel en amont Avantage : peu d’impact sur le développement pur
  • 28. Coté Drupal ? Omega, un starter thème responsive & grid (D7 uniquement) Globalement le responsive ne concerne que très peu Drupal (Panels?) Penser à gérer les presets différents pour ImageCache
  • 29. Concrètement <link href="/css/screen.css" type="text/css" rel="stylesheet" media="all" /> <link rel="stylesheet" media="only screen and (max-width: 1020px)" href="/css/screen_800.css" type="text/css" /> <link rel="stylesheet" media="only screen and (max-width: 600px)" href="/css/screen_320.css" type="text/css" />
  • 30. Un peu de JS $(document).ready(function(){ if( screen.width < 750 || navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) ){ $('body').addClass('this-is-mobile'); };
  • 37. Theme mobile (ou plutôt le contexte mobile !)
  • 38. Theme mobile Quand switcher sur le contexte mobile ? On switch pas de theme, mais bien de contexte, les Views, Panels, Modules custom sont impactés... Pour aller vite, utiliser jQuery Mobile, si le client est ok.
  • 39. Quand switcher ? Le plus tôt possible (LB, Proxy). Ne surtout pas le faire dans Drupal (Browscap, Wurfl...) Load Cache / HTTP Drupal Balancer Proxy
  • 40. Varnish (1/2) Cookie ? UA Erreur Custom Redirect if (!req.http.Cookie ~ "mdevice=desktop") { set req.http.X-Device = "pc"; if (req.http.User-Agent ~ "iP(hone|od)" || req.http.User-Agent ~ "Android" || req.http.User-Agent ~ "Symbian" || req.http.User-Agent ~ "BlackBerry" || req.http.User- Agent ~ "^SonyEricsson" || req.http.User-Agent ~ "^Nokia" || req.http.User-Agent ~ "^SAMSUNG" || req.http.User-Agent ~ "^LG" || req.http.User-Agent ~ " webOS") { set req.http.X-Device = "mobile"; }
  • 41. Varnish (2/2) Cookie ? UA Erreur Custom Redirect if(req.http.X-Device == "mobile") { if(req.http.host !~ "m.erol.adyax.com:6081") { error 751 "m.erol.adyax.com:6081"; } } sub vcl_error { if (obj.status == 751) { if (obj.response ~ "m.erol.adyax.com:6081") { set obj.http.Location = "http://m.erol.adyax.com:6081" req.url; set obj.http.Vary = "Cookie"; set obj.http.Cache-Control = "private"; set obj.http.Expires = "Sat, 21 Aug 2022 06:00:00 GMT"; } set obj.status = 302; return(deliver); } }
  • 42. Contexte mobile : principes Theme Custom / JQuery Mobile (Theme) ImageCache, Panels (Layout) Mobile Tools / Domains (mobile.tonsite.com) VARNISH (Redirection HTTP 302)
  • 43. jQuery Mobile jQuery Mobile: «Touch-Optimized Web Framework for Smartphones & Tablets » On peut customiser facilement Ressemble à l’interface iPhone http://jquerymobile.com/
  • 44. j-Query pour & contre Plus Moins Rapide à mettre en place Votre client doit accepter (2-3 jours) le design JQuery... Navigation proche des Difficile à hacker si on menus du terminal veut aller loin Vous évite de réfléchir au Vous évite de réfléchir au mobile mobile
  • 51. Principes de base Votre application doit récupérer le contenu depuis Drupal Une consultation en mode offline devrait être possible (stockage interne des données) Le contenu peut être mis à jour à tout moment
  • 52. Services 3.X Donne accès aux noeuds, files, taxonomies, users, views Gère la sécurité (API Key) Server API permet de coder ses propres protocoles
  • 53. Problèmes courants Absence de structure dans les données (à cause de CCK) SOAP n’est pas standard et buggué Pas de WSDL Problèmes avec les NodeRefs, Medias, Champs composés
  • 54. <?xml version='1.0' ?> <methodCall> <methodName>node.create</methodName> <params> <param> <value> <struct> <member> <name>type</name> <value> <string>story</string> </value> node.create </member> <member> <name>body</name> <value> <string>Create body input</string> </value> </member> <member> <name>title</name> <value> <string>Test title</string> </value> </member> </struct> </value> </param> </params> </methodCall>
  • 55. SOAP 399 octets <?xml version='1.0' encoding='UTF-8'?> <s:Envelope xmlns:s="http://www.w3.org/2001/06/soap-envelope" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <s:Body> <x:FlickrRequest xmlns:x="urn:flickr"> <method>flickr.echo</method> <name>value</name> </x:FlickrRequest> </s:Body> </s:Envelope>
  • 56. XML-RPC 99 octets <?xml version="1.0"?> <methodCall> <methodName>flickr.echo</methodName> <params/> </methodCall>
  • 57. JSON 68 octets { "method" : "flickr.echo", "params" : null, "id" : 1 }
  • 58. B-PLIST 52 octets 6270 6c69 7374 3030 d101 0256 6d65 7468 6f64 5b66 6c69 636b 722e 6563 686f 080b 1200 0000 0000 0001 0100 0000 0000 0000 0300 0000 0000 0000 0000 0000 0000 0000 1e
  • 59. ...sinon, il y a le HTML Toute l’application n’est qu’un loader de WebUI avec un wrapper d'événements JS Coté Drupal, on génére des pages HTML (avec Boost) La synchro est basée sur SVN (http://pecl.php.net/ package/svn/1.0.0)
  • 60. Attention les dangers HTML Sur les terminaux WebUI sont lents => prégénration en images + zones clicables Réécriture des URL (navigation locale) Intégration de vidéos (parsing des <object>)
  • 61. SG : Drupal web site + Mobile theme + iPad App
  • 62. SG : Drupal web site + Mobile theme + iPad App
  • 63. SG : Drupal web site + Mobile theme + iPad App
  • 64. SG : Drupal web site + Mobile theme + iPad App
  • 65. Liste des modules Mobiles utiles http://drupal.org/project/mobile_tools http://drupal.org/project/domain http://drupal.org/project/browscap http://drupal.org/project/omega http://drupal.org/project/views_jqm
  • 66. Premier outil de publication de magazines pour tablettes (iPad & Android) OPEN SOURCE Lancement : 15 Juin !!! http://padcms.com @PadCMS
  • 67. Une question ? N'hésitez pas à nous solliciter. @adyax, @mtopolov

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n