Aller au contenu
useffect.sh
Planifier 30 min avec un senior
Tous les articles
La veille du collectif

Live Activities avec Expo : le contrat entre widget et backend

2 min de lectureReact Native · Expo

Le rendu du widget n’est qu’une partie de la fonctionnalité

Le guide Live Activities with Expo, End to End (nouvelle fenêtre) suit une activité de traitement de reçus, de son affichage sur l’écran verrouillé à ses mises à jour côté serveur. L’interface est écrite en TSX avec expo-widgets et les primitives SwiftUI d’Expo UI. Le backend reste chargé de traduire ses événements métier en état affichable.

Le token de mise à jour appartient à une activité, et non au téléphone dans son ensemble. Il peut tourner. Le démarrage distant utilise un autre type de token et demande iOS 17.2 ou plus. Le serveur doit donc associer les enregistrements à la bonne activité et au bon utilisateur, puis retirer les tokens invalidés.

Un état métier et une représentation compacte

Un suivi de traitement peut avoir des étapes simples : reçu, en cours, terminé ou échoué. L’interface affichée hors de l’app doit rester compréhensible à partir de cet état compact. Rejouer tout le modèle de données dans un widget compliquerait sa compatibilité et augmenterait les occasions de divergence.

La séparation permet aussi de définir les transitions finales. « Terminé » peut rester visible pour que l’utilisateur découvre le résultat ; fermer immédiatement l’activité supprimerait cette confirmation. Ce choix produit doit être explicite avant de choisir l’événement envoyé au système.

L’intégration demande un contrat précis avec APNs

Dans l’implémentation du guide, content-state contient le nom du widget et ses props sérialisées. Envoyer directement les champs métier au mauvais niveau peut être accepté par APNs sans produire la mise à jour attendue. Le topic et le type de push sont également spécifiques aux Live Activities.

Une intégration robuste peut être organisée autour d’un exemple de payload versionné, partagé entre le code mobile et le code serveur. Il donne une référence concrète lors d’une évolution du widget. La gestion des activités déjà démarrées, de la rotation des tokens et d’un retour au premier plan doit être pensée dès ce contrat : le seul succès d’un appel réseau ne prouve pas ce que l’utilisateur voit sur son écran verrouillé.

Un de ces sujets se pose dans votre app ? Un senior du collectif peut en parler avec vous.