Que sont les mini-applis ?

Composants de base et compatibilité

Les mini-applications sont de petites applications (généralement de 2 à 4 Mo) qui nécessitent une super application pour s'exécuter. Ce qu'elles ont en commun, indépendamment de la super-application, c'est qu'elles sont créées avec les technologies Web HTML, CSS et JavaScript (leurs "dialectes"). L'environnement d'exécution d'une mini-application est une WebView dans la super-application, et non le système d'exploitation sous-jacent, ce qui rend les mini-applications multiplates-formes. La même mini-application peut s'exécuter dans la même super-application, que la super-application s'exécute sur Android, iOS ou un autre OS. Toutefois, toutes les mini-applications ne peuvent pas s'exécuter dans toutes les super-applications. Nous y reviendrons plus tard.

Discovery

Les mini-applications sont souvent découvertes de manière ponctuelle via des codes-barres 2D de marque, ce qui résout un problème important de passage hors connexion vers le Web, par exemple, passer d'un menu de restaurant physique à une mini-application de paiement ou d'un e-scooter physique à une mini-application de location. L'image ci-dessous montre un exemple de code-barres 2D de marque pour la mini-application de démonstration de WeChat. Lorsque le code est scanné avec la super-application WeChat, la mini-application se lance directement. Les autres super-applications ne pourront généralement pas reconnaître le code-barres.

Code-barres 2D avec le logo WeChat.
Le scan de ce code-barres 2D avec l'application WeChat lance une mini-application de démonstration.

Les mini-applications peuvent également être découvertes via la recherche dans l'application de la super-application, être partagées dans des messages de chat ou faire partie d'un article de flux d'actualités. Certaines super applications proposent des comptes vérifiés pouvant contenir des mini-applications dans leurs profils. Les mini-applications peuvent être mises en avant lorsqu'elles sont géographiquement proches, comme la mini-application d'un établissement devant lequel se trouve l'utilisateur, ou lorsqu'elles sont virtuellement proches, comme lorsque l'utilisateur obtient des itinéraires sur une carte affichée dans la super-application. Les mini-applications fréquemment utilisées sont disponibles dans un panneau d'applications auquel vous pouvez accéder dans de nombreuses super-applications par un geste de balayage vers le bas ou via une section spéciale du menu de la super-application.

L'expérience utilisateur

Toutes les super applications ont plus ou moins la même interface utilisateur pour les mini-applications. Barre supérieure personnalisable avec le nom de la mini-application. En haut de l'écran, un bouton de fermeture tout à droite est précédé d'un menu d'actions qui permet d'accéder à des fonctionnalités courantes telles que le partage de l'application, son ajout à une liste de favoris ou à l'écran d'accueil, le signalement d'applications abusives, les commentaires et les paramètres. La capture d'écran ci-dessous montre une mini-application d'achat exécutée dans le contexte de la super-application Alipay avec le menu d'actions ouvert.

Super-application Alipay exécutant une mini-application d'achat avec la barre supérieure, le bouton du menu d'actions et le bouton de fermeture mis en surbrillance. Le menu d'actions s'ouvre.
Menu d'actions ouvert d'une mini-application d'achat exécutée dans la super application Alipay.

Paradigmes d'UI

En règle générale, une barre d'onglets inférieure est utilisée pour la navigation principale de la mini-application. La plupart des fournisseurs de super-applications proposent des composants qui aident les développeurs à implémenter rapidement des paradigmes d'UI courants, tels que les carrousels, les accordéons, les barres de progression, les sélecteurs, les boutons d'activation/de désactivation, les cartes, etc. Cela permet également de rendre l'expérience utilisateur cohérente entre les différentes mini-applications, ce qui est encouragé par les Consignes de conception des mini-programmes de WeChat. C'est ce que recommande Apple dans ses Consignes relatives à l'interface utilisateur d'Apple et Google dans ses recommandations Design for Android.

Mini application de démonstration Douyin présentant le composant de curseur (carrousel) Douyin avec des boutons d'activation/de désactivation pour la progression automatique, les indicateurs de points, etc.
Composant de curseur (carrousel) de Douyin avec différentes options.

Livraison

Plutôt que d'être diffusées pièce par pièce en tant que ressources distinctes, les mini-applications sont diffusées en tant qu'applications empaquetées chiffrées, c'est-à-dire en tant qu'archives contenant toutes les ressources dans un seul fichier. Contrairement aux applications Web classiques, elles ne sont pas diffusées à partir de l'origine spécifique du créateur de mini-applications, mais directement du fournisseur de super-applications. Ils peuvent toujours accéder aux API à partir des serveurs du créateur de mini-applications, mais les ressources principales (communément appelées "shell de l'application") doivent être diffusées à partir du fournisseur de super-applications. Les mini-applications doivent déclarer les origines auprès desquelles elles demandent des données supplémentaires.

Mise en cache, mises à jour et liens profonds

Les mini-applications sont conservées dans le cache de la super-application. Par conséquent, la prochaine fois que l'utilisateur lancera une mini-application mise en cache, elle se chargera presque instantanément. Si une mise à jour est disponible, un nouveau package d'application est chargé. Le numéro de version peut faire partie de l'URI de lancement (voir Découverte). La super-application sait ainsi rapidement si la version mise en cache localement est toujours à jour. L'URI de lancement contient également la page souhaitée de la mini-application, ce qui permet de créer des liens profonds vers des pages spécifiques de mini-applications. Via un sitemap, les mini-applications peuvent déclarer quelles pages doivent être indexables par l'explorateur de mini-applications du fournisseur de super-applications.

Finder macOS affichant un dossier contenant des fichiers ".wxapkg" mis en cache pour les mini-applications WeChat
Les mini-applications sont mises en cache en tant qu'applications empaquetées chiffrées.

