15 Set, 2014 10:42

Impacto das resoluções de tela dos novos iPhones para os desenvolvedores

Por Quintana

Como esperado, a Apple anunciou no último dia 9 o lançamento dos seus novos smartphones: o iPhone 6 e o iPhone 6 plus. A tela desses novos aparelhos possui uma dimensão bem diferente das atuais. Agora os desenvolvedores de iOS precisarão se preparar para essa fragmentação na plataforma, adaptando seus aplicativos, assim como no Android.

A tela do iPhone 6 possui 4,7 polegadas, com 1334×750 pixels e 326ppi de resolução, já o iPhone 6 plus possui uma tela de 5,5 polegadas, com 1920×1080 pixels e resolução de 401ppi. A tela de 4 polegadas dos iPhones 5S e 5C era bem menor, com 1136×640 pixels e 326ppi de resolução:

Comparativos de telas do iPhone 6, 6 plus e antigos

Além disso, o iPhone 6 plus contará com um modo paisagem, quando o smartphone fica deitado, similar ao do iPad.

Portabilidade dos aplicativos atuais

A notícia boa é que os aplicativos atuais irão executar normalmente nos novos smartphones. O padrão é que os aplicativos ainda não adaptados sejam escalados, assim como ocorre com os aplicativos não retina nas telas retina. O problema disso é que a tela fica meio embaçada e os elementos não aproveitam a tela maior da melhor forma:

Aplicativos no iPhone 6 e 6 plus

Mudanças no desenvolvimento e design

Como eu comentei no post sobre o iOS 8, será preciso baixar o XCode 6 para desenvolver para esses dispositivos. Essa nova IDE já apresenta novos simuladores com os tamanhos de 375x667 (com imagens retina 2 vezes maior) e outro com 414x736 e imagens retina com images 3 vezes maior.

Essa diferença de resoluções já dá, por si só, um grande trabalho aos desenvolvedores. O motivo é que se o seu aplicativo tiver muitas imagens, todas elas precisarão ser reexportadas com resolução @3x para ficar bonito na tela do iPhone 6 plus.

Outro ponto estranho é que se você fizer as contas vai ver que 414x736 multiplicados por 3 não dá 1080x1920, mas sim 2208×1242, que é o tamanho das telas no XCode e das imagens de launch screen. O que ocorre nesse caso é que a própria Apple redimensiona tudo de @3x para @2.46x. Ela decidiu fazer isso para ter a tela em 1080p e não termos que exportar imagens com resoluções "quebradas".

Fora isso, os desenvolvedores terão muito trabalho para implementar todas essas telas maiores. Era uma prática comum posicionar os elementos de forma absoluta, agora eles deverão "flutuar" na tela conforme ela aumenta. Para isso será preciso abusar dos conceitos de autolayout, que o Felipe está explicando em sua série de posts sobre formulários no iOS.

Outro fator de dor de cabeça é que, devido à rotação do iPhone 6 plus ser parecida com a do iPad, a Apple resolveu substituir todo o comportamento da rotação, forçando os desenvolvedores a substituírem os códigos que tratavam rotações para usar o novo viewWillTransitionToSize:withTransitionCoordinator:.

Muito trabalho

A conclusão que chegamos é que os desenvolvedores e designers terão muito trabalho para portar os aplicativos para essas novas telas e formas de rotação, principalmente em aplicativos com muitas imagens, como jogos. É possível que alguns aplicativos continuem sem adaptação por um tempo longo, permanecendo escalados, como o da imagem acima. Contudo, para forçar os desenvolvedores a adaptar seus apps, é esperado que a Apple só aceite aplicativos compilados no iOS 8 em breve, assim como fez com o iOS 7.