Oct. 7, 2019
Compatibilidad con Multiventana en la app para iPad
Desarrollo nativo para iPadOS
El mes pasado Apple lanzó iPadOS, el primer sistema operativo dedicado para iPad. Se diferencia de iOS con su compatibilidad con la pantalla más grande del iPad, incluyendo ventanas multi/pantalla dividida. Desarrollo apps y era hora de aprovechar estas nuevas posibilidades que ofrece iPadOS.
Desde 2016 he estado usando iPad como mi computadora principal, es una gran computadora móvil. Sin embargo, el sistema operativo es diferente al de la mayoría de las computadoras. iPadOS está basado en iOS, que se ejecuta en el popular teléfono móvil de Apple, el iPhone. Esto hace que el iPad sea un poco diferente en el uso diario debido a la forma en que ejecuta las aplicaciones.

Debido a las raíces de teléfono inteligente de iPadOS, el sistema operativo maneja las aplicaciones como lo hace un iPhone: las aplicaciones se ejecutan en pantalla completa enfocadas en una sola tarea. A la gente le encanta el iPad por esto, ya que es una excelente manera de mantener la mente concentrada en una sola cosa.
Soporte para múltiples ventanas en iPad
Hay situaciones en las que ejecutar múltiples ventanas simultáneamente puede ser muy útil, y aquí es donde Apple mejoró iPadOS cuando introdujo la compatibilidad para ejecutar aplicaciones en paralelo.

Incluso si está trabajando en una sola tarea, tener soporte para múltiples ventanas es muy útil, ya que le permite ejecutar múltiples instancias de la misma aplicación a la vez. Esto permite diferentes casos de uso en los que puede ver y editar contenido desde diferentes ángulos. Como comparar dos meses diferentes en su agenda, editar un documento largo o mirar el mapa a diferentes escalas simultáneamente.


Intención de diseño
Cuando Apple introdujo el soporte para múltiples ventanas en iPad lo diseñaron respetando las raíces móviles de iPadOS. A diferencia de las aplicaciones tradicionales de PC, donde el software complejo puede ejecutarse a través de múltiples ventanas (y paneles) diferentes de forma predeterminada, iPadOS mantiene el requisito de que una aplicación debe poder hacer todo desde una sola ventana.
Es un requisito de diseño en iPad que todas las ventanas de la aplicación sean del mismo tipo, y cada una pueda hacer todo en la aplicación. El usuario podría hacer cualquier cosa desde una ventana si lo desea. Deberían poder crear múltiples ventanas solo si lo consideran útil, pero la aplicación nunca debería requerirlo. Esto facilita la forma simple en que las aplicaciones se ejecutan en iPadOS, puede continuar usando aplicaciones en pantalla completa como en un teléfono inteligente.

Ciclo de vida de la aplicación (y cambios de código)
Desde una perspectiva técnica Apple introdujo UIWindowScene con una abstracción UISceneSession correspondiente en la estructura de la interfaz de usuario. Se encuentra entre UIScreen y UIWindow.


Cuando iPadOS (e iOS) ejecutan múltiples aplicaciones, es posible que los sistemas operativos cierren una aplicación desde segundo plano para ahorrar memoria y energía. Esto es por diseño: mantiene el sistema operativo rápido y amigable con la batería.
Desde la perspectiva del ciclo de vida de una aplicación, esto significa que debe verificar si su aplicación se estaba ejecutando antes cuando se inicia. Cuando hay una UISceneSession existente, la aplicación debe volver a conectarse a ella para proporcionar un estado de interfaz persistente al usuario. Cuando se hace correctamente, el usuario no notará que la aplicación se interrumpió mientras estaba en segundo plano.

Si adopta los nuevos conceptos de UIWindowScene (y UISceneSession) en su aplicación, podrá aprovechar las nuevas capacidades de ventanas múltiples del iPad. Pero hay una cosa más: Apple planea llevar las aplicaciones de iOS y iPadOS a la Mac. ¡Con los nuevos conceptos de interfaz de usuario, su aplicación también se ejecutará a la perfección en macOS!

En la práctica
Como desarrollador, tuve pocos problemas para implementar los nuevos conceptos de interfaz de usuario en mis aplicaciones. Con relativamente poco esfuerzo, puede habilitar muchos casos de uso diferentes en los que la misma aplicación proporciona más poder al usuario.




Conclusión
Apple no se apresuró con el soporte para múltiples ventanas en iPad, sino que se tomó su tiempo para diseñarlo bien. Si adopta los nuevos conceptos, su aplicación será más poderosa para los usuarios.
Siempre es una buena idea tomarse su tiempo para comprender los conceptos de interfaz subyacentes antes de comenzar a desarrollar. ¡Hágalo bien (y bien) en lugar de rápido (y estúpido)!