Que sont les mini-applis ?

Les mini-applications sont de petites applications (généralement de 2 à 4 Mo) dont l'exécution nécessite une super application. Ce qu'elles ont en commun, indépendamment de la super-application, c'est qu'elles sont compilées avec les "dialectes" des technologies Web HTML, CSS et JavaScript. L'environnement d'exécution d'une mini-application est un WebView dans la super-application, et non dans le système d'exploitation sous-jacent, ce qui permet de les rendre multiplates-formes. La même mini-application peut s'exécuter dans la même super application, qu'elle s'exécute sur Android, iOS ou un autre système d'exploitation. Cependant, toutes les mini-applications ne peuvent pas s'exécuter dans toutes les super-applications. Nous reviendrons sur ce point ultérieurement.

Discovery

Les mini-applications sont souvent découvertes ad hoc via des codes-barres 2D associés à la marque, ce qui permet de résoudre un défi important entre l'activité hors connexion et l'activité en ligne (par exemple, passer d'un menu de restaurant physique à une mini-application de paiement, ou d'un trottinette électrique 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 lancé directement. Les autres super applications ne sont généralement pas en mesure de reconnaître le code-barres.

Code-barres 2D de la marque WeChat.
Scannez ce code-barres 2D avec l'application WeChat pour lancer une mini-application de démonstration.

Les mini-applications peuvent également être découvertes via une recherche standard dans l'application super, être partagées dans des messages de chat ou faire partie d'un article d'actualité dans un flux d'actualités. Certaines super applications ont la notion de comptes validés pouvant contenir des mini-applications dans leur profil. Les mini-applications peuvent être mises en évidence lorsqu'elles sont physiquement proches (par exemple, la mini-application d'une entreprise devant laquelle se tient l'utilisateur) ou virtuellement (par exemple, lorsque l'utilisateur obtient un itinéraire sur une carte affichée dans la super-application). Les mini-applications fréquemment utilisées sont disponibles dans un panneau des applications qui, dans de nombreuses super applications, est accessible par un geste de balayage vers le bas ou via une section spéciale du menu des super applications.

L’expérience utilisateur

Toutes les super applications ont plus ou moins la même interface utilisateur pour les mini-applications. Une barre supérieure à thème avec le nom de la mini-application et, dans l'angle supérieur droit, un bouton de fermeture à l'extrême droite, précédé d'un menu d'actions qui donne accès à 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, l'envoi de commentaires et les paramètres. La capture d'écran ci-dessous montre une mini-application Shopping qui s'exécute dans le contexte de l'application Super Alipay, avec le menu d'actions ouvert.

Super application Alipay exécutant une mini-application Shopping avec la barre supérieure, le bouton du menu d'actions et le bouton "Fermer" mis en évidence. Le menu d'actions est ouvert.
Menu d'actions ouvert d'une mini-application Shopping exécutée dans la super-application Alipay.

Paradigmes de l'interface utilisateur

Il y a généralement une barre d'onglets inférieure 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'interface utilisateur courants, tels que les carrousels, les accordéons, les barres de progression, les icônes de chargement, les commutateurs, les cartes, etc. Cela permet également d'harmoniser l'expérience utilisateur entre les différentes mini-applications, ce qui est encouragé par les consignes de conception des mini-programmes de WeChat. Cette approche est semblable à ce qu'Apple incite avec ses consignes d'interface humaine d'Apple et à Google avec ses recommandations de conception pour Android.

Mini-application de démonstration Douyin présentant le composant de curseur Douyin (carrousel) avec des boutons d'activation pour avancer automatiquement, des indicateurs de points, etc.
Composant curseur (carrousel) de Douyin avec différentes options.

Active

Plutôt que d'être diffusées élément par élément en tant que ressources distinctes, les mini-applications sont diffusées comme des applications empaquetées chiffrées, c'est-à-dire sous forme d'archives contenant toutes les ressources dans un seul fichier. Contrairement aux applications Web standards, elles ne sont pas diffusées non plus depuis l'origine particulière du créateur de la mini-application, mais directement par le fournisseur de la super-application. Elles peuvent toujours accéder aux API à partir des serveurs du créateur de mini-applications, mais les ressources principales (communément appelées "interface système de l'application") doivent être diffusées par le fournisseur de super-applications. Les mini-applis doivent déclarer les origines pour lesquelles 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. Ainsi, 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), afin que la super-application sache rapidement si la version mise en cache localement est toujours à jour. L'URI de lancement contient également éventuellement la page souhaitée de la mini-application. Il est donc possible 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 indexées par le robot d'exploration du fournisseur de la super-application.

