Creando nuestra pantalla home

Clase 11 de 36Curso de Desarrollo de Aplicaciones iOS con SwiftUI

Contenido del curso

Creando las primeras pantallas de la app

Resumen

Diseñar la pantalla principal de una aplicación iOS requiere dominar varios elementos: desde la selección automática de un tab hasta la personalización del color del Tab Bar utilizando UIKit dentro de un proyecto SwiftUI. Aquí se desglosan los pasos clave para lograrlo de forma ordenada y profesional.

¿Cómo seleccionar un tab específico al iniciar el Tab View?

Cuando un Tab View contiene varias vistas, la primera en la lista se muestra por defecto. Para que la pantalla de home aparezca como vista inicial aunque no sea la primera, se necesitan dos elementos fundamentales [01:00]:

  • Asignar un modificador tag a cada vista dentro del Tab View: perfil recibe .tag(0), juegos .tag(1), home .tag(2) y favoritos .tag(3).
  • Crear una variable de estado con el decorador @State que almacene el tag de la vista deseada.

La variable tabSeleccionado se declara como Int y se inicializa en 2, porque ese es el tag asignado a home [02:15]. Después se pasa al Tab View mediante el parámetro selection, usando el prefijo $ para crear un binding: TabView(selection: $tabSeleccionado). Con esto, la aplicación arranca directamente en la pantalla de inicio.

¿Cómo personalizar el color y la transparencia del Tab Bar con UIKit?

SwiftUI no ofrece modificadores nativos para todos los aspectos visuales del Tab Bar, así que se recurre a UIKit a través del método init() de la estructura [03:20]. Dentro de este inicializador se accede a UITabBar.appearance() para modificar propiedades globales:

  • barTintColor: define el color de fondo del Tab Bar. Se crea un color personalizado en el catálogo de Assets con valores RGB 57, 63, 83 y se nombra tabBarColor [04:50].
  • isTranslucent: se establece en true para que el fondo tenga un efecto traslúcido.

Además, para que los íconos seleccionados aparezcan en blanco en lugar del azul por defecto, se aplica el modificador .accentColor(.white) directamente al Tab View [06:30]. Es buena práctica agregar un print("Iniciando las vistas de home") dentro del init para tener trazabilidad en la consola de depuración.

¿Qué es un color set en Assets y por qué conviene usarlo?

Un color set en el catálogo de Assets permite definir colores reutilizables con nombre propio. En lugar de escribir valores RGB repetidos en cada archivo, se crea el color una sola vez y se referencia por nombre. Esto facilita el mantenimiento y permite configurar variantes para modo claro y oscuro (dark appearance).

¿Cómo estructurar la pantalla de home desde cero?

La pantalla de home se construye como una estructura independiente que sigue el protocolo View [08:40]. Se reemplaza el texto provisional por un ZStack que permite superponer capas de contenido:

  • Se oculta la barra de navegación con .navigationBarHidden(true) para evitar que aparezca un botón de regreso a la pantalla de inicio de sesión [09:25].
  • Se oculta el botón back con .navigationBarBackButtonHidden(true).
  • Se define el color de fondo creando otro color set llamado marine con valores RGB 19, 30, 53, que es el tono oscuro base del diseño [10:45].
  • Se aplica .ignoresSafeArea() para que el color cubra toda la pantalla.

¿Por qué usar un VStack con padding horizontal?

Dentro del ZStack, el contenido se organiza en un VStack al que se le aplica .padding(.horizontal, 18) [12:00]. Este espaciado lateral evita que los elementos queden pegados a los bordes de la pantalla, mejorando la legibilidad y acercando el resultado al diseño original.

Con estos pasos, la pantalla de home ya cuenta con selección automática de tab, un Tab Bar personalizado con colores propios y transparencia, navegación oculta y un fondo que respeta fielmente el diseño planificado. ¿Has implementado alguna personalización adicional en tu Tab Bar? Comparte tu experiencia en los comentarios.