🚀 SDUI est une approche dans laquelle le serveur donne au client une description de l'interface (généralement JSON), et le client la dessine. Nous modifions l'interface utilisateur, nous modifions les données, pas l'assemblage de l'application. Moins de versions, plus de flexibilité. ✨
📦 Définition : quelle est l'essence de SDUI
Server-Driven UI - c'est quand le serveur gère la structure et le comportement de l'interface utilisateur: envoie au client le schéma de l'écran (composants, leurs propriétés, actions). Le client sait dessiner des blocs de base et les associer à des événements, mais la logique de mise en page et la variabilité sont hébergées sur le serveur.
{
"screen": {
"title": "Product of the day",
"blocks": [
{ "type": "image", "src": "https://cdn.example.com/promo.png", "ratio": "1:1", "alt": "Promo" },
{ "type": "text", "style": "h2", "value": "Discount -30%" },
{ "type": "button", "style": "primary", "text": "Buy", "action": { "type": "POST", "url": "/buy?id=42" } }
]
}
}Le client n'a pas eu à changer le code pour dessiner un nouvel écran, il a simplement dessiné le schéma envoyé.

🔍 Comment ça marche étape par étape
Le client demande la configuration de l'écran au serveur.
Le serveur renvoie JSON/DSL avec le schéma de l'interface utilisateur et les actions.
Le client rend l'interface utilisateur à partir du schéma et signe les événements.
Logique métier (A/B, fonctionnalités, conditions d'affichage) — sur le serveur.
Ceci est particulièrement pratique pour les applications mobiles où les versions sont modérées.
💡 En quoi le SDUI est-il utile pour un frontender
Moins de sorties: nous modifions l'interface utilisateur sur le serveur — le client récupère immédiatement les modifications.
Expérience unifiée sur toutes les plateformes: les clients Web et mobiles rendent un schéma.
Expériences rapides: Tests A/B et indicateurs de fonctionnalité — sans recompilation du client.
Approche centrée sur le contenu et la configuration: le système de conception peut être « tiré » à travers le schéma.
Expérience sans version : l'équipe produit change le texte du bouton « Acheter » → « Ajouter au panier » dans la réponse du serveur et regarde la conversion le même jour.
📌 Exemple d'API réaliste
Le serveur peut donner non seulement une liste de blocs, mais aussi conditions, liaisons de données et événements :
{
"screen": {
"title": "Catalog",
"blocks": [
{ "type": "search", "placeholder": "Find product..." },
{ "type": "list", "items": "{{products}}",
"item": {
"type": "card",
"image": "{{item.image}}",
"title": "{{item.title}}",
"price": "{{item.price}}",
"cta": { "type": "button", "text": "Add", "action": { "type": "POST", "url": "/cart/add", "body": {"id": "{{item.id}}"} } }
}
}
],
"data": { "products": "/api/products?query={{query}}" },
"experiments": { "cta_text": ["Buy", "Add", "Add to cart"] }
}
}Les modèles {{placeholders}} sont substitués par le client à partir des données demandées via les liens.
✅ Avantages
Réduction du délai de mise sur le marché pour les modifications de l'interface utilisateur.
Centralisation des règles d'affichage et des variations de l'interface.
Système de conception unifié grâce à l'abstraction des composants.
⚠️ Inconvénients
Le débogage est plus compliqué : des bogues sont possibles à la fois dans le schéma et dans le client.
Nécessite une discipline de contrôle de version du schéma.
Restrictions sur les interactions « riches » sur le client.
🔧 Où le SDUI est particulièrement approprié
Applications mobiles avec une longue modération des versions.
Projets avec promotions/redesigns fréquents et tests A/B.
Produits multiplateformes (Web + iOS + Android).
🧭 Conclusion
L'interface utilisateur pilotée par serveur accélère les expériences produit et réduit le nombre de versions client. Il fonctionne bien là où l'interface utilisateur change fréquemment et où vous devez faire défiler rapidement les variations sans réorganiser les applications. Il est important de réfléchir au contrôle de version des schémas et aux limites de responsabilité entre le client et le serveur.
📚 Vous voulez approfondir le sujet ?
Dans l'application Code vous trouverez des leçons détaillées sur différents sujets, des exercices pas à pas, des analyses d'erreurs et des exercices pratiques directement sur votre téléphone ou votre navigateur.
Et si vous voulez être au courant des nouveautés, des nouvelles fonctionnalités et des contenus utiles, abonnez-vous à notre Chaîne Telegram. C'est confortable, professionnel et avec amour pour le code ❤️
