Le trafic, dans son contexte.
- 1Le SDK garde l’écran courantChaque fois qu’un view controller exécute viewDidLoad ou viewWillAppear, le SDK note le nom de sa classe. Il remplace le précédent.
- 2Une requête prend l’écran courantQuand resume() est appelé, la requête est rattachée tout de suite à l’écran affiché.
- 3Une visite devient un chapitreLa première requête d’une visite ouvre son chapitre, les suivantes s’y ajoutent. Retour sur un écran ? C’est une nouvelle visite, donc un nouveau chapitre.
- HomeViewControllerviewWillAppear→ écran courant10:32:04GET/v1/accounts200124msGET/v1/me20086msGET/v1/notifications?unread=true200141msHomeViewController3 requêtes · chapitre ouvert à 10:32:04
- SettingsViewControllerviewWillAppear→ écran courant10:32:06
Aucune requête pendant cette visite : elle n’est pas dans la carte.
- TransferViewControllerviewWillAppear→ écran courant10:32:08GET/v1/beneficiaries20097msPOST/v1/transfers422302msTransferViewController2 requêtes · chapitre ouvert à 10:32:08
- HomeViewControllerviewWillAppear→ écran courant10:32:15GET/v1/accounts200118msHomeViewController · deuxième visite1 requête · chapitre ouvert à 10:32:15
Ce qui est enregistré
Une session, ses visites, leurs requêtes.
Le fichier de session garde ces trois niveaux. Session History, Replay et Session Studio lisent la carte exactement telle qu’elle a été enregistrée.
Session
- sessionId
- 4f2a9c1e-…
- startedAt
- 10:32:04
- metadata.deviceModel
- iPhone16,1
- metadata.osVersion
- 18.2
- metadata.appVersion
- 3.4.0
Visite d’écran
screens[0]HomeViewControllerenteredAt 10:32:04
Requêtes
networkInteractionsGET/v1/accounts200124msGET/v1/me20086msGET/v1/notifications?unread=true200141msVisite d’écran
screens[1]TransferViewControllerenteredAt 10:32:08
Requêtes
networkInteractionsGET/v1/beneficiaries20097msPOST/v1/transfers422302msVisite d’écran
screens[2]HomeViewControllerenteredAt 10:32:15
Requêtes
networkInteractionsGET/v1/accounts200118ms
Ce que ça vous apporte
Chaque requête, dans son contexte.
Retracer le parcours
La QA et les développeurs voient les écrans parcourus avant le bug, dans l’ordre.
Rejouer dans l’ordre de navigation
Quand la même requête a été enregistrée sur deux visites, Replay sert la première, dans l’ordre de navigation.
Modifier la carte dans Session Studio
Renommez, dupliquez, réordonnez ou supprimez des écrans, puis exportez une session que Replay sait lire.
Précision
Quand la carte peut se tromper.
Fiable dans la plupart des parcours UIKit : push, pop, onglets, et requêtes lancées par l’écran lui-même. Les écrans système et ceux du SDK sont ignorés.
- Travail en arrière-planUn rafraîchissement de token, de l’analytics ou du polling est rangé sous l’écran affiché à ce moment-là.
- View controllers enfantsUn view controller intégré ou préchargé peut devenir l’écran courant.
- Fermeture d’une feuilleL’écran du dessous peut ne pas exécuter viewWillAppear : les requêtes restent sous la feuille fermée.
- SwiftUILa navigation SwiftUI n’est pas détectée. Les requêtes restent sous le dernier écran UIKit.
- Écrans sans requêteUne visite qui ne lance aucune requête n’est pas enregistrée : elle n’apparaît pas dans la carte.
- HorairesL’heure d’un chapitre est le départ de sa première requête. Le moment où l’utilisateur quitte un écran n’est pas enregistré.
- Avant le premier écranLes requêtes lancées avant qu’un écran soit connu vont dans un chapitre nommé Background.