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
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 Avanzado
Time horizon 1 h

Usa Codex y el complemento Build iOS Apps para dividir una vista larga de SwiftUI en vistas específicas para cada sección, sacar los efectos secundarios de body, estabilizar la gestión del estado y el uso de Observation, y priorizar MV en la refactorización en lugar de introducir modelos de vista innecesarios.

Ideal para

  • Archivos enormes de SwiftUI en los que `body` combina diseño, lógica condicional, trabajo asíncrono y acciones definidas en línea en una sola pantalla difícil de revisar
  • Funciones existentes de iOS que deben mantenerse idénticas en apariencia y comportamiento mientras su implementación interna se vuelve más fácil de mantener
  • Pantallas con fragmentos calculados de `some View`, modelos de vista opcionales o mecanismos de propagación del estado que conviene simplificar y convertir en entradas explícitas y callbacks para las subvistas

Contents

    ← Todos los casos de uso

    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 larga de SwiftUI en vistas específicas para cada sección, sacar los efectos secundarios de body, estabilizar la gestión del estado y el uso de Observation, y priorizar MV en la refactorización en lugar de introducir modelos de vista innecesarios.

    Avanzado
    1 h

    Usa Codex y el complemento Build iOS Apps para dividir una vista larga de SwiftUI en vistas específicas para cada sección, sacar los efectos secundarios de body, estabilizar la gestión del estado y el uso de Observation, y priorizar MV en la refactorización en lugar de introducir modelos de vista innecesarios.

    Avanzado
    1 h

    Ideal para

    • Archivos enormes de SwiftUI en los que `body` combina diseño, lógica condicional, trabajo asíncrono y acciones definidas en línea en una sola pantalla difícil de revisar
    • Funciones existentes de iOS que deben mantenerse idénticas en apariencia y comportamiento mientras su implementación interna se vuelve más fácil de mantener
    • Pantallas con fragmentos calculados de `some View`, modelos de vista opcionales o mecanismos de propagación del estado que conviene simplificar y convertir en entradas explícitas y callbacks para las subvistas

    Habilidades y complementos

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

    Prompt inicial

    Usa el complemento Build iOS Apps y su habilidad de refactorización de vistas de SwiftUI para reorganizar [NameOfScreen.swift] sin cambiar lo que hace la pantalla ni su apariencia. 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 de forma predeterminada, no MVVM. Prioriza `@State`, `@Environment`, `@Query`, `.task`, `.task(id:)` y `onChange` antes de introducir un nuevo modelo de vista, y consérvalo solo si está claro que esta función lo necesita. - Reordena la vista para que sea fácil recorrer de arriba abajo las propiedades almacenadas, el estado calculado, `init`, `body`, los elementos auxiliares de la vista y los métodos auxiliares. - Extrae las secciones relevantes en tipos `View` específicos, con entradas pequeñas y explícitas, propiedades `@Binding` y callbacks. No sustituyas un único `body` enorme por un montón de propiedades calculadas grandes de tipo `some View`. - Saca de `body` las acciones de botones no triviales y los efectos secundarios para llevarlos a métodos pequeños, y traslada la lógica de negocio real a servicios o modelos. - Mantén estable el árbol de vistas raíz. Evita las ramas `if/else` de nivel superior que sustituyen pantallas completamente distintas cuando bastan secciones condicionales o modificadores aplicados de forma puntual. - Durante la refactorización, corrige qué vista administra el estado de Observation: usa `@State` para almacenar los modelos raíz con `@Observable` en iOS 17 o posterior, y evita los modelos de vista opcionales o de inicialización diferida, salvo que la interfaz de usuario realmente necesite esa estructura de estado. - Después de cada extracción, ejecuta la comprobación mínima de compilación o prueba que resulte útil para demostrar que la pantalla conserva el mismo comportamiento. Entrega: - la pantalla refactorizada y todas las subvistas extraídas - una breve explicación de los nuevos límites de las subvistas y del flujo de datos - todos los lugares donde conservaste intencionalmente un modelo de vista y el motivo - las comprobaciones de validación que ejecutaste para demostrar que el comportamiento se mantuvo intacto
    Usa el complemento Build iOS Apps y su habilidad de refactorización de vistas de SwiftUI para reorganizar [NameOfScreen.swift] sin cambiar lo que hace la pantalla ni su apariencia. 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 de forma predeterminada, no MVVM. Prioriza `@State`, `@Environment`, `@Query`, `.task`, `.task(id:)` y `onChange` antes de introducir un nuevo modelo de vista, y consérvalo solo si está claro que esta función lo necesita. - Reordena la vista para que sea fácil recorrer de arriba abajo las propiedades almacenadas, el estado calculado, `init`, `body`, los elementos auxiliares de la vista y los métodos auxiliares. - Extrae las secciones relevantes en tipos `View` específicos, con entradas pequeñas y explícitas, propiedades `@Binding` y callbacks. No sustituyas un único `body` enorme por un montón de propiedades calculadas grandes de tipo `some View`. - Saca de `body` las acciones de botones no triviales y los efectos secundarios para llevarlos a métodos pequeños, y traslada la lógica de negocio real a servicios o modelos. - Mantén estable el árbol de vistas raíz. Evita las ramas `if/else` de nivel superior que sustituyen pantallas completamente distintas cuando bastan secciones condicionales o modificadores aplicados de forma puntual. - Durante la refactorización, corrige qué vista administra el estado de Observation: usa `@State` para almacenar los modelos raíz con `@Observable` en iOS 17 o posterior, y evita los modelos de vista opcionales o de inicialización diferida, salvo que la interfaz de usuario realmente necesite esa estructura de estado. - Después de cada extracción, ejecuta la comprobación mínima de compilación o prueba que resulte útil para demostrar que la pantalla conserva el mismo comportamiento. Entrega: - la pantalla refactorizada y todas las subvistas extraídas - una breve explicación de los nuevos límites de las subvistas y del flujo de datos - todos los lugares donde conservaste intencionalmente un modelo de vista y el motivo - las comprobaciones de validación que ejecutaste para demostrar que el comportamiento se mantuvo intacto

    Refactoriza una pantalla sin cambiar lo que hace

    Este caso de uso sirve para cuando un archivo de SwiftUI ha crecido hasta convertirse en una pantalla enorme y cada cambio, por pequeño que sea, parece riesgoso. El objetivo no es rediseñar la función ni inventar una arquitectura nueva. Pídele a Codex que conserve el comportamiento y el diseño, y que después divida la pantalla en subvistas pequeñas con un flujo de datos explícito para que el próximo cambio sea más fácil de revisar.

    Usa el complemento Build iOS Apps para este tipo de reorganización. Su habilidad de refactorización de vistas de SwiftUI define criterios claros y útiles: prioriza MV sobre MVVM, mantén la lógica de negocio en servicios o modelos, usa primero el estado local de la vista y las dependencias del entorno, y conserva un modelo de vista solo cuando la función realmente lo necesite.

    Qué pedirle a Codex que haga

    Empieza por indicar el nombre de un archivo de pantalla concreto y pedirle a Codex que conserve el comportamiento mientras mejora la estructura. Conviene incluir directamente en el prompt estas reglas de refactorización:

    • Reordena el archivo para que las dependencias del entorno, las propiedades almacenadas, el estado calculado no relacionado con vistas, init, body, los elementos auxiliares de la vista y los métodos auxiliares sean fáciles de recorrer de arriba abajo.
    • Extrae las secciones relevantes en tipos View específicos, con entradas pequeñas y explícitas, propiedades @Binding y callbacks.
    • Usa con moderación los elementos auxiliares calculados de tipo some View y mantenlos pequeños. No reconstruyas una pantalla enorme como una larga lista de fragmentos de vista privados y calculados.
    • Saca de body las acciones de botones no triviales y los efectos secundarios, y traslada la lógica de negocio real a servicios o modelos.
    • Mantén estable el árbol de vistas raíz. Prioriza los condicionales puntuales en secciones o modificadores en lugar de ramas if/else de nivel superior que reemplacen una pantalla completa por otra.
    • A medida que avanzas, corrige qué vista administra el estado de Observation. Para los modelos raíz con @Observable en iOS 17 o posterior, la vista propietaria debe almacenarlos en @State; usa contenedores observables heredados solo cuando lo requiera el destino de implementación.

    Pide un ciclo de validación breve

    Las refactorizaciones que conservan el comportamiento deben ir acompañadas de evidencia. Después de cada extracción relevante, pídele a Codex que ejecute la comprobación más acotada que ejercite la pantalla, ya sea una compilación, una vista previa, una prueba o una ejecución en el simulador; luego, que resuma qué cambió en la estructura y qué se mantuvo igual de forma intencional.

    Consejos prácticos

    Primero divide; luego, debate la arquitectura

    Si una pantalla es demasiado grande, pídele a Codex que extraiga vistas específicas para cada sección antes de introducir una nueva capa de abstracción. Un árbol de vistas más corto y explícito suele evitar que se sienta la necesidad de agregar un modelo de vista.

    Pasa a cada subvista la interfaz mínima posible

    Prefiere valores let, propiedades @Binding y callbacks con un único propósito, en lugar de pasar el modelo completo de la vista principal a cada vista secundaria. Así, cada sección extraída es más fácil de previsualizar y resulta más difícil volver a acoplarla por accidente a toda la pantalla.

    Pide a Codex que indique qué decidió no cambiar

    Para una refactorización segura, resulta útil que Codex enumere de forma explícita lo que no cambió: las reglas de negocio, el comportamiento de la navegación, la persistencia, la semántica de la analítica y el diseño visible para el usuario. Así, la revisión es mucho más rápida.

    Tech stack

    Need

    Arquitectura de la interfaz de usuario

    Default options

    SwiftUI con una separación de responsabilidades que prioriza MV mediante @State, @Environment y tipos View pequeños y específicos

    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 de estado antes de introducir otra capa basada en modelos de vista.

    Need

    Flujo de refactorización

    Why it's needed

    La habilidad del complemento para refactorizar vistas de SwiftUI proporciona a Codex reglas claras para extraer vistas, usar Observation y eliminar efectos secundarios sin alterar el comportamiento.

    Need

    Validación

    Default options

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

    Why it's needed

    Las comprobaciones acotadas de compilación o en el simulador después de cada extracción permiten confiar más fácilmente en una refactorización que conserva el comportamiento que en una reescritura hecha de una sola vez.

    Need Default options Why it's needed
    Arquitectura de la interfaz de usuario SwiftUI con una separación de responsabilidades que prioriza MV mediante @State , @Environment y tipos View pequeños y específicos Las pantallas grandes suelen ser más fáciles de mantener cuando Codex simplifica el árbol de vistas y el flujo de estado antes de introducir otra capa basada en modelos de vista.
    Flujo de refactorización Complemento Build iOS Apps La habilidad del complemento para refactorizar vistas de SwiftUI proporciona a Codex reglas claras para extraer vistas, usar Observation y eliminar efectos secundarios sin alterar el comportamiento.
    Validación xcodebuild , vistas previas y comprobaciones específicas de la interfaz de usuario Las comprobaciones acotadas de compilación o en el simulador después de cada extracción permiten confiar más fácilmente en una refactorización que conserva el comportamiento que en una reescritura hecha de una sola vez.

    Casos de uso relacionados