Saltar al contenido

Tecnología · Interfaces para Apple

Desarrollo de interfaces con SwiftUI

SwiftUI es la forma actual de construir interfaces en los sistemas de Apple: la pantalla se describe a partir de piezas pequeñas y del estado de los datos, y se redibuja sola cuando ese estado cambia. Construimos interfaces nuevas y un sistema de componentes propio, y migramos las pantallas antiguas sin detener la app.

Fig. 01Componedor de pantallasESTADO339:41Pedidos3ESTADO · VISTAEn bucle
La pantalla se compone con piezas sueltas dentro del bastidor. Al mover la palanca cambia el estado y las piezas se recolocan solas; el teléfono y el widget muestran el resultado.

Situaciones

Qué puedes resolver con una interfaz en SwiftUI

SwiftUI compensa cuando la app tiene muchas pantallas que deben parecerse entre sí, adaptarse a quien las usa y cambiar a menudo sin romperse.

  • Pantallas que tardan en cambiarse

    Cada retoque de diseño obliga a tocar varios archivos y a probarlo todo otra vez. Con piezas reutilizables, el cambio se hace en un sitio y se ve en todas las pantallas que la usan.

  • Una app que no respeta los ajustes del usuario

    Letra grande, modo oscuro, lector de pantalla o texto de derecha a izquierda. En SwiftUI la mayor parte viene de serie si la interfaz se construye bien desde el principio.

  • La misma información en más sitios

    Un widget en la pantalla de inicio, el estado de un pedido en la pantalla de bloqueo o una vista en el reloj. Son extensiones que Apple pide construir con SwiftUI.

  • Una app en UIKit que hay que modernizar

    No hace falta rehacerla. Las pantallas nuevas se escriben en SwiftUI y conviven con las antiguas, que se sustituyen una a una cuando toca.

La palanca de estado: un dato cambia y la pantalla se recompone

Qué conviene revisar al empezar

  • Qué versión mínima de iOS se soporta: decide qué partes de SwiftUI se pueden usar
  • Si hay un diseño o un sistema de marca del que partir
  • Qué pantallas existen hoy y con qué están hechas
  • Qué ajustes de accesibilidad debe respetar la app

Servicios

Qué desarrollamos con SwiftUI

Cuatro tipos de encargo. Los dos primeros suelen ir juntos: las pantallas salen de las piezas.

  • Módulo 1 · Bastidor

    Pantallas e interfaces completas

    Listas, formularios, fichas y navegación, con sus estados vacíos, de carga y de error, construidos sobre los datos reales de la app y probados con letra grande y en modo oscuro.

    Ejemplos de entregables

    • Listado con búsqueda y filtros
    • Formulario por pasos
    • Ficha de detalle con acciones
  • Módulo 2 · Caja de piezas

    Sistema de componentes propio

    Colores, tipografía, botones, campos y tarjetas de tu marca convertidos en piezas con nombre, documentadas y con su vista previa, para que cada pantalla nueva se monte con ellas.

    Ejemplos de entregables

    • Biblioteca de componentes
    • Tema claro y oscuro
    • Componentes con vista previa
  • Módulo 3 · Placa antigua

    Migración gradual desde UIKit

    Las pantallas en UIKit se sustituyen una a una, empezando por las que más cambian. Mientras tanto, las dos formas de hacer interfaz conviven en la misma app sin que el usuario lo note.

    Ejemplos de entregables

    • Pantalla nueva dentro de una app antigua
    • Sustitución de un formulario
    • Plan de migración por pantallas
  • Módulo 4 · Vista previa

    Widgets, actividades en vivo y reloj

    La información que importa, fuera de la app: un widget, el seguimiento de un pedido en la pantalla de bloqueo o una vista en Apple Watch, alimentados por los mismos datos.

    Ejemplos de entregables

    • Widget de tareas del día
    • Seguimiento de un reparto en vivo
    • Vista rápida en el reloj

Un ejemplo en funcionamiento

Cambia el estado y mira la pantalla

Ejemplo funcional con datos ficticios. Aquí no se toca la pantalla, se toca el estado: cuántos pedidos hay, el tamaño de letra y el modo oscuro. La pantalla y el widget se recomponen solos a partir de la misma descripción.

Ejemplo funcional · datos de muestra

El estado

3Pedidos pendientes

La descripción de la pantalla

  1. Pantalla «Pedidos», con el número en la cabecera
  2. Si no hay pedidos: un aviso de que está todo al día
  3. Si los hay: una fila por pedido
  4. Con letra grande: el nombre pasa debajo del número
  5. Colores: los del sistema, claros u oscuros

La pantalla y el widget están dibujados en tu navegador a partir de la descripción que ves al lado; no es una app real ni código de Apple. Enseña la idea que hay detrás: la interfaz es una función del estado.

Integración

