Idiomas: English · Nederlands · Deutsch · Español · Français · Italiano · Português · Papiamentu · Frysk

Índice / Artículos / Compatibilidad con Multiventana en la app para iPad

Compatibilidad con Multiventana en la app para iPad

Desarrollo nativo para iPadOS

Publicado
Actualizado
(creado )
Escrito por
Willem L. Middelkoop
Temas
apple · diseño · iOS · iPad · programación · tablet · trabajo
Versión humana de este artículo
https://willem.com/es/2019-10-07_compatibilidad-con-multiventana-en-la-app-para-ipad/
English
Multi-Window support in your iPad app
Nederlands
Multi-Window-ondersteuning in je iPad-app
Deutsch
Multi-Window-Unterstützung in deiner iPad App
Français
Prise en charge du multi-fenêtre dans ton appli iPad
Italiano
Supporto multifinestra nella tua app per iPad
Português
Suporte de várias janelas na tua app para iPad
Papiamentu
Suporte pa multi-window den bo app di iPad
Frysk
Multi-Window-stipe yn dyn iPad-app
Idiomas
Traducido del original en inglés por un modelo de lenguaje en dos pasadas (traducción y corrección) con un glosario y un corrector ortográfico; aún no revisado por un hablante nativo.

Resumen

El mes pasado Apple lanzó iPadOS, el primer sistema operativo pensado en exclusiva para el iPad. Se diferencia de iOS en que aprovecha la pantalla más grande del iPad, con ventanas múltiples y pantalla dividida. Yo desarrollo apps, así que tocaba aprovechar las nuevas posibilidades que ofrece iPadOS.

Texto completo

Desde 2016 uso el iPad como mi ordenador principal, un gran ordenador móvil. Su sistema operativo, sin embargo, no se parece al de la mayoría de los ordenadores. iPadOS se basa en iOS, que funciona en el popular teléfono móvil de Apple, el iPhone. Por eso el iPad es un poco distinto en el día a día, por la forma en que ejecuta las apps.

iPad Pro como mi ordenador principal, conectado a una terminal con Blink
iPad Pro como mi ordenador principal, conectado a una terminal con Blink

Por sus raíces de smartphone, iPadOS trata las apps como lo hace un iPhone: se ejecutan a pantalla completa y centradas en una sola tarea. A la gente le encanta el iPad por eso, porque es una forma estupenda de mantener la mente concentrada en una sola cosa.

Compatibilidad con varias ventanas en el iPad

Hay situaciones en las que ejecutar varias ventanas a la vez puede ser muy útil, y ahí es donde Apple mejoró iPadOS al introducir la posibilidad de usar apps una al lado de otra.

Varias ventanas en el iPad: dos instancias de la misma app a la vez
Varias ventanas en el iPad: dos instancias de la misma app a la vez

Incluso si trabajas en una sola tarea, poder usar varias ventanas es muy útil, porque te permite ejecutar varias instancias de la misma app a la vez. Eso abre casos de uso en los que puedes mirar y editar contenido desde ángulos distintos: comparar dos meses diferentes de tu agenda, editar un documento largo o ver el mapa a distintas escalas al mismo tiempo.

Comparando distintos meses en la app de calendario
Comparando distintos meses en la app de calendario
Viendo el mapa a distintas escalas al mismo tiempo
Viendo el mapa a distintas escalas al mismo tiempo

La intención del diseño

Cuando Apple presentó la compatibilidad con varias ventanas en el iPad, la diseñó respetando las raíces móviles de iPadOS. A diferencia de las aplicaciones tradicionales de PC, donde el software complejo puede funcionar por defecto con varias ventanas (y paneles) distintos, iPadOS mantiene el requisito de que una app tiene que poder hacerlo todo desde una sola ventana.

En el iPad es un requisito de diseño que todas las ventanas de una app sean del mismo tipo y que cada una pueda hacer todo lo que hace la aplicación. El usuario podría hacerlo todo desde una sola ventana si quiere. Solo debe poder crear varias ventanas si lo considera útil, pero la app nunca debe exigirlo. Así se conserva la sencillez con que funcionan las apps en iPadOS: puedes seguir usándolas a pantalla completa, como en un smartphone.

