Muitas novidades legais foram apresentadas na keynote de abertura da WWDC 2015, que aconteceu ontem. Mas não podemos negar uma coisa: a maioria já deveria ter sido implementada pela Apple há algum tempo — o que comprova que, apesar de (quase) sempre fazer tudo muito bem feito, a Maçã realmente demora para levar alguns recursos considerados “básicos” aos seus sistemas.
Um grande exemplo do que estou falando é o App Thinning, recurso que agradará bastante donos de iPads, iPhones e iPods touch com pouco espaço para armazenamento (8GB e 16GB). Resumidamente, a ideia é que o dispositivo em questão faça apenas o download do pedaço do código do app que ele precisa, consequentemente deixando o tamanho final do app/jogo bem menor.
Conforme informou o Ars Technica, são três diferentes mecanismos que desenvolvedores podem utilizar para beneficiar usuários. Vamos a eles:
App Slicing
Desenvolvedores continuarão enviando binários completos para a App Store. Ou seja, códigos e imagens para suportar uma gama de aparelhos que contam com especificações diferentes, incluindo processadores (de 32 ou 64 bits), tamanhos/resoluções de tela (3,5, 4, 4,7, 5,5, 7,9 e 9,7 polegadas), entre outras coisas.
Atualmente, quem tem um iPhone 5c de 8GB e quer baixar um jogo de última geração, universal1Otimizado para iPads e iPhones/iPods touch., é obrigado a manter em seu aparelho arquivos específicos criados para iPads, iPhones com telas diferentes, processadores de 64 bits, GPUs (graphics processing units, ou unidades de processamento gráfico) que suportam a API (application programming interface, ou interface de programação de aplicações) Metal, etc. O que poderia ser um download de 200MB, por exemplo, acaba se transformando em algo de 1GB por conta desses itens desnecessários.
Com o App Slicing, usuários agora poderão baixar apenas aqueles arquivos criados especificamente para seus aparelhos. Para isso basta que desenvolvedores cataloguem tudo certinho e coloquem tags para plataformas individuais. No exemplo acima, ao fazer o download do suposto jogo, um usuário de iPhone 5c baixaria apenas as imagens e os códigos referentes ao seu aparelho.
ODRs (on-demand resources, ou recursos sob demanda)
Aqui, a ideia é que alguns pedaços dos aplicativos devem ser baixados apenas quando necessário — o usuário não usará todos os ativos de um app de uma vez só. Por exemplo: em um jogo com vários níveis, a Apple sugere que o aplicativo só precisa ter os dados para o nível no qual o usuário está e de alguns seguintes, deixando de lado os já ultrapassados e os muito distantes. Um aplicativo com algum tipo de tutorial pode baixar esses ativos apenas a primeira vez que o usuário for utilizar e exclui-los depois que ele não for mais necessário.
Resta saber como resolver alguns problemas que isso pode gerar, como algum app que precisa fazer o download de algum complemento em um momento que o dispositivo em questão não tiver conexão com a internet.
Bitcode
Quando desenvolvedores fazem o upload de seus aplicativos para a App Store, deixarão de enviar binários pré-compilados e passarão a incluir o que eles chamam de uma “representação intermediária” desses aplicativos, compilado sob demanda, dependendo do dispositivo que o usuário está baixando.
Sim, como você já deve ter pescado, essa funcionalidade é imprescindível para que algumas funcionalidades do App Slicing possam ser realizadas, determinando por exemplo se um iPhone transfere um binário de 32 ou de 64 bits.
· · ·
Mais informações sobre o App Thinning podem ser encontradas neste guia de desenvolvimento da Apple.
Sem dúvida nenhuma estamos falando de um ótimo recurso que deveria ter sido implementado há bastante tempo. Ainda assim, antes tarde do que nunca! 🙂
Notas de rodapé
- 1Otimizado para iPads e iPhones/iPods touch.