Cómo encaja con tu app

SwiftUI es la capa que se ve. Debajo están los datos y las reglas de la app, escritos en Swift, y alrededor, lo que ya existe.

De dónde viene

SwiftUIInterfaz en SwiftUIse redibuja con el estado

A dónde llega

  • iPhone y iPadpantallas adaptadas
  • Widgets y pantalla de bloqueoinformación a la vista
  • Apple Watchvistas del reloj

Dependencias que conviene revisar

  • Qué versión de iOS tienen los dispositivos más antiguos
  • Qué pantallas dependen de componentes de terceros
  • Si los datos ya están separados de las pantallas o hay que separarlos
  • Qué idiomas y qué ajustes de accesibilidad se soportan

Cómo trabajamos y qué entregamos

Cómo trabajamos un encargo de SwiftUI

  1. 01

    Revisión inicial

    Miramos las pantallas que hay, con qué están hechas, la versión mínima de iOS y el diseño del que se parte.

  2. 02

    Alcance

    Escribimos qué pantallas y qué piezas entran, en qué orden se migran las antiguas y qué queda fuera.

  3. 03

    Primera entrega

    Las primeras piezas y una pantalla completa funcionando dentro de tu app, con datos reales.

  4. 04

    Validación

    La pruebas con letra grande, en modo oscuro y con el lector de pantalla, además de con el uso normal.

  5. 05

    Documentación

    El catálogo de piezas con sus vistas previas y las reglas para construir pantallas nuevas con ellas.

Qué recibes al cerrar el encargo

  • El código de las pantallas y de las piezas en tu repositorio
  • Un catálogo de componentes con vistas previas
  • El plan de migración de las pantallas que quedan
  • La lista de lo que queda fuera y por qué

Preguntas

Preguntas sobre SwiftUI

¿Falta la tuya? Escríbela a info@veodar.com y te respondemos con una pregunta concreta, no con un dossier.

¿Hay que rehacer la app para usar SwiftUI?

No. SwiftUI y UIKit conviven en la misma app: una pantalla nueva en SwiftUI se abre desde una antigua y al revés. Lo habitual es empezar por las pantallas nuevas y por las que más se tocan, y dejar las estables para más adelante.

¿Qué versión de iOS hace falta?

SwiftUI ha ido creciendo con cada versión de iOS, así que la versión mínima que soporte tu app decide qué se puede usar. Lo comprobamos al principio con los dispositivos reales de tus usuarios y queda escrito en el alcance.

¿Sirve para una app ya publicada con mucho uso?

Sí, y es donde más cuidado se pone. Cada pantalla migrada se publica por separado y se compara con la anterior antes de retirar esta. Si algo va peor, se vuelve atrás sin tocar el resto.

¿La interfaz se ve igual en iPhone, iPad y reloj?

Comparte piezas y reglas, pero no es la misma pantalla estirada. Cada dispositivo tiene su tamaño y su forma de uso, y la interfaz se adapta a eso. Lo que no cambia son los datos ni el aspecto de marca.

¿Qué gano en accesibilidad?

Mucho de lo básico viene incluido: el tamaño de letra del sistema, el contraste, el lector de pantalla y el modo oscuro funcionan si las piezas se construyen como SwiftUI espera. Lo que no viene solo, el orden de lectura o las etiquetas de los botones con icono, lo revisamos pantalla a pantalla.

¿Y la versión de Android?

SwiftUI es solo para los sistemas de Apple. En Android el equivalente es Jetpack Compose, que trabaja con la misma idea. Si la app está en los dos sistemas, el diseño y los nombres de las piezas se comparten aunque el código sea distinto.

Actualizado:

Otras tecnologías

Con qué se combina

Todas las tecnologías
  • Desarrollo de apps iOS con SwiftApps nativas para iPhone y iPad que usan a fondo la cámara, el NFC, la biometría o el reloj. Las creamos, las mantenemos y las publicamos contigo.
  • Interfaces con Jetpack ComposePantallas que se adaptan del móvil a la tableta y al plegable, con el tema de tu marca. Interfaces nuevas o migración gradual desde vistas XML.
  • Desarrollo de apps con React NativeUna sola base de código para iPhone y Android, con módulos nativos donde hacen falta. Creamos apps nuevas y continuamos las que ya tienes.

Empezar

Cuéntanos qué pantallas quieres construir o cambiar.

Con unas capturas de la app o el diseño que tengas nos basta para una primera respuesta.

Qué ayuda a valorarlo

  • Capturas o diseño de las pantallas
  • Con qué está hecha la app hoy
  • La versión mínima de iOS
  • Qué dispositivos: teléfono, tableta, reloj

¿Antes de escribir? Mira cómo presupuestamos un proyecto o las soluciones por área de la empresa.

Fig. 07Manipulador MorseH · O · L · A