2015/10/27

tvOS da Apple TV obriga a repensar o conceito de armazenamento local


Com o iOS9 a Apple introduziu umas novidades a nível de optimização do espaço ocupado pelas apps, mas com o tvOS da Apple TV esse conceito vai ainda mais longe e mostra-nos aquele que poderá ser o futuro dos sistemas de armazenamento híbridos que misturam o "local" com a "cloud".

A Apple muito tem sido criticada por manter os seus iPhones com 16GB no modelo de base, capacidade que facilmente se enche com uma dezenas de apps, músicas e vídeos. Em jeito de compensação, a Apple anunciou sistemas como o App Thinning e Slicing, que permitem reduzir o tamanho que as apps ocupam.

Tradicionalmente, uma app para iOS era um bloco monolítico de que tinha que conter todo o código e recursos necessários para todas as versões de iPhones suportados. Isso fazia com que muitas apps tivessem código de 32 bits mesmo que fossem instaladas num iPhone de 64 bits, assim como ter imagens de alta-resolução mesmo que fossem executadas num iPhone pré-retina. Graças ao App Thinning, a Apple e developers têm agora a capacidade de juntar apenas os blocos que interessam, criando uma app à medida do iPhone em que a app vai ser executada, evitando ocupar espaço desnecessário. Mas na Apple TV, este conceito não só é levado ainda mais longe, como é imposto aos developers.


Na Apple TV, os developers têm um limite de 200MB para a sua app, e não podem contar com a presença de armazenamento persistente local. Mudanças que obrigam a repensar o método de desenvolvimento e de utilização das apps.

Os developers continuam a poder criar apps bastante maiores, mas neste sistema o bloco principal da app só pode ter 200MB de tamanho máximo, e recorrer a um bloco adicional de (até) 2GB que é descarregado posteriormente. Ainda é possível ter acesso a até mais 20GB para a sua app, mas neste caso a informação terá que ser carregada expressamente pela app de forma dinâmica.

Basicamente, isto permite uma maior versatilidade na gestão do espaço ocupado pelo sistema, que assim pode, por exemplo, descartar coisas como tutoriais de jogos ou vídeos de introdução que, de outra forma, ocupariam permanentemente gigabytes de espaço mesmo que o utilizador só os visse uma vez; ou, em jogos multi-nível, permitir que o jogo só descarregue o nível que se está jogar, em vez de manter permanentemente todos os níveis a ocupar espaço.

De forma relacionada, quando um utilizador quer instalar um jogo novo, o sistema pode facilmente eliminar estas secções de jogos que não são jogados há muito tempo tempo, sem chatear o utilizador com a decisão de que jogo deverá desinstalar para poder instalar um novo jogo.

Confesso que este sistema é algo que há muito eu venho a defender e promover, e que sempre me horrorizaram ter jogos que ocupam gigabytes só por causa de um qualquer vídeo de introdução que será visto uma vez (se tanto). Este sistema da Apple virá dar ainda mais visibilidade a este problema, e esperemos que técnicas idênticas rapidamente se espalhem também às restantes plataformas.


Claro que... há também que estar consciente das desvantagens destes sistemas, a começar pela sua profunda dependência na cloud (da Apple, neste caso). Bastará não termos ligação à internet para eventualmente não podermos jogar aquele jogo que começamos a jogar ontem - mas por outro lado, são também cada vez mais os jogos que, mesmo tendo descarregado gigabytes para o nosso computador, se recusam a arrancar se não tiverem feito a validação online. (E temos ainda a questão de como isto irá afectar a longevidade deste jogos a longo prazo, assumindo de que daqui por uma ou duas décadas o panorama será bem diferente do actual e estes serviços certamente já nem existirem como os conhecemos.)

Mas, a marcha em direcção à cloud há muito que tem sido inevitável, e mesmo com os seus pontos negativos, penso que continuarão a ser compensados pelos seus pontos positivos - e nada impede que eventualmente se adicione uma forma de fazer especificar que certas apps deverão ser descarregadas completamente e mantidas permanentemente no sistema para uso offline, marcando-as como favoritos, por exemplo.

2 comentários:

  1. Excelente artigo, thumbs up ;)
    A não ser que ocorra uma revolução com alguma nova tecnologia ou conceito que mude o paradigma, a Cloud e sistemas de apps híbridos (local/cloud) vão ser certamente o futuro.

    Como já tive oportunidade de discutir, o sistema até pode(deve?) evoluir para uma espécie de App Streaming. Tal como já se faz stream de video/audio com uma eficiência excelente (alguém se recorda do que era visualizar clips no inicio ou até antes do Youtube?), porque não adaptar e usar a mesma tecnologia ao serviço de apps híbridas, em tempo real?

    Certamente não serviria para todo o tipo de apps, mas seria interessante sem dúvida, e permitiria construir apps com conteúdos muito mais vastos e diversificados. Afinal, nunca seria necessário descarregar na totalidade, e a gestão do espaço no dispositivo gerida de forma autónoma e dinâmica.

    (just my 2 cents)

    ResponderEliminar