For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale
Codex

Codex use case

Refactoriser des écrans SwiftUI

Utilisez Codex pour découper un écran SwiftUI surdimensionné en petites sous-vues sans en modifier le comportement ni la mise en page.

Difficulty Avancé
Time horizon 1 h

Utilisez Codex et le plugin Build iOS Apps pour découper une longue vue SwiftUI en vues dédiées aux différentes sections, sortir les effets de bord de body, stabiliser la gestion de l’état et l’utilisation d’Observation, et privilégier MV pour la refactorisation plutôt que d’introduire des modèles de vue superflus.

Idéal pour

  • Fichiers SwiftUI gigantesques où `body` mêle mise en page, embranchements, opérations asynchrones et actions définies en ligne dans un seul écran difficile à réviser
  • Fonctionnalités iOS existantes dont l’apparence et le comportement doivent rester identiques tandis que leur fonctionnement interne devient plus facile à maintenir
  • Écrans comportant des fragments `some View` calculés, des modèles de vue facultatifs ou une transmission complexe de l’état, à simplifier au moyen d’entrées de sous-vue explicites et de callbacks

Contents

    ← Tous les cas d’utilisation

    Refactoriser des écrans SwiftUI

    Utilisez Codex pour découper un écran SwiftUI surdimensionné en petites sous-vues sans en modifier le comportement ni la mise en page.

    Utilisez Codex et le plugin Build iOS Apps pour découper une longue vue SwiftUI en vues dédiées aux différentes sections, sortir les effets de bord de body, stabiliser la gestion de l’état et l’utilisation d’Observation, et privilégier MV pour la refactorisation plutôt que d’introduire des modèles de vue superflus.

    Avancé
    1 h

    Utilisez Codex et le plugin Build iOS Apps pour découper une longue vue SwiftUI en vues dédiées aux différentes sections, sortir les effets de bord de body, stabiliser la gestion de l’état et l’utilisation d’Observation, et privilégier MV pour la refactorisation plutôt que d’introduire des modèles de vue superflus.

    Avancé
    1 h

    Idéal pour

    • Fichiers SwiftUI gigantesques où `body` mêle mise en page, embranchements, opérations asynchrones et actions définies en ligne dans un seul écran difficile à réviser
    • Fonctionnalités iOS existantes dont l’apparence et le comportement doivent rester identiques tandis que leur fonctionnement interne devient plus facile à maintenir
    • Écrans comportant des fragments `some View` calculés, des modèles de vue facultatifs ou une transmission complexe de l’état, à simplifier au moyen d’entrées de sous-vue explicites et de callbacks

    Skills et plugins

    • Utilisez le skill de refactorisation de vues SwiftUI pour extraire des sous-vues dédiées, préserver la stabilité du flux de données, simplifier l’utilisation d’Observation et conserver le comportement lorsque Codex modifie de grands écrans SwiftUI.
    Skill Why use it
    Build iOS Apps Utilisez le skill de refactorisation de vues SwiftUI pour extraire des sous-vues dédiées, préserver la stabilité du flux de données, simplifier l’utilisation d’Observation et conserver le comportement lorsque Codex modifie de grands écrans SwiftUI.

    Prompt de démarrage

    Utilisez le plugin Build iOS Apps et son skill de refactorisation de vues SwiftUI pour nettoyer [NameOfScreen.swift] sans modifier le fonctionnement ni l’apparence de l’écran. Contraintes : - Préservez le comportement, la mise en page, la navigation et la logique métier, sauf si vous détectez un bug ; signalez-le alors séparément. - Par défaut, adoptez MV plutôt que MVVM. Privilégiez `@State`, `@Environment`, `@Query`, `.task`, `.task(id:)` et `onChange` avant d’introduire un nouveau modèle de vue, et ne conservez un modèle de vue que si cette fonctionnalité en a clairement besoin. - Réorganisez la vue afin que les propriétés stockées, l’état calculé, `init`, `body`, les propriétés de vue auxiliaires et les méthodes auxiliaires soient faciles à parcourir de haut en bas. - Extrayez les sections pertinentes dans des types `View` dédiés avec quelques entrées explicites, des propriétés `@Binding` et des callbacks. Ne remplacez pas un unique `body` gigantesque par une multitude de grandes propriétés calculées de type `some View`. - Déplacez les actions de bouton non triviales et les effets de bord hors de `body`, dans de petites méthodes, et transférez la véritable logique métier vers des services ou des modèles. - Conservez une arborescence stable pour la vue racine. Évitez les branches `if/else` de premier niveau qui remplacent l’écran entier lorsque des sections conditionnelles ou des modificateurs ciblés suffisent. - Corrigez la gestion du cycle de vie avec Observation pendant la refactorisation : utilisez `@State` pour les modèles racines `@Observable` sous iOS 17+, et évitez les modèles de vue facultatifs ou initialisés tardivement, sauf si l’interface utilisateur a réellement besoin de cette structure d’état. - Après chaque extraction, exécutez le contrôle de build ou de test minimal et pertinent permettant de vérifier que l’écran se comporte toujours de la même manière. Fournissez : - l’écran refactorisé et les sous-vues extraites - une brève explication du nouveau découpage en sous-vues et du flux de données - les cas où vous avez volontairement conservé un modèle de vue et leur justification - les vérifications de validation que vous avez exécutées pour prouver que le comportement est resté intact
    Utilisez le plugin Build iOS Apps et son skill de refactorisation de vues SwiftUI pour nettoyer [NameOfScreen.swift] sans modifier le fonctionnement ni l’apparence de l’écran. Contraintes : - Préservez le comportement, la mise en page, la navigation et la logique métier, sauf si vous détectez un bug ; signalez-le alors séparément. - Par défaut, adoptez MV plutôt que MVVM. Privilégiez `@State`, `@Environment`, `@Query`, `.task`, `.task(id:)` et `onChange` avant d’introduire un nouveau modèle de vue, et ne conservez un modèle de vue que si cette fonctionnalité en a clairement besoin. - Réorganisez la vue afin que les propriétés stockées, l’état calculé, `init`, `body`, les propriétés de vue auxiliaires et les méthodes auxiliaires soient faciles à parcourir de haut en bas. - Extrayez les sections pertinentes dans des types `View` dédiés avec quelques entrées explicites, des propriétés `@Binding` et des callbacks. Ne remplacez pas un unique `body` gigantesque par une multitude de grandes propriétés calculées de type `some View`. - Déplacez les actions de bouton non triviales et les effets de bord hors de `body`, dans de petites méthodes, et transférez la véritable logique métier vers des services ou des modèles. - Conservez une arborescence stable pour la vue racine. Évitez les branches `if/else` de premier niveau qui remplacent l’écran entier lorsque des sections conditionnelles ou des modificateurs ciblés suffisent. - Corrigez la gestion du cycle de vie avec Observation pendant la refactorisation : utilisez `@State` pour les modèles racines `@Observable` sous iOS 17+, et évitez les modèles de vue facultatifs ou initialisés tardivement, sauf si l’interface utilisateur a réellement besoin de cette structure d’état. - Après chaque extraction, exécutez le contrôle de build ou de test minimal et pertinent permettant de vérifier que l’écran se comporte toujours de la même manière. Fournissez : - l’écran refactorisé et les sous-vues extraites - une brève explication du nouveau découpage en sous-vues et du flux de données - les cas où vous avez volontairement conservé un modèle de vue et leur justification - les vérifications de validation que vous avez exécutées pour prouver que le comportement est resté intact

    Refactoriser un écran sans modifier son comportement

    Ce cas d’usage s’applique lorsqu’un fichier SwiftUI a fini par contenir un écran gigantesque et que chaque petite modification paraît risquée. L’objectif n’est ni de repenser la fonctionnalité ni d’inventer une nouvelle architecture. Demandez à Codex de préserver le comportement et la mise en page, puis de découper l’écran en petites sous-vues dont le flux de données est explicite afin de faciliter la révision de la prochaine modification.

    Utilisez le plugin Build iOS Apps pour ce type de nettoyage. Son skill de refactorisation de vues SwiftUI adopte des partis pris utiles : privilégier MV plutôt que MVVM, conserver la logique métier dans les services ou les modèles, commencer par utiliser l’état local des vues et les dépendances d’environnement, et ne garder un modèle de vue que si la fonctionnalité en a clairement besoin.

    Ce qu’il faut demander à Codex

    Commencez par indiquer précisément le nom d’un fichier d’écran et demandez à Codex d’en préserver le comportement tout en améliorant sa structure. Voici les règles de refactorisation à inclure directement dans votre prompt :

    • Réorganisez le fichier afin de pouvoir parcourir facilement, de haut en bas, les dépendances d’environnement, les propriétés stockées, les propriétés d’état calculées qui ne produisent pas de vue, init, body, les propriétés de vue auxiliaires et les méthodes auxiliaires.
    • Extrayez les sections pertinentes dans des types View dédiés avec quelques entrées explicites, des propriétés @Binding et des callbacks.
    • N’utilisez que rarement de petites propriétés auxiliaires calculées de type some View. Ne recréez pas un écran gigantesque sous la forme d’une longue liste de fragments de vue privés et calculés.
    • Déplacez hors de body les actions de bouton non triviales et les effets de bord, et transférez la véritable logique métier vers des services ou des modèles.
    • Conservez une arborescence stable pour la vue racine. Privilégiez des conditions ciblées dans les sections ou les modificateurs plutôt que des branches if/else de premier niveau qui remplacent l’intégralité de l’écran.
    • Corrigez au passage la gestion du cycle de vie avec Observation. Pour les modèles racines @Observable sous iOS 17+, la vue propriétaire doit les stocker dans @State ; n’utilisez les anciens wrappers observables que si votre cible de déploiement l’exige.

    Demandez une boucle de validation légère

    Une refactorisation qui préserve le comportement doit s’accompagner de vérifications. Demandez à Codex d’effectuer, après chaque extraction significative, la vérification la plus légère possible de l’écran au moyen d’une compilation, d’un aperçu, d’un test ou du simulateur, puis de résumer ce qui a changé dans la structure et ce qui est volontairement resté identique.

    Conseils pratiques

    Découpez d’abord, débattez ensuite de l’architecture

    Si un écran est trop grand, demandez à Codex d’en extraire les vues de section avant d’introduire une nouvelle couche d’abstraction. Une arborescence de vues plus courte et plus explicite suffit souvent à ne plus ressentir le besoin d’ajouter un modèle de vue.

    Transmettez à chaque sous-vue l’interface la plus réduite possible

    Privilégiez les valeurs déclarées avec let, les propriétés @Binding et les callbacks à responsabilité unique plutôt que de transmettre l’intégralité du modèle parent à chaque vue enfant. Vous pourrez ainsi prévisualiser plus facilement chaque section extraite, avec moins de risque de la recoupler accidentellement à l’ensemble de l’écran.

    Demandez à Codex de signaler les éléments volontairement inchangés

    Pour sécuriser une refactorisation, il est utile que Codex indique explicitement ce qu’il n’a pas modifié : les règles métier, le comportement de la navigation, la persistance, la sémantique des données d’analyse et la mise en page visible par l’utilisateur. Cela accélère nettement la révision.

    Tech stack

    Need

    Architecture de l’interface utilisateur

    Default options

    SwiftUI avec une architecture privilégiant MV, qui répartit les responsabilités entre @State, @Environment et de petits types View dédiés

    Why it's needed

    Les grands écrans deviennent généralement plus faciles à maintenir lorsque Codex simplifie l’arborescence des vues et le flux d’état avant d’ajouter une couche de modèle de vue.

    Need

    Workflow de refactorisation

    Default options

    Plugin Build iOS Apps

    Why it's needed

    Le skill de refactorisation de vues SwiftUI du plugin donne à Codex des règles claires sur l’extraction, la gestion avec Observation et l’élimination des effets de bord, tout en préservant le comportement.

    Need

    Validation

    Default options

    xcodebuild, les aperçus et des vérifications ciblées de l’interface utilisateur

    Why it's needed

    De brèves vérifications de compilation ou dans le simulateur après chaque extraction permettent d’accorder davantage de confiance à une refactorisation qui préserve le comportement qu’à une réécriture complète en une seule fois.

    Need Default options Why it's needed
    Architecture de l’interface utilisateur SwiftUI avec une architecture privilégiant MV, qui répartit les responsabilités entre @State , @Environment et de petits types View dédiés Les grands écrans deviennent généralement plus faciles à maintenir lorsque Codex simplifie l’arborescence des vues et le flux d’état avant d’ajouter une couche de modèle de vue.
    Workflow de refactorisation Plugin Build iOS Apps Le skill de refactorisation de vues SwiftUI du plugin donne à Codex des règles claires sur l’extraction, la gestion avec Observation et l’élimination des effets de bord, tout en préservant le comportement.
    Validation xcodebuild , les aperçus et des vérifications ciblées de l’interface utilisateur De brèves vérifications de compilation ou dans le simulateur après chaque extraction permettent d’accorder davantage de confiance à une refactorisation qui préserve le comportement qu’à une réécriture complète en une seule fois.

    Cas d’utilisation associés