Live Activities avec Expo : le contrat entre widget et backend
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.
Continuer la lecture
React Native · Expo
React Native 0.88 : migration iOS, bundling et gestes natifs
SceneDelegate et events RN, Noxcturnal, écrans pliables, Gesture Handler et tests : les changements à évaluer dans une app mobile.
React Native · Expo
Expo SDK 58 est disponible, React Native s’étend aux fenêtres spatiales
Modules natifs, Router et builds Android dans le SDK 58 ; un seul arbre React pour plusieurs panneaux Quest.
React Native · Expo
TeamReach : ce que douze OTA ont corrigé après une bascule
Un retour de production sur les données héritées, puis les nouvelles possibilités de navigation native en alpha.