Aller au contenu
RECDiagnosticSDK
02 / SCREEN MAP

Le trafic, dans son contexte.

Chaque visite d’un UIViewController qui lance des requêtes devient un chapitre. La chronologie de navigation est préservée, même quand un écran est visité deux fois.
  1. 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.
  2. 2Une requête prend l’écran courantQuand resume() est appelé, la requête est rattachée tout de suite à l’écran affiché.
  3. 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.
  1. HomeViewControllerviewWillAppear→ écran courant10:32:04
    GET/v1/accounts200124ms
    GET/v1/me20086ms
    GET/v1/notifications?unread=true200141ms
    HomeViewController3 requêtes · chapitre ouvert à 10:32:04
  2. SettingsViewControllerviewWillAppear→ écran courant10:32:06

    Aucune requête pendant cette visite : elle n’est pas dans la carte.

  3. TransferViewControllerviewWillAppear→ écran courant10:32:08
    GET/v1/beneficiaries20097ms
    POST/v1/transfers422302ms
    TransferViewController2 requêtes · chapitre ouvert à 10:32:08
  4. HomeViewControllerviewWillAppear→ écran courant10:32:15
    GET/v1/accounts200118ms
    HomeViewController · 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
  1. Visite d’écranscreens[0]

    HomeViewControllerenteredAt 10:32:04

    RequêtesnetworkInteractions

    GET/v1/accounts200124ms
    GET/v1/me20086ms
    GET/v1/notifications?unread=true200141ms
  2. Visite d’écranscreens[1]

    TransferViewControllerenteredAt 10:32:08

    RequêtesnetworkInteractions

    GET/v1/beneficiaries20097ms
    POST/v1/transfers422302ms
  3. Visite d’écranscreens[2]

    HomeViewControllerenteredAt 10:32:15

    RequêtesnetworkInteractions

    GET/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.