macOS Finder affichant un dossier contenant les fichiers ".wxapkg" de l'application WeChat mise en cache
Les mini-applis 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 la super-application, ce qui signifie que les utilisateurs les considèrent comme plus sécurisées que les applications Web. Ils doivent déclarer au préalable les autorisations potentiellement requises dans un fichier manifeste ou une mini-application de configuration, ce qui, pour certains fournisseurs, nécessite également des explications sur les raisons pour lesquelles chaque autorisation est nécessaire. Bien sûr, les mini-applications peuvent toujours mentir, mais elles auront du mal à justifier leur raison d'être, par exemple en tentant d'accéder aux capteurs de mouvement sans raison apparente à l'utilisateur. L'incitation à utiliser le lecteur d'empreinte digitale est nettement inférieure à celle du Web, car l'utilisateur est généralement déjà connecté à la super-application (voir Identité, paiement et graphe social).

Chaque fois qu'une mini-application effectue une opération nécessitant une autorisation spéciale, une invite s'affiche pour 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, qui 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 utiliser 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 permettant d'ouvrir les paramètres centraux d'autorisation des super-applications, ce qui correspond aux paramètres de site de Chrome. Les mini-applications doivent également déclarer au préalable les origines de tous les serveurs auxquels 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é".
La mini-application de démonstration Douyin demande l'autorisation de géolocalisation.

Accès à des fonctionnalités puissantes

La super-application d'hébergement permet d'accéder à des API puissantes via un pont JavaScript injecté dans la WebView proposée par la super-application (consultez la section Composants principaux et compatibilité). Ce pont JavaScript fournit des hooks aux API du système d'exploitation. Par exemple, une fonction JavaScript pour mini application telle que getConnectedWifi() (la capacité d'une mini-application à obtenir le nom du réseau Wi-Fi actif) est facilitée par l'API getConnectionInfo() d'Android ou l'API CNCopyCurrentNetworkInfo() iOS. Voici d'autres exemples d'API d'appareil puissantes exposées dans les super applications courantes : Bluetooth, NFC, iBeacon, GPS, presse-papiers du système, capteurs d'orientation, informations sur la batterie, accès à l'agenda, accès au répertoire téléphonique, contrôle de la luminosité de l'écran, accès au système de fichiers, matériel de vibration pour les commentaires physiques, accès à la caméra et au micro, enregistrement d'écran et création de captures d'écran, état du réseau, sockets UDP, lecture de codes-barres, informations sur la mémoire de l'appareil, etc.

Mini-application de démonstration WeChat avec un curseur qui contrôle la luminosité de l'écran de l'appareil déplacé au maximum.
La mini-application de démonstration WeChat règle la luminosité de l'écran de l'appareil au maximum.

Accès aux services cloud

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

Identité, paiement, graphe social

L'une des fonctionnalités très importantes des mini-applications est l'identité et les informations de graphe social partagées depuis la super-application. Les super applications comme Douyin ou WeChat ont commencé comme des sites de réseau social au sens le plus large, où les utilisateurs ont une identité (parfois validée par le gouvernement), un réseau d'amis ou de followers, ainsi que des données de paiement fréquemment stockées. Par exemple, une mini-application Shopping peut (voire même doit) traiter tous les paiements directement via les API de paiement de la super application et, avec le consentement 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 avoir à l'obliger à remplir des formulaires compliqués. Vous pouvez voir ci-dessous la mini-application Walmart exécutée dans WeChat, ouverte pour la toute première fois et m'accueillant avec un visage familier.

Mini-application Walmart affichant le visage et le nom de l'auteur dans l'onglet "Moi".
La mini-application Walmart propose 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 réussites, comme les records dans un jeu, et de défier leurs contacts en mettant à jour leur statut. La mini-application est alors accessible d'un simple geste, ce qui permet aux utilisateurs de se mesurer facilement à la concurrence. La mini-application élargit ainsi sa couverture.

Remerciements

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