LogoLogo Light
  • Product
  • Services
  • about us
  • career
  • Blog
  • Product
  • Services
  • about us
  • career
  • Blog
Related post
How to separate the sheep from the goat using the Gini coefficient?

How to separate the sheep from the goat using the Gini coefficient?

Perception and reality, the secrets of a fluid WEB application

Perception and reality, the secrets of a fluid WEB application

blog launch

blog launch

Related post
Pourquoi est-on passé de Selenium à Cypress ?

Pourquoi est-on passé de Selenium à Cypress ?

Les avantages d’une BDD pour la gestion du DNS

Les avantages d’une BDD pour la gestion du DNS

Langage et pensée formelle : des réseaux neuronaux dissociables

Langage et pensée formelle : des réseaux neuronaux dissociables

Les composants logiciels d’une fonctionnalité de cartographie vectorielle

Les composants logiciels d’une fonctionnalité de cartographie vectorielle

Blog Image
Development, Tout

Perception et réalité, les secrets d’une application WEB fluide

  • Posted by LivingObjects

Perception et réalité, les secrets d’une application WEB fluide

lo__signature_jb

Depuis que des applications mobiles ont migré  des technologies natives vers des technologies WEB, l’essentiel des informations transite par le réseau radio. Le développeur doit tenir compte des aléas de réception dans la conception de son application.

Lorsqu’on interagit avec une application, il est aujourd’hui difficile de concevoir un temps où il ne se passe rien.

Entre 100 et 300 ms, on ressent une légère perception de délai. Au-delà de 1 seconde, l’attention sur la tâche en cours diminue. Au-delà de 10 secondes, commence le lent travail de frustration qui amène à la plainte aux équipes IT ou à la suppression de l’application.

Il y a dix ans, en voyant un spinner sur la page, on savait que l’application avait pris en compte notre demande, et on attendait patiemment. Avec la mise en place des réseaux 4G et bientôt 5G, la généralisation de la fibre optique, on est plutôt dans le registre « Ma demande est pourtant simple, pourquoi la réponse n’est pas immédiate ? ».

Le spinner est aujourd’hui synonyme de lenteur. La latence ne fait plus partie de notre référentiel et une application mal conçue ne supporte pas les aléas réseaux. La sanction de l’utilisateur est immédiate : Il change d’application.

Où est passé le temps ?

En montagne, il n’y a pas de temps gagné, il n’y a que du temps perdu. Ce proverbe montagnard signifie que pour atteindre l’objectif, il n’est pas question de supprimer les actions liées à la sécurité des grimpeurs. Mais le travail permet d’optimiser le temps passé.

Le développeur n’a pas d’impact sur la vitesse de transmission du réseau, mais il doit travailler à :

  • Optimiser les temps de calcul des serveurs de données
  • Concevoir un protocole de communication efficace entre le client et le serveur applicatif
  • Mettre en place les bonnes stratégies de rendu visuel de l’information.

Ce travail d’optimisation est important pour toutes les applications. Il devient impératif dès qu’une application doit gérer un grand volume de données.

Voici quelques règles que nous gardons en tête dans la conception de nos interfaces utilisateurs.

Diffuser l’information au bon rythme

La première chose est de garder de la puissance disponible pour que l’équipement, PC ou mobile, puisse faire autre chose que charger l’application :

En d’autres termes, éviter le freeze.

Les applications LivingObjects utilisent des composants front complexes : Création de graphes et des cartes en utilisant du canvas, utilisation de WebGL pour les cartes, sélecteurs de données avec des listes de milliers d’objets…,

Il nous est donc impossible de développer suivant le principe : « On a reçu l‘info du back. Vite, on envoie la sauce, le navigateur se débrouillera. ».

La suite, tout le monde l’a connu au moins une fois : freeze de la souris, voile blanc qui se dépose sur l’onglet et popup déclarant « l’onglet ne répond pas, voulez-vous recharger ? ».

Les stratégies suivantes s’imposent :

  • Un chargement asynchrone des blocs constituant la page par pas de multiples de 100 ms en fonction de la taille du composant.
  • Un affichage « utile » des données en commençant par celles qui sont visibles par l’utilisateur.

Tenir l’utilisateur en haleine

Un retour systématique et instantané sur chaque clic est aujourd’hui devenu la norme pour toutes les applications web. Mais exprimer par un effet sur le clic, que la demande a été prise en compte n’est plus suffisant. Il faut aussi que la réponse arrive rapidement.

La stratégie du « skeleton screen », apparue récemment, est maintenant utilisée par la plupart des géants du Web. Luke Wroblewski utilise le premier ce terme et donne la définition suivante :

“Un skeleton est la version blanche de la future page, dans laquelle la donnée sera chargée progressivement.”

Il s’agit de construire le squelette de la page en remplaçant les zones de texte ou images non encore disponibles par des petits blocs gris ou de couleur neutre qui apparaissent instantanément. La donnée réelle remplace progressivement ces blocs lorsqu’elle devient disponible. Ces blocs permettent de basculer d’une perception d’un process intégral de chargement, à un process plus restreint de chargement de la donnée.

Cette stratégie donne une illusion d’instantanéité qui garantit l’engagement cognitif de l’utilisateur.

Ce travail sur l’expérience utilisateur, d’abord réalisé sur les applications mobiles, bénéficie aux applications web PC. En respectant ces principes, on amène une fluidité d’utilisation proche des applications PC natives.

Références :

https://developers.google.com/web/fundamentals/performance/rail , guideline donnée par l’équipe Google sur la conception des interfaces

https://uxdesign.cc/what-you-should-know-about-skeleton-screens-a820c45a571a pour comprendre plus en détail le fonctionnement des skeleton

Previous Post

blog launch

Next Post

Perception and reality, the secrets of a fluid WEB application
0 comments on Perception et réalité, les secrets d’une application WEB fluide
Scroll

LivingObjects

Legal | Privacy police