J'ai laissé GPT 5.1 Pro réfléchir pendant 13 minutes pour convertir ce texte en un résumé ultra-concentré de mots clés pour votre fichier AGENTS.md. Le voici : ## Règles de nettoyage Swift/SwiftUI générées par l'IA Lors de la modification ou de la génération de code Swift/SwiftUI pour ce dépôt, normalisez rigoureusement le code en utilisant cette liste de contrôle avant de renvoyer les modifications : - API modernes : remplacer `NavigationView` par `NavigationStack` ; `navigationBarTitle`/`navigationBarItems` par `navigationTitle`/`toolbar` ; privilégier les nouveaux modificateurs aux modificateurs obsolètes ; privilégier la concurrence Swift (`async`/`await`, `Task`) aux API de type rappel lorsque cela est possible. - Exactitude de l'état : utilisez `@State` pour l'état de valeur locale, `@Binding` pour l'état appartenant au parent, `@StateObject` pour les types de référence de longue durée créés dans la vue, `@ObservedObject` pour les types de référence injectés ; ne créez jamais d'instances `ObservableObject` à l'intérieur de `body`. - Options et erreurs : supprimer `!` et `try!` sauf dans les situations véritablement irrécupérables ; utiliser `if let` / `guard let` / `??` et `do/try/catch` ; signaler les échecs via des chemins d'erreur explicites (types de résultats, vues d'erreur, alertes) au lieu d'un échec silencieux. - Collections et identité : dans `List`/`ForEach`, privilégiez les ID stables (`id: \.id` ou propriétés `id` dédiées) plutôt que `0..<count` et `\.self` sur les types de référence ; évitez de recréer des collections dans `body` lorsqu’une propriété stockée suffit. - Structure de la vue : aplatir les `VStack`/`HStack`/`ZStack` trop imbriqués ; remplacer la mise en page construite à partir de nombreux `Spacer()` par un alignement, un remplissage et des conteneurs appropriés ; extraire les sous-arbres répétés dans des vues réutilisables plutôt que de dupliquer la mise en page. - Effacement de type : évitez `AnyView` et autres effacements de type inutiles, sauf si vous avez réellement besoin de types de vues hétérogènes ; préférez les types de vues concrets et la composition. - Concurrence et threading : marquer les points d’entrée affectant l’interface utilisateur avec `@MainActor` ; éviter de bloquer le thread principal ; déplacer les tâches coûteuses hors de l’acteur principal à l’aide de tâches asynchrones ; s’assurer que les gestionnaires d’achèvement et les tâches ne capturent pas inutilement un `self` fort. - Effets secondaires : supprimez les appels réseau, les E/S disque, les minuteurs et autres effets secondaires de `body` ; déplacez-les dans les modèles de vue, les services ou les tâches explicites déclenchées par les modificateurs de cycle de vie (`task`, `onAppear`, etc.). - Pièges en matière de performances : évitez de créer directement dans `body` des objets `DateFormatter`, `NumberFormatter`, des valeurs aléatoires et des calculs lourds ; mettez en cache dans des propriétés statiques ou des fonctions d’assistance dédiées ; évitez la copie inutile de grandes structures de données. - Style et hygiène : supprimez les importations, variables et paramètres inutilisés ; utilisez un contrôle d’accès explicite ; respectez les conventions de nommage de Swift ; exécutez le code via `swift-format`/les attentes de formatage d’Xcode afin que le code généré s’intègre au style existant.
Chargement du thread
Récupération des tweets originaux depuis X pour offrir une lecture épurée.
Cela ne prend généralement que quelques secondes.