No início de 2010, o mundo já conhecia a terceira geração do iPhone com o modelo 3GS. Steve Jobs prendia a atenção dos jornalistas, levando-os a imaginar como seria uma terceira via entre os já consagrados iPhone e MacBook para experiências como navegar na internet, assistir conteúdos, jogar, ler… Na época, não existia nada parecido com o iPad e a Apple mais uma vez causou uma revolução no mundo da tecnologia, dando origem ao universo dos tablets, que trouxeram uma melhor experiência em tarefas que exigem telas maiores sem abrir mão da portabilidade.

Durante quase 10 anos, o iPad compartilhou do sistema operacional iOS, o mesmo que roda nos iPhones. Os SDKs do iOS possibilitavam aos desenvolvedores a criação de apps “universais” que se comportavam de forma ligeiramente diferente em relação à execução nos iPhones. Nesse ano, porém, os engenheiros da Apple decidiram elevar a experiência de uso nos iPads a um novo patamar e, para isso, criaram o iPadOS.

O iPadOS é um sistema operacional próprio para iPads que traz um conjunto enorme de ferramentas para os desenvolvedores aproveitarem ao máximo o poder dos tablets da nova geração. É nesse novo potencial que estamos apostando aqui na Iteris e é sobre isso que falaremos agora!


Os recursos que merecem maior atenção dos desenvolvedores no iPadOS são aqueles que melhoram a experiência de uso com multitarefas no iPad, como a possibilidade de executar múltiplas instâncias do seu app e a integração entre elas com o drag and drop nos já conhecidos formatos Split View e Slide Over.

Vale destacar também que é provável que a Apple passe a exigir que todos os apps disponíveis para iPhone sejam adaptados também para iPad pelos desenvolvedores em 2020. Esta informação foi passada no WWDC 2019 e confirmada por engenheiros da Apple.

Neste link podemos ver as principais novidades para o novo iPadOS.


Veja agora alguns conceitos-chave para compreendermos os novos recursos de multitarefas que possibilitam ao nosso app executar múltiplas instâncias simultaneamente:

UI Scene

Estrutura atual de UI, baseada na exibição de uma UI Window

Atualmente, estamos acostumados com a estruturação de UI baseada na exibição de uma UIWindow acima de todas as outras, através do método makeKeyAndVisible(). A partir do iOS 13, temos a introdução de UISceneWindows para exibição das diferentes instâncias do app para iPad.

Estrutura com UIWindowScenes

UISceneSession

A UISceneSession é responsável pelo ciclo de vida de uma UIWindowScene, ou seja, uma instância de execução do seu app. O iPadOS conecta a UIWindowScene à uma UISceneSession para armazenar as informações únicas de execução de uma instância do app.

UIWindowSceneDelegate

A UIWindowSceneDelegate está para a UIWindowScene assim como a UIApplicationDelegate está para a UIWindow. É o novo formato para gestão do ciclo de vida da aplicação, que agora é baseada em Scenes.

TL;DR: As estruturas de inicialização dos aplicativos para iOS e iPadOS foram modificadas para permitir que as diferentes instâncias de execução de um mesmo aplicativo possam guardar e gerenciar seu próprio estado.

Esta é uma mudança estrutural do iOS 13 em relação às versões anteriores. Apesar do iPadOS ter sido desenhado para uma melhor experiência de uso nos tablets, os apps continuarão sendo desenvolvidos com o SDK do iOS. Isso se deve ao fato de que a Apple pretende, em um futuro próximo, forçar a criação de apps universais (que possuem adaptações pra todos os tamanhos de tela). Por isso, todos os apps seguirão o padrão de ciclo de vida baseado em Scenes a partir do iOS 13, mesmo que este recurso seja aproveitado apenas no iPadOS. É aconselhável que os apps atuais façam a mudança pra esse novo formato o quanto antes, pelo menos é o que já fazemos aqui na Iteris!


Quer saber como isso tudo é implementado na prática? Fique ligado em nosso Facebook e LinkedIn e aguarde pelos próximos artigos do blog, onde traremos uma demonstração de um app criado com ciclo de vida baseado em Scenes.