Ken Ferry explica el diseño de la compatibilidad con varias ventanas en iOS durante la WWDC 2019
Ken Ferry explica el diseño de la compatibilidad con varias ventanas en iOS durante la WWDC 2019

El ciclo de vida de la app (y cambios en el código)

Desde el punto de vista técnico Apple introdujo UIWindowScene, con su correspondiente abstracción UISceneSession, en la estructura de la interfaz. Se sitúa entre UIScreen y UIWindow.

Visión conceptual de la estructura de la interfaz de iPadOS, explicada por Steve Holt durante la WWDC 2019
Visión conceptual de la estructura de la interfaz de iPadOS, explicada por Steve Holt durante la WWDC 2019
Visión conceptual de UISceneSession, que mantiene el estado persistente de la interfaz entre las representaciones de la app (WWDC 2019, Steve Holt, Apple)
Visión conceptual de UISceneSession, que mantiene el estado persistente de la interfaz entre las representaciones de la app (WWDC 2019, Steve Holt, Apple)

Cuando iPadOS (e iOS) ejecutan varias apps, es posible que el sistema operativo cierre una app en segundo plano para ahorrar memoria y energía. Es algo intencionado: mantiene el sistema rápido y respetuoso con la batería.

Desde el punto de vista del ciclo de vida de la app, esto significa que al arrancar tienes que comprobar si tu app ya se estaba ejecutando antes. Si existe una UISceneSession, la app debe volver a conectarse a ella para ofrecer al usuario un estado de interfaz persistente. Si lo haces bien, el usuario no notará que la app se interrumpió mientras estaba en segundo plano.

Roles funcionales en el ciclo de vida de una app de iPadOS (WWDC 2019, Steve Holt, Apple)
Roles funcionales en el ciclo de vida de una app de iPadOS (WWDC 2019, Steve Holt, Apple)

Si adoptas en tu app los nuevos conceptos de UIWindowScene (y UISceneSession), podrás aprovechar las nuevas capacidades de ventanas múltiples del iPad. Pero hay algo más: Apple planea llevar las apps de iOS y iPadOS al Mac. Con los nuevos conceptos de interfaz, ¡tu app también funcionará de maravilla en macOS!

La misma app en iOS/iPadOS y en macOS
La misma app en iOS/iPadOS y en macOS

En la práctica

Como desarrollador, apenas tuve problemas para implementar los nuevos conceptos de interfaz en mis apps. Con relativamente poco esfuerzo puedes habilitar muchos casos de uso en los que la misma app da más potencia al usuario.

Usando mi app "Lemmid (content) Manager" para editar un artículo del blog mientras veo el resultado al lado
Usando mi app "Lemmid (content) Manager" para editar un artículo del blog mientras veo el resultado al lado
Editando un registro DNS con mi app "Lemmid Domain" sin perder de vista toda la zona DNS
Editando un registro DNS con mi app "Lemmid Domain" sin perder de vista toda la zona DNS
Usando mi app "Lemmid Count" para analizar las visitas y el tráfico de un artículo de willem.com
Usando mi app "Lemmid Count" para analizar las visitas y el tráfico de un artículo de willem.com
Desarrollo web en el iPad con Inspect y Blink uno al lado del otro
Desarrollo web en el iPad con Inspect y Blink uno al lado del otro

Conclusión

Apple no se precipitó con la compatibilidad con varias ventanas en el iPad, sino que se tomó su tiempo para diseñarla bien. Si adoptas los nuevos conceptos, tu app será más potente para los usuarios.

Siempre es buena idea dedicar tiempo a entender los conceptos de interfaz de fondo antes de empezar a desarrollar. ¡Hazlo bien (y a conciencia) en lugar de rápido (y a lo loco)!

Formatos legibles por máquinas de esta página