Resumen

Comprender cómo se estructura una aplicación en SwiftUI es el primer paso para construir interfaces con Swift. Cada archivo, cada estructura y cada propiedad calculada cumplen un rol específico que, al conectarse, hacen posible que veas una vista en pantalla. Aquí se desglosa cómo funciona ese engranaje y por qué los protocolos son la pieza central de todo.

¿Cómo se organiza el punto de entrada de una app en SwiftUI?

Cuando abres un proyecto en Xcode, encontrarás dos archivos principales que definen tu aplicación [0:44]:

  • PlatziApp.swift: es el punto de entrada de la aplicación. Dentro de él se indica cuál será la pantalla principal. En este caso, se crea una instancia de la estructura ContentView simplemente abriendo y cerrando paréntesis, tal como se hace con cualquier estructura en Swift.
  • ContentView.swift: contiene la estructura ContentView, que representa la primera pantalla visible de la app.

La relación es directa: el archivo de entrada le dice al sistema "quiero mostrar una instancia de ContentView", y ContentView se encarga de definir qué se muestra.

¿Qué papel cumple la computed property body?

Dentro de la estructura ContentView existe una propiedad calculada llamada body [1:28]. Esta propiedad realiza cálculos para devolver un elemento visual. En el ejemplo, devuelve una vista de texto que muestra "Hola" junto con un modificador.

  • La palabra clave var define la propiedad.
  • El nombre body es obligatorio para cumplir con lo que el protocolo exige.
  • Los modificadores se aplican a las vistas para cambiar su apariencia o comportamiento (se profundizan en lecciones posteriores).

Gracias a esta computed property, la estructura sabe exactamente qué renderizar en pantalla.

¿Para qué sirve la estructura de previews en Xcode?

Existe una segunda estructura llamada ContentView_Previews [2:02] que permite visualizar tu interfaz directamente en el canvas de Xcode sin necesidad de ejecutar la app en un simulador. Esta estructura también devuelve una instancia de ContentView.

Si comentas o eliminas esta estructura, el canvas se cierra automáticamente porque pierde la referencia necesaria para mostrar la vista previa.

¿Qué es un protocolo en Swift y por qué es obligatorio?

Al declarar ContentView: View, no se está indicando un tipo de dato como ocurre con las variables. Se está diciendo que la estructura debe conformarse al protocolo View [2:48].

Un protocolo es un conjunto de reglas que una estructura debe cumplir obligatoriamente. Es similar a un protocolo de seguridad en un edificio: si hay un temblor, debes seguir ciertos pasos sin excepción. En programación, el protocolo View exige que la estructura devuelva al menos una vista.

  • body utiliza la anotación some View, que significa "alguna vista, sin importar cuál" [3:36]. Puede ser un texto, una imagen, un video o cualquier componente visual.
  • Cuando body devuelve una vista válida, la computed property cumple con el protocolo.
  • Como body está dentro de ContentView, la estructura completa también cumple con el protocolo View.

Este encadenamiento es fundamental: la propiedad conforma al protocolo, y al estar contenida en la estructura, la estructura entera queda conforme.

¿Cómo funciona el protocolo PreviewProvider?

La estructura de previews se conforma al protocolo PreviewProvider [4:08]. Este protocolo requiere una variable estática que devuelva una vista. En el ejemplo, esa vista es una instancia de ContentView, que a su vez ya cumple con el protocolo View.

El resultado es una cadena de conformidad:

  • ContentView cumple con View al devolver un texto en body.
  • ContentView_Previews cumple con PreviewProvider al devolver una instancia de ContentView.
  • Xcode usa esa conformidad para renderizar el canvas.

¿Por qué entender protocolos es clave antes de crear vistas?

Sin protocolos, SwiftUI no podría garantizar que cada estructura entregue lo necesario para dibujar la interfaz. Los protocolos actúan como un contrato que asegura consistencia en todo el proyecto. Cada vez que crees una nueva pantalla, repetirás este patrón: definir una estructura, conformarla a View y devolver el contenido visual desde body.

Con estas bases claras, el siguiente paso es explorar los distintos tipos de vistas disponibles: botones, textos, imágenes y más. Si tienes dudas sobre cómo los protocolos interactúan con tus estructuras, compártelas en los comentarios.