Qu’est-ce qu’une application web ?

Quelle est la différence avec un site internet classique ? Est-ce qu’il y en a bien une ? Qu’est-ce qu’une application web apporte par rapport à un site internet classique ?

Les applications web ont apparues relativement récemment. Est-ce qu’il y a vraiment une différence avec un site internet classique ? Oui il y a une grosse différence. Basiquement, le site internet classique, c’est du HTML, ou du PHP qui génère du HTML. Pour une application web, c’est du JavaScript qui génère du HTML. Le HTML est le language de description qui permet d’agencer du contenu sur une page.

Qu’est-ce que ça change ?

Eh bien, les performances. Une application web, réalisée essentiellement en JavaScript, sera toujours plus rapide qu’un site internet classique. Le site internet classique fait intervenir un language côté serveur (à savoir du PHP) pour générer le rendu visuel de la page. Une application web, elle, va directement dire à votre navigateur de générer ces éléments. Même pas besoin d’écrire du HTML, c’est un script qui va le générer.

Depuis peu, Google à modifié ses critères de référencement pour y inclure à la fois la capacité des pages à s’adapter à plusieurs dimensions d’écrans (ce qu’on appelle le responsive webdesign) mais aussi les performances du site. En gros, plus votre site s’affiche rapidement, plus il monte dans le référencement d’une recherche concernant son contenu. C’est ce que permettent les applications web.

Une meilleure structure

J’ai commencé à développer des sites il y a quelques années. J’ai commencé à me faire la main sur du HTML, puis sur du PHP. Le HTML permet de faire des pages statiques qui vont très bien fonctionner. Le PHP permet de rendre ces pages dynamiques, en y insérant des constantes, variables, boucles, conditions et fonctions. PHP permet aussi d’aller chercher du texte dans une base de données et de l’insérer dans du HTML. Bref, c’est passionnant, mais compliqué, tout se retrouve très vite mélangé.

Une application web est mieux organisée au niveau du code. Elle se contente d’aller chercher les données, et de les injecter dans une structure HTML qui sera générée par le navigateur.

Fonctionnement hors ligne

Une application web peut continuer de fonctionner hors ligne sous reserve que vous y accédiez une première fois connecté. En effet vou ne changez pas de page. Vous en avez peut-être l’impression parce que vous naviguez, mais en fait non. Quand vous cliquez sur un lien vers une autre page, seul le contenu qui change est remplacé et l’url mise à jour, dynamiquement. C’est aussi pour ça que c’est rapide, car contrairement à un site internet classique, il n’y a que ce qui change qui est remplacé. Et pas toute la page ! C’est ce qu’on désigne communément par le terme SPA (Single Page Application).

Le cas React

Il existe maintenant pléthore d’outils pour créer des applications web. Il y a notamment Vue, Angular, et React. Basiquement si la syntaxe change d’un outil à un autre, les mêmes logiques s’y retrouvent sous des formes différentes, car au final on a besoin d’y faire les mêmes choses. J’ai essayé Angular à l’époque ou il commençait à se développer (ça remonte !) mais au final je suis plus porté sur React, que j’ai trouvé assez simple à prendre en main.

Le logo de React.

React est surtout bien organisé. Il fonctionne en composants. Si vous avez par exemple une bannière sur votre site, un menu, un contenu principal, un logo, jusqu’aux boutons eux-même, eh bien ce sont des composants. Les composants sont des éléments isolés, réutilisables et imbricables auxquels on peut donner des propriétés dans certaines conditions. En gros, ce système de composants permet une meilleure organisation du code.

2 en 1

Peut-être avez vous déjà entendu parler de développement front-end. J’expliquais plus haut que dans un site internet classique, tout était mélange, le PHP, le HTML, les requêtes à la base de données, le traitement des informations, etc… Dans une application web, ce n’est pas le cas, car elle ne s’occupe que du côté front-end : ce que le visiteur du site internet voit s’afficher sur son écran.

On peut très bien intégrer les données dans l’application web elle-même. Mais si vous souhaitez que votre site soit intéractif (c’est-à-dire que vous puissiez administrer son contenu), il est préférable que l’application web côté front-end aille chercher ces données d’une façon distante. Chaque composant d’une application web peut ainsi faire ses propres requêtes et s’injecter son propre contenu.

C’est un autre site internet, caché au public, qui fournit ces données à l’application web. Son rôle, c’est la logique métier : permettre à un administrateur connecté d’ajouter, de modifier et de supprimer du contenu. Et c’est tout. Pour la partie présentation, c’est l’application web qui s’en charge.

Les intéractions en plus

Une application web permet de gérer efficacement et simplement des intéractions. C’était plus compliqué auparavant, parce que la page se rechargeait, dans le cas d’un site internet classique, et que l’on perdait l’historique de ces intéractions. La forme la plus complexe de cette gestion d’intéraction, vous pouvez la voir sur des applications complexes, qui s’apparentent à des logiciels, comme Gmail. Et oui, Gmail est une application web. Facebook est une application web. Twitter et Instagram, pour le sites accessibles depuis le navigateur, aussi. C’est pour vous dire à quel point les applications web sont puissantes.

Le futur

Plus les fonctionnalités d’un site internet deviennent complexes, plus il convient de séparer la partie affichage (gérée par l’application web) de la récupération, du traitement et de la logique métier des données. Cette problématique a bien été comprise par les développeurs qui nous ont apporté, entre autres, Angular, Vue, React et Svelte. Si de grands nom comme Facebook, Instagram, Twitter, AirBnB utilisent des applications web, cette pratique se développe de plus en plus car elle facilite la maintenance d’un site internet. Elle le rend également plus fluide et agréable à utiliser, se rapprochant ainsi de plus en plus de l’expérience utilisateur offerte par les applications natives que l’on peut trouver sur un téléphone portable. De plus, Google a décidé de rendre les applications web installables sur les téléphones et tablettes au même titre que les applications natives, ce qui brouille encore un peu plus la frontière entre les deux.

Le monde change, le web aussi. Autrefois un site internet se concevait avec un ensemble phénoménal de technologies imbriquées. Aujourd’hui, nous allons de plus en plus vers les applications mobiles, avec une seule technologie : le JavaScript, pour les gouverner tous, et dans les ténèbres les lier.

Bonne soirée.