Microsoft Techdays 2013

Nous avons participé à différentes conférences aux Techdays 2013 de Microsoft. Voici ce que nous avons retenu :

Développer pour tous les navigateurs

La conférence était très ludique et pertinente, basée sur un retour d’expérience de plusieurs années.

Il est très difficile de gérer tous les navigateurs car les entreprises sont frileuses aux changements. Par exemple, des contrats « entreprises » existe pour Firefox ou Safari pour maintenir une version spécifique pendant un an. Avec des mises à jours toutes les six semaines, une version vielle d’un an est très éloignées de la dernière version publiée.
Les navigateurs partageant la même souche Webkit ne sont pas tous au même niveau et ne propose pas toujours les mêmes composants. Par exemple, SVG n’est pas disponible sous Android 2.x car cela représente 1Mo supplémentaire.
Les CSS préfixés ne sont pas pérenne.
(Lire la suite…)

D’un site mobile à une véritable application Web

La navigation mobile (smartphone ou tablette) s’est sans conteste accaparée une partie non négligeable du trafic Internet, et son augmentation ne fait pas de doute. Pour répondre à l’arrivée de ce nouveau support de consultation, nombres de sites ont commencé par adapter leur présentation pour une lecture agréable. Aujourd’hui, le mobile fait l’objet d’une véritable stratégie d’entreprise et ce sur de nombreux fronts : organisationnel, marketing et technologique notamment.

Ce dernier point amorce aujourd’hui un virage naturel mais peu évident à négocier, tiré par la démocratisation des usages et donc d’attentes plus élevées de l’utilisateur : il ne cherche plus seulement une déclinaison mobile d’un site web, mais une véritable expérience comme attendue dans une application native.

(Lire la suite…)

Performance côté client avec Rails & Heroku

À ChooseYourBoss on développe une appli web tout ce qu’il y a de plus classique : HTML5, JS, CSS3 + quelques API (Linkedn, Viadeo, Google Maps, Google Analytics, etc). Côté serveur on est en Rails sur Heroku. Bref, rien d’exceptionnel quoi.

Puis un jour, on a jeté un œil sur le graphe de temps de chargement de notre appli – merci Google Analytics. Et là le drame : une moyenne de plus de 5 secondes pour la page d’accueil, et je ne vous parle pas sur mobile. On se dépêche alors d’aller faire un petit tour sur Google Pagespeed, notre score : 44/100 (bof bof).

On décide d’investiguer point par point nos hypothèses, en voici un résumé.
(Lire la suite…)

Quelques niouses (en) Ruby du mois de Juillet

C’est quoi cet article ? Facile ! Un résumé de l’actualité autour de Ruby du mois passé, pour les techos et les geeks pressés. Retrouvez moi sur ce blog pour des infos de techos à techos.

Pour les plus pressés, une seule chose à retenir pour cette brève : Ruby 1.8 et Ruby 1.9 ont été mis à jour, pensez à upgrader.

(Lire la suite…)

Le point sur Node

Dans cet article, nous allons faire le point sur Node, une technologie serveur dont tout le monde parle et qui est devenue, en 2 ans seulement, le 3ème projet le plus suivi sur GitHub derrière Rails et jQuery.

(Lire la suite…)

Charger des fichiers javascript de façon performante

Users really respond to speed

La citation est de Marissa Meyer, VP expérience utilisateur à Google, en 2006.

Pas grand chose n’a changé depuis, si ce n’est qu’on a des chiffres plus précis, et un peu effrayants, sur l’importance de la performance dans les applications web : Quelques points de performance feront la différence entre une expérience réussie et une application perçue négativement par ses utilisateurs.

Ou plutôt si, ce qui a changé c’est que depuis 2006 on ne se contente plus de sites web, les applications web ont envahi les entreprises et leur SI. Il devient donc primordial de faire attention aux spécificités des applications web : On ne traite pas un navigateur comme un client lourd. (Lire la suite…)

Le Test Driven Development au secours de Javascript !

Travaillant avec les technos Web, j’ai souvent été confronté à Javascript.
Java-iste dans l’âme, j’ai été un peu rebuté par ce langage interprété (non compilé), faiblement typé, basée sur la notion de prototype (donc sans classe !)… bref, trop souple pour être vraiment sérieux !

Si on ajoute à cela qu’il existe un moteur par version de navigateur (actuellement on a Chakra chez IE9, V8 pour Chrome, TraceMonkey chez Firefox3.5, SquirrelFish pour Safari ou encore Carakan pour Opera10…) ce sont les maux  de tête assurés !

La solution: le TDD !
Cette méthode de développement est une bonne façon d’avoir un retour rapide sur son code et ainsi, de compenser le côté « non-compilé » de Javascript.
De plus, les tests unitaires sont particulièrement importants lorsque le typage est dynamique (comme c’est le cas en Javascript, mais aussi en Ruby, Groovy, Python, etc.). Dans ces environnements, c’est le harnais de test produit par le TDD qui permettra au développeur d’avoir la confiance suffisante pour faire du refactoring.

Il existe de nombreux frameworks de tests unitaires Javascript. On retiendra en particulier QUnit (l’outil de tests officiel de JQuery), Jasmine (orienté BDD et successeur de JSunit, le pionnier, sorti en 2001) ou encore le YUI Test de Yahoo.
Dans cet article, je vous présenterai JsTestDriver.
(Lire la suite…)

Ce que jQuery Mobile nous apprend sur le Web Mobile

Cet article s’intéresse aux principes de développement qu’implémente la librairie jQuery Mobile pour offrir des sites Web adaptés aux terminaux mobiles, afin d’en tirer des enseignements pour nos propres développements mobiles, utilisant cette librairie ou non.
Nous entendrons ici par Web Mobile les sites et applications Web pour les tablettes et tous les téléphones portables supportant le Web, depuis les premières version de Symbian S60 jusqu’aux derniers iPhone et Android.
(Lire la suite…)

Paris Web 2010: les grandes tendances

L’édition 2010 de Paris Web, l’évènement français des acteurs du Web, a eu lieu du jeudi 14 octobre au 16 octobre. Trois jours de sessions passionnantes dont voici les principaux thèmes abordés.
(Lire la suite…)

Optimiser les performances de vos applications web sur mobile

La part du web consulté par des terminaux mobiles augmente très vite, et proposer à ces utilisateurs une version mobile devient un véritable enjeu stratégique. Malheureusement, le web mobile n’a pas grand chose à voir avec celui qu’on connaît sur desktop: du fait des faibles performances des appareils mobiles par rapport au desktop, des contraintes qui n’existaient plus vraiment sur nos ordinateurs sont de nouveaux d’actualité :

  • peu de CPU
  • peu de mémoire
  • peu d’autonomie
  • peu d’espace disque… voir pas du tout
  • une connexion intermittente… au mieux
  • une débit de connexion très variable

Yahoo! YSlow est certainement la référence pour trouver des optimisations sur son site web,  mais ces optimisations sont orientées pour le web sur Desktop et YSlow se base sur les prédicats suivants :

  • connexion internet sans coupure intermittente, toujours disponible et illimitée
  • une mémoire et un espace de stockage illimités

Si on prend nos contraintes sur mobile, on se rend compte que ça change pas mal la donne. Nous allons détailler ce qu’implique ces nouvelles contraintes sur votre application web en terme d’expérience utilisateur et vous donner quelques pistes d’optimisation qui émergent.

(Lire la suite…)