For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal
Codex

Codex use case

Refatore telas em SwiftUI

Use o Codex para dividir uma tela grande em SwiftUI em pequenas subviews sem alterar o comportamento nem o layout.

Difficulty Avançado
Time horizon 1 h

Use o Codex e o plug-in Build iOS Apps para dividir uma view longa do SwiftUI em views dedicadas a cada seção, retirar os efeitos colaterais de body, estabilizar o estado e o uso de Observation e priorizar MV na refatoração, sem introduzir view models desnecessários.

Ideal para

  • Arquivos SwiftUI gigantes em que `body` mistura layout, ramificações, operações assíncronas e ações inline em uma única tela difícil de revisar
  • Recursos existentes do iOS que devem permanecer idênticos na aparência e no comportamento, enquanto sua implementação interna se torna mais fácil de manter
  • Telas com fragmentos computados de `some View`, view models opcionais ou mecanismos de propagação de estado que devem ser simplificados para usar entradas explícitas de subviews e callbacks

Contents

    ← Todos os casos de uso

    Refatore telas em SwiftUI

    Use o Codex para dividir uma tela grande em SwiftUI em pequenas subviews sem alterar o comportamento nem o layout.

    Use o Codex e o plug-in Build iOS Apps para dividir uma view longa do SwiftUI em views dedicadas a cada seção, retirar os efeitos colaterais de body, estabilizar o estado e o uso de Observation e priorizar MV na refatoração, sem introduzir view models desnecessários.

    Avançado
    1 h

    Use o Codex e o plug-in Build iOS Apps para dividir uma view longa do SwiftUI em views dedicadas a cada seção, retirar os efeitos colaterais de body, estabilizar o estado e o uso de Observation e priorizar MV na refatoração, sem introduzir view models desnecessários.

    Avançado
    1 h

    Ideal para

    • Arquivos SwiftUI gigantes em que `body` mistura layout, ramificações, operações assíncronas e ações inline em uma única tela difícil de revisar
    • Recursos existentes do iOS que devem permanecer idênticos na aparência e no comportamento, enquanto sua implementação interna se torna mais fácil de manter
    • Telas com fragmentos computados de `some View`, view models opcionais ou mecanismos de propagação de estado que devem ser simplificados para usar entradas explícitas de subviews e callbacks

    Habilidades e Plug-ins

    • Use a habilidade de refatoração de views do SwiftUI para extrair subviews dedicadas, preservar um fluxo de dados estável, simplificar o uso de Observation e manter o comportamento intacto enquanto o Codex edita telas grandes em SwiftUI.
    Skill Why use it
    Build iOS Apps Use a habilidade de refatoração de views do SwiftUI para extrair subviews dedicadas, preservar um fluxo de dados estável, simplificar o uso de Observation e manter o comportamento intacto enquanto o Codex edita telas grandes em SwiftUI.

    Prompt inicial

    Use o plug-in Build iOS Apps e a habilidade de refatoração de views do SwiftUI incluída nele para organizar [NameOfScreen.swift] sem alterar o que a tela faz nem sua aparência. Restrições: - Preserve o comportamento, o layout, a navegação e a lógica de negócios, a menos que você encontre um bug que precise ser apontado separadamente. - Use MV por padrão, não MVVM. Dê preferência a `@State`, `@Environment`, `@Query`, `.task`, `.task(id:)` e `onChange` antes de introduzir um novo view model e só mantenha um view model se este recurso realmente precisar de um. - Reorganize a view para facilitar a leitura, de cima para baixo, das propriedades armazenadas, do estado computado, de `init`, de `body`, das funções auxiliares de view e dos métodos auxiliares. - Extraia seções relevantes para tipos `View` dedicados, com um pequeno conjunto de entradas explícitas, propriedades `@Binding` e callbacks. Não substitua um único `body` gigantesco por um conjunto de grandes propriedades computadas do tipo `some View`. - Retire de `body` as ações de botão não triviais e os efeitos colaterais, colocando-os em métodos pequenos, e transfira a lógica de negócios real para serviços ou modelos. - Mantenha estável a árvore da view raiz. Evite ramificações `if/else` no nível superior que alternem entre telas completamente diferentes quando seções condicionais locais ou modificadores forem suficientes. - Ajuste a responsabilidade pelo estado no Observation durante a refatoração: use `@State` para modelos `@Observable` na raiz no iOS 17 ou posterior e evite view models opcionais ou com inicialização tardia, a menos que a UI realmente exija essa estrutura de estado. - Depois de cada extração, execute a menor verificação útil de build ou teste que comprove que a tela continua se comportando da mesma forma. Entregue: - a tela refatorada e todas as subviews extraídas - uma breve explicação da divisão entre as novas subviews e do fluxo de dados - todos os pontos em que você manteve intencionalmente um view model e o motivo - as verificações de validação executadas para comprovar que o comportamento permaneceu intacto
    Use o plug-in Build iOS Apps e a habilidade de refatoração de views do SwiftUI incluída nele para organizar [NameOfScreen.swift] sem alterar o que a tela faz nem sua aparência. Restrições: - Preserve o comportamento, o layout, a navegação e a lógica de negócios, a menos que você encontre um bug que precise ser apontado separadamente. - Use MV por padrão, não MVVM. Dê preferência a `@State`, `@Environment`, `@Query`, `.task`, `.task(id:)` e `onChange` antes de introduzir um novo view model e só mantenha um view model se este recurso realmente precisar de um. - Reorganize a view para facilitar a leitura, de cima para baixo, das propriedades armazenadas, do estado computado, de `init`, de `body`, das funções auxiliares de view e dos métodos auxiliares. - Extraia seções relevantes para tipos `View` dedicados, com um pequeno conjunto de entradas explícitas, propriedades `@Binding` e callbacks. Não substitua um único `body` gigantesco por um conjunto de grandes propriedades computadas do tipo `some View`. - Retire de `body` as ações de botão não triviais e os efeitos colaterais, colocando-os em métodos pequenos, e transfira a lógica de negócios real para serviços ou modelos. - Mantenha estável a árvore da view raiz. Evite ramificações `if/else` no nível superior que alternem entre telas completamente diferentes quando seções condicionais locais ou modificadores forem suficientes. - Ajuste a responsabilidade pelo estado no Observation durante a refatoração: use `@State` para modelos `@Observable` na raiz no iOS 17 ou posterior e evite view models opcionais ou com inicialização tardia, a menos que a UI realmente exija essa estrutura de estado. - Depois de cada extração, execute a menor verificação útil de build ou teste que comprove que a tela continua se comportando da mesma forma. Entregue: - a tela refatorada e todas as subviews extraídas - uma breve explicação da divisão entre as novas subviews e do fluxo de dados - todos os pontos em que você manteve intencionalmente um view model e o motivo - as verificações de validação executadas para comprovar que o comportamento permaneceu intacto

    Refatore uma tela sem alterar o que ela faz

    Este caso de uso se aplica quando um arquivo SwiftUI cresceu até virar uma tela gigantesca e qualquer pequena edição parece arriscada. O objetivo não é reformular o recurso nem inventar uma nova arquitetura. Peça ao Codex que preserve o comportamento e o layout e divida a tela em pequenas subviews com um fluxo de dados explícito, para facilitar a revisão da próxima alteração.

    Use o plug-in Build iOS Apps para esse tipo de organização. A habilidade de refatoração de views do SwiftUI incluída nele adota uma abordagem bem definida e útil: priorize MV em vez de MVVM, mantenha a lógica de negócios em serviços ou modelos, use primeiro o estado local da view e as dependências do ambiente e só mantenha um view model quando o recurso realmente precisar de um.

    O que pedir ao Codex

    Comece indicando um arquivo de tela específico e pedindo ao Codex que preserve o comportamento enquanto melhora a estrutura. Vale a pena incluir estas regras de refatoração diretamente no prompt:

    • Reorganize o arquivo para facilitar a leitura, de cima para baixo, das dependências do ambiente, das propriedades armazenadas, do estado computado que não representa views, de init, de body, das funções auxiliares de view e dos métodos auxiliares.
    • Extraia seções relevantes para tipos View dedicados, com um pequeno conjunto de entradas explícitas, propriedades @Binding e callbacks.
    • Use poucos auxiliares computados do tipo some View e mantenha-os pequenos. Não reconstrua uma tela gigantesca como uma longa lista de fragmentos de view privados e computados.
    • Retire de body as ações de botão não triviais e os efeitos colaterais e transfira a lógica de negócios real para serviços ou modelos.
    • Mantenha estável a árvore da view raiz. Prefira condicionais locais em seções ou modificadores a ramificações if/else no nível superior que substituem telas inteiras.
    • Ajuste a responsabilidade pelo estado no Observation à medida que avança. Para modelos raiz @Observable no iOS 17 ou posterior, a view responsável deve armazená-los em @State; use wrappers observáveis legados somente quando o destino de implantação exigir isso.

    Peça um ciclo curto de validação

    Refatorações que preservam o comportamento devem vir acompanhadas de comprovação. Peça ao Codex que execute a menor verificação possível de build, pré-visualização, teste ou simulador que exercite a tela após cada extração relevante. Depois, peça que resuma o que mudou na estrutura e o que foi mantido intencionalmente.

    Dicas práticas

    Primeiro divida; depois discuta a arquitetura

    Se uma tela estiver grande demais, peça ao Codex que extraia as views de cada seção antes de introduzir uma nova camada de abstração. Uma árvore de views mais curta e explícita muitas vezes elimina por completo a necessidade de adicionar um view model.

    Passe a menor interface possível para cada subview

    Prefira valores let, propriedades @Binding e callbacks com uma única finalidade em vez de passar o modelo completo da view pai para cada view filha. Isso facilita gerar uma pré-visualização de cada seção extraída e reduz o risco de voltar a acoplá-la acidentalmente à tela inteira.

    Peça ao Codex que destaque o que não foi alterado de propósito

    Para uma refatoração segura, é útil que o Codex liste explicitamente o que não foi alterado: regras de negócios, comportamento da navegação, persistência, semântica de analytics e layout visível para o usuário. Isso agiliza muito a revisão.

    Tech stack

    Need

    Arquitetura da UI

    Default options

    SwiftUI com uma arquitetura que prioriza MV, distribuída entre @State, @Environment e pequenos tipos View dedicados

    Why it's needed

    Telas grandes geralmente ficam mais fáceis de manter quando o Codex simplifica a árvore de views e o fluxo de estado antes de introduzir outra camada de view model.

    Need

    Fluxo de refatoração

    Default options

    Plug-in Build iOS Apps

    Why it's needed

    A habilidade de refatoração de views do SwiftUI incluída no plug-in fornece ao Codex regras claras para extração, uso de Observation e organização dos efeitos colaterais, preservando o comportamento.

    Need

    Validação

    Default options

    xcodebuild, pré-visualizações e verificações específicas da UI

    Why it's needed

    Pequenas verificações de build ou simulador após cada extração facilitam confiar em uma refatoração que preserva o comportamento, em comparação com uma reescrita de uma só vez.

    Need Default options Why it's needed
    Arquitetura da UI SwiftUI com uma arquitetura que prioriza MV, distribuída entre @State , @Environment e pequenos tipos View dedicados Telas grandes geralmente ficam mais fáceis de manter quando o Codex simplifica a árvore de views e o fluxo de estado antes de introduzir outra camada de view model.
    Fluxo de refatoração Plug-in Build iOS Apps A habilidade de refatoração de views do SwiftUI incluída no plug-in fornece ao Codex regras claras para extração, uso de Observation e organização dos efeitos colaterais, preservando o comportamento.
    Validação xcodebuild , pré-visualizações e verificações específicas da UI Pequenas verificações de build ou simulador após cada extração facilitam confiar em uma refatoração que preserva o comportamento, em comparação com uma reescrita de uma só vez.

    Casos de uso relacionados