Sécurité et autorisations

Les mini-applications sont examinées par le fournisseur de super-applications, ce qui signifie que les utilisateurs les perçoivent comme plus sécurisées que les applications Web. Ils doivent déclarer les autorisations potentiellement requises à l'avance dans un fichier manifeste ou de configuration de mini-application, ce qui, pour certains fournisseurs, nécessite également d'expliquer pourquoi chaque autorisation est nécessaire. Les mini-applications peuvent bien sûr toujours mentir, mais elles auraient du mal à justifier, par exemple, pourquoi elles tentent d'accéder aux capteurs de mouvement sans raison apparente pour l'utilisateur. L'incitation à créer une empreinte de l'utilisateur est beaucoup plus faible que sur le Web, car l'utilisateur est généralement déjà connecté à la super-application (voir Identité, paiement et graphes sociaux).

Chaque fois qu'une mini-application effectue une opération nécessitant une autorisation spéciale, une invite s'affiche auprès de l'utilisateur. Si elle est appliquée par la plate-forme, elle inclut également la justification de l'utilisation, comme indiqué par le développeur. La capture d'écran ci-dessous montre la mini-application de démonstration Douyin lorsqu'elle demande à l'utilisateur l'autorisation de partager sa position. Dans certaines super-applications, il existe également une API impérative que les mini-applications peuvent exploiter pour demander des autorisations sans les utiliser immédiatement ou pour ne vérifier que l'état d'une autorisation. Cela peut même inclure une API pour ouvrir les paramètres d'autorisation de la super-application centrale, qui correspondent aux paramètres du site de Chrome. Les mini-applications doivent également déclarer à l'avance l'origine de tous les serveurs auprès desquels elles peuvent demander des données.

Mini-application de démonstration Douyin affichant une invite de géolocalisation avec deux options: "Non autorisé" et "Autorisé".
Mini-application de démonstration Douyin demandant l'autorisation de géolocalisation.

Accéder à des fonctionnalités performantes

La super-application hôte offre un accès à des API puissantes via un pont JavaScript qui est injecté dans la WebView proposée par la super-application (voir la section Blocs de construction et compatibilité). Ce pont JavaScript fournit des crochets dans les API du système d'exploitation. Par exemple, une fonction JavaScript de mini-application telle que getConnectedWifi() (capacité d'une mini-application à obtenir le nom du réseau Wi-Fi actuellement actif) est sous-jacente à l'API getConnectionInfo() d'Android ou à l'API CNCopyCurrentNetworkInfo() d'iOS. Bluetooth, NFC, iBeacon, GPS, presse-papiers système, capteurs d'orientation, informations sur la batterie, accès au calendrier, accès au carnet d'adresses, contrôle de la luminosité de l'écran, accès au système de fichiers, matériel de vibration pour le retour physique, accès à l'appareil photo et au micro, enregistrement d'écran et création de captures d'écran, état du réseau, sockets UDP, numérisation de codes-barres, informations sur la mémoire de l'appareil, etc. sont d'autres exemples d'API d'appareil puissantes exposées dans les super-applications courantes.

Mini-application WeChat de démonstration montrant un curseur qui contrôle la luminosité de l'écran de l'appareil, poussé au maximum.
Mini-application WeChat de démonstration qui définit la luminosité de l'écran de l'appareil au maximum.

Accès aux services cloud

De nombreuses super-applications offrent également un accès "sans serveur" aux services cloud du fournisseur de super-applications qui, en plus du cloud computing et du stockage cloud bruts, incluent souvent également des tâches de niveau supérieur telles que la traduction de texte, la détection d'objets ou la classification de contenu dans les images, la reconnaissance vocale ou d'autres tâches de machine learning. Les mini-applications peuvent être monétisées avec des annonces, qui sont généralement mises à disposition par les fournisseurs de super-applications. Les plates-formes de super-applications fournissent généralement également des données d'analyse cloud afin que les développeurs de mini-applications puissent mieux comprendre comment les utilisateurs interagissent avec leurs applications.

Identité, paiement, graphe social

Une caractéristique très importante des mini-applications est l'identité et les informations de graphes sociaux partagées à partir de la super-application. Les super-applications comme Douyin ou WeChat ont commencé comme des sites de réseautage social au sens le plus large, où les utilisateurs ont une identité (parfois même validée par le gouvernement), un réseau d'amis ou de followers, et souvent également des données de paiement stockées. Par exemple, une mini-application d'achat peut (et doit parfois) traiter tous les paiements directement via les API de paiement de la super-application et, avec l'autorisation de l'utilisateur, peut obtenir des données utilisateur telles que son adresse de livraison, son numéro de téléphone et son nom complet, le tout sans jamais avoir à forcer l'utilisateur à remplir des formulaires pénibles. Vous pouvez voir ci-dessous la mini-application Walmart exécutée dans WeChat, ouverte pour la toute première fois, et qui m'accueille avec un visage familier.

Mini-application Walmart affichant le visage et le nom de l'auteur dans l'onglet "Moi".
Mini-application Walmart avec une vue "Moi" personnalisée lors de la première visite.

Les mini-applications peuvent devenir très populaires en permettant aux utilisateurs de partager leurs exploits, comme les meilleurs scores dans un jeu, et de défier leurs contacts via des mises à jour de leur état. La mini-application n'est alors qu'à un appui de distance. Les utilisateurs peuvent ainsi participer à la compétition sans aucune friction, et la mini-application peut ainsi élargir sa couverture.

Remerciements

Cet article a été relu par Joe Medley, Kayce Basques, Milica Mihajlija, Alan Kent et Keith Gu.