For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal
Theme
Codex

Codex use case

Refactoriza pantallas de SwiftUI

Usa Codex para dividir una pantalla de SwiftUI demasiado grande en subvistas pequeñas sin cambiar su comportamiento ni su diseño.

Difficulty Advanced
Time horizon 1h

Usa Codex y el complemento Build iOS Apps para dividir una vista extensa de SwiftUI en subvistas, una por sección. Saca los efectos secundarios de body, estabiliza la gestión del estado y el uso de Observation, y prioriza MV para evitar modelos de vista innecesarios.

Best for

  • Archivos de SwiftUI muy grandes en los que resulta difícil revisar una pantalla porque `body` combina diseño, lógica condicional, tareas asíncronas y acciones definidas en línea
  • Funciones existentes de iOS cuyo código debe ser más fácil de mantener sin que cambien su apariencia ni su comportamiento
  • Pantallas con propiedades calculadas que devuelven `some View`, modelos de vista opcionales o código de gestión del estado que conviene simplificar con entradas explícitas y callbacks para las subvistas

Contents

    ← All use cases

    Refactoriza pantallas de SwiftUI

    Usa Codex para dividir una pantalla de SwiftUI demasiado grande en subvistas pequeñas sin cambiar su comportamiento ni su diseño.

    Usa Codex y el complemento Build iOS Apps para dividir una vista extensa de SwiftUI en subvistas, una por sección. Saca los efectos secundarios de body, estabiliza la gestión del estado y el uso de Observation, y prioriza MV para evitar modelos de vista innecesarios.

    Advanced
    1h

    Usa Codex y el complemento Build iOS Apps para dividir una vista extensa de SwiftUI en subvistas, una por sección. Saca los efectos secundarios de body, estabiliza la gestión del estado y el uso de Observation, y prioriza MV para evitar modelos de vista innecesarios.

    Advanced
    1h

    Best for

    • Archivos de SwiftUI muy grandes en los que resulta difícil revisar una pantalla porque `body` combina diseño, lógica condicional, tareas asíncronas y acciones definidas en línea
    • Funciones existentes de iOS cuyo código debe ser más fácil de mantener sin que cambien su apariencia ni su comportamiento
    • Pantallas con propiedades calculadas que devuelven `some View`, modelos de vista opcionales o código de gestión del estado que conviene simplificar con entradas explícitas y callbacks para las subvistas

    Skills & Plugins

    • Usa la habilidad de refactorización de vistas de SwiftUI para extraer subvistas con funciones específicas, mantener estable el flujo de datos, simplificar el uso de Observation y conservar el comportamiento de las pantallas grandes de SwiftUI mientras Codex las edita.
    Skill Why use it
    Build iOS Apps Usa la habilidad de refactorización de vistas de SwiftUI para extraer subvistas con funciones específicas, mantener estable el flujo de datos, simplificar el uso de Observation y conservar el comportamiento de las pantallas grandes de SwiftUI mientras Codex las edita.

    Starter prompt

    Usa el complemento Build iOS Apps y su habilidad de refactorización de vistas de SwiftUI para simplificar el código de [NameOfScreen.swift] sin cambiar lo que hace la pantalla ni cómo se ve. Restricciones: - Conserva el comportamiento, el diseño, la navegación y la lógica de negocio, salvo que encuentres un error que debas señalar por separado. - Usa MV como opción predeterminada en lugar de MVVM. Da preferencia a `@State`, `@Environment`, `@Query`, `.task`, `.task(id:)` y `onChange` antes de introducir un modelo de vista. Conserva un modelo de vista solo si la función lo necesita claramente. - Organiza la vista para que sea fácil leerla de arriba abajo. Coloca primero las propiedades almacenadas y luego, en este orden, el estado calculado, `init`, `body`, los elementos auxiliares de la vista y los métodos auxiliares. - Extrae las secciones que tengan una función clara y crea un tipo `View` para cada una, con entradas pequeñas y explícitas, enlaces `@Binding` y callbacks. Evita sustituir un `body` enorme por muchas propiedades calculadas extensas de tipo `some View`. - Saca de `body` los efectos secundarios y las acciones de botones que tengan cierta complejidad, y llévalos a métodos pequeños. Mueve la lógica de negocio propiamente dicha a servicios o modelos. - Mantén estable el árbol de la vista raíz. Evita las ramas `if/else` de nivel superior que alternan entre pantallas completamente distintas cuando basta con aplicar condiciones a secciones específicas o usar modificadores. - Al refactorizar, corrige qué vista se encarga de cada modelo de Observation. Usa `@State` para los modelos raíz `@Observable` en iOS 17 o posterior y evita los modelos de vista opcionales o de inicialización diferida, salvo que la interfaz realmente necesite representar el estado de esa manera. - Después de extraer cada subvista, ejecuta la compilación o la prueba de menor alcance que permita comprobar que la pantalla sigue comportándose igual. Entrega: - la pantalla refactorizada y las subvistas que hayas extraído - una breve explicación de qué abarca cada nueva subvista y cómo fluyen los datos - los lugares donde decidiste conservar un modelo de vista y el motivo de cada decisión - las comprobaciones que ejecutaste para verificar que se mantuvo el comportamiento
    Usa el complemento Build iOS Apps y su habilidad de refactorización de vistas de SwiftUI para simplificar el código de [NameOfScreen.swift] sin cambiar lo que hace la pantalla ni cómo se ve. Restricciones: - Conserva el comportamiento, el diseño, la navegación y la lógica de negocio, salvo que encuentres un error que debas señalar por separado. - Usa MV como opción predeterminada en lugar de MVVM. Da preferencia a `@State`, `@Environment`, `@Query`, `.task`, `.task(id:)` y `onChange` antes de introducir un modelo de vista. Conserva un modelo de vista solo si la función lo necesita claramente. - Organiza la vista para que sea fácil leerla de arriba abajo. Coloca primero las propiedades almacenadas y luego, en este orden, el estado calculado, `init`, `body`, los elementos auxiliares de la vista y los métodos auxiliares. - Extrae las secciones que tengan una función clara y crea un tipo `View` para cada una, con entradas pequeñas y explícitas, enlaces `@Binding` y callbacks. Evita sustituir un `body` enorme por muchas propiedades calculadas extensas de tipo `some View`. - Saca de `body` los efectos secundarios y las acciones de botones que tengan cierta complejidad, y llévalos a métodos pequeños. Mueve la lógica de negocio propiamente dicha a servicios o modelos. - Mantén estable el árbol de la vista raíz. Evita las ramas `if/else` de nivel superior que alternan entre pantallas completamente distintas cuando basta con aplicar condiciones a secciones específicas o usar modificadores. - Al refactorizar, corrige qué vista se encarga de cada modelo de Observation. Usa `@State` para los modelos raíz `@Observable` en iOS 17 o posterior y evita los modelos de vista opcionales o de inicialización diferida, salvo que la interfaz realmente necesite representar el estado de esa manera. - Después de extraer cada subvista, ejecuta la compilación o la prueba de menor alcance que permita comprobar que la pantalla sigue comportándose igual. Entrega: - la pantalla refactorizada y las subvistas que hayas extraído - una breve explicación de qué abarca cada nueva subvista y cómo fluyen los datos - los lugares donde decidiste conservar un modelo de vista y el motivo de cada decisión - las comprobaciones que ejecutaste para verificar que se mantuvo el comportamiento

    Refactoriza una pantalla sin cambiar su comportamiento

    Este caso de uso te sirve cuando el código de una pantalla de SwiftUI ha crecido tanto dentro de un solo archivo que hasta el cambio más pequeño parece arriesgado. El objetivo no es rediseñar la funcionalidad ni inventar una arquitectura nueva. Pídele a Codex que conserve el comportamiento y la disposición de los elementos, y que luego divida la pantalla en subvistas pequeñas con un flujo de datos explícito. Así será más fácil revisar el siguiente cambio.

    Usa el complemento Build iOS Apps para este tipo de refactorización. Su habilidad para refactorizar vistas de SwiftUI sigue criterios concretos: usa MV de forma predeterminada en lugar de MVVM, mantén la lógica de negocio en servicios o modelos, recurre primero al estado local de la vista y a las dependencias del entorno, y conserva un modelo de vista solo cuando la funcionalidad lo necesite claramente.

    Qué pedirle a Codex

    Empieza por indicar el archivo de una pantalla específica y pídele a Codex que mejore su estructura sin cambiar su comportamiento. Conviene incluir estas reglas de refactorización directamente en el prompt:

    • Reordena el archivo para que sea fácil identificar, de arriba abajo, las dependencias del entorno, las propiedades almacenadas, el estado calculado que no representa vistas, init, body, los auxiliares de vista y los métodos auxiliares.
    • Extrae las secciones que tengan sentido por sí solas y crea un tipo View para cada una, con entradas pequeñas y explícitas, enlaces @Binding y callbacks.
    • Usa pocas propiedades calculadas de tipo some View como auxiliares y mantenlas breves. Evita convertir una pantalla enorme en una larga lista de propiedades calculadas privadas que devuelven fragmentos de vista.
    • Saca de body las acciones de botón que no sean triviales y los efectos secundarios. Lleva la lógica de negocio propiamente dicha a servicios o modelos.
    • Mantén estable el árbol de la vista raíz. Prefiere los condicionales dentro de secciones o modificadores a las ramas if/else de nivel superior que reemplazan pantallas enteras.
    • A medida que avances, corrige qué vista se encarga de cada modelo de Observation. En iOS 17 o posterior, la vista propietaria de un modelo raíz @Observable debe almacenarlo en @State. Usa los wrappers anteriores para modelos observables solo si lo exige la versión mínima de iOS que admite tu app.

    Pide una validación breve en cada paso

    Comprueba que la refactorización conserve el comportamiento. Pídele a Codex que, cada vez que extraiga una sección relevante, ejecute la comprobación más pequeña que permita verificar la pantalla, ya sea con una compilación, una vista previa, una prueba o el simulador. Luego pídele que resuma qué cambió en la estructura y qué conservó de forma intencional.

    Consejos prácticos

    Divide primero la pantalla y deja la discusión sobre arquitectura para después

    Si una pantalla es demasiado grande, pídele a Codex que extraiga las vistas de cada sección antes de introducir otra capa de abstracción. Con un árbol de vistas más corto y explícito, muchas veces deja de hacer falta un modelo de vista.

    Pasa a cada subvista la interfaz más pequeña posible

    Prefiere valores let, enlaces @Binding y callbacks con un solo propósito en lugar de pasar el modelo completo de la vista padre a cada vista hija. Así es más fácil obtener una vista previa de cada sección extraída y menos probable que, por accidente, vuelvas a acoplarla a toda la pantalla.

    Pídele a Codex que indique qué decidió conservar

    Para refactorizar con seguridad, conviene que Codex enumere explícitamente lo que dejó intacto: las reglas de negocio, el comportamiento de la navegación, la persistencia, el significado de los datos de analítica y la disposición de los elementos que ve el usuario. Esto agiliza mucho la revisión.

    Tech stack

    Need

    Arquitectura de la interfaz

    Default options

    SwiftUI con un enfoque que prioriza MV y distribuye las responsabilidades entre @State, @Environment y tipos View pequeños con funciones específicas

    Why it's needed

    Las pantallas grandes suelen ser más fáciles de mantener cuando Codex simplifica el árbol de vistas y el flujo del estado antes de introducir otra capa de modelos de vista.

    Need

    Flujo de trabajo de refactorización

    Why it's needed

    La habilidad de refactorización de vistas de SwiftUI del complemento le da a Codex reglas claras para extraer subvistas, usar Observation y reorganizar el código que produce efectos secundarios sin alterar el comportamiento.

    Need

    Validación

    Default options

    xcodebuild, vistas previas y comprobaciones específicas de la interfaz

    Why it's needed

    Si haces una comprobación breve de compilación o una prueba en el simulador después de extraer cada subvista, puedes tener más confianza en que se conserva el comportamiento que si reescribes todo de una vez.

    Need Default options Why it's needed
    Arquitectura de la interfaz SwiftUI con un enfoque que prioriza MV y distribuye las responsabilidades entre @State , @Environment y tipos View pequeños con funciones específicas Las pantallas grandes suelen ser más fáciles de mantener cuando Codex simplifica el árbol de vistas y el flujo del estado antes de introducir otra capa de modelos de vista.
    Flujo de trabajo de refactorización Complemento Build iOS Apps La habilidad de refactorización de vistas de SwiftUI del complemento le da a Codex reglas claras para extraer subvistas, usar Observation y reorganizar el código que produce efectos secundarios sin alterar el comportamiento.
    Validación xcodebuild , vistas previas y comprobaciones específicas de la interfaz Si haces una comprobación breve de compilación o una prueba en el simulador después de extraer cada subvista, puedes tener más confianza en que se conserva el comportamiento que si reescribes todo de una vez.

    Related use cases