Ao optar por desenvolver um app para uma plataforma móvel, ou mesmo portar para outro sistema um app existente, um dos elementos cruciais nas decisões técnicas e administrativas que se seguem é em qual versão do sistema operacional se fixar. Afinal, cada nova versão tem novos recursos e APIs, mas se a mais recente e cheia de vantagens tiver sido instalada por uma parcela relativamente pequena dos usuários, pode fazer sentido restringir-se aos recursos de uma versão anterior e que seja mais popular.
No caso do desenvolvimento para Android, essa análise frequentemente passa pela palavra fragmentação, que vem carregada de significados negativos e talvez até mereça ser substituída por outra que não traga as mesmas acepções, mas permita uma referência objetiva à questão da coexistência simultânea de versões anteriores do sistema que permanecem em evidência na base instalada.
Independentemente do nome que se adote, o quadro que apresenta aos desenvolvedores a divisão entre as versões do Android em atividade é informado pelo Google periodicamente, como no gráfico a seguir, divulgado há poucas semanas:
Os dados são coletados ao longo de duas semanas diretamente onde mais interessam à maioria dos desenvolvedores: nas estatísticas dos aparelhos que acessam o Google Play, sucessor do Android Market, local em que os apps são oferecidos aos usuários da plataforma.
No que diz respeito à disponibilidade imediata, o gráfico descreve uma situação fácil de perceber: as versões mais presentes são o Android 2.3.3, lançado em fevereiro de 2011 e hoje presente em 61,5% dos dispositivos, e o Android 2.2, lançado em maio de 2010 e ainda ativo em 25,3% dos aparelhos que acessam o serviço.
Os outros 13,2% se dividem entre todas as demais versões, sendo que a recente versão 4, lançada em outubro de 2011, está em apenas 1,6% do total.
Trocando em míudos e em uma análise imediata, permitir hoje que um app dependa de um recurso ou API que esteja presente apenas em uma versão do Android mais recente do que as majoritárias significa restringir bastante o tamanho do mercado potencial de aparelhos compatíveis com o seu produto.
Felizmente isso não significa um desestímulo completo ao suporte a versões recentes: há a opção de exigir como requisito mínimo as versões antigas, mais populares, e suportar os recursos das versões recentes como opcionais, sem deixar de garantir a compatibilidade.
Vale lembrar que essa dinâmica em que versões permanecem as majoritárias mesmo após 1 ou 2 anos desde seu lançamento não é o único existente entre as plataformas móveis: observações efetuadas por desenvolvedores de apps populares no iOS (como o deste exemplo), a partir dos acessos recebidos via App Store, indicam que nesse caso a migração do conjunto majoritário de usuários para as versões mais recentes ocorre de maneira mais rápida – no exemplo mencionado, 80% dos acessos deram-se pela versão 5.1 em apenas 2 semanas após o seu lançamento (38% já nos primeiros 5 dias).
Os números entre as duas plataformas não são diretamente comparáveis, porque um é de uma amostra oficial ampla, e o outro é de uma amostra restrita a apenas um app popular, mas a observação de que a atualização majoritária no iOS ocorre mais rapidamente pode ser encontrada em mais fontes (como esta pesquisa apontando que mais de 30% dos aparelhos compatíveis fizeram o upgrade para o iOS 5 menos de uma semana após seu lançamento), e nunca a vi ser disputada.
A razão de a situação do iOS quanto à rápida disponibilidade de APIs mais recentes e homogêneas nos aparelhos dos usuários ser mencionada como contraste em um artigo sobre as versões do Android (que opera em circunstâncias completamente distintas) é que o Google não ignora a questão, identificada por muitos como um diferencial competitivo.
Desde o ano passado vêm sendo apresentadas propostas no sentido de disponibilizar mais rapidamente aos usuários as atualizações do sistema, e em algum momento certamente os frutos disso serão colhidos pelos desenvolvedores Android que investirem em se capacitar no desenvolvimento para as versões correntes do Android, e não apenas nas versões “clássicas”.
Afinal, como sintetizou um diretor de engenharia do projeto Android no Google em entrevista recente, “O uso de APIs mais modernas e de aparelhos com capacidades gráficas mais poderosas significam inovação. Não podemos reduzir a velocidade da inovação, já que o Android criou uma onda de evolução. E, se o ecossistema está acelerado, não queremos segurar essa inovação na indústria. Meio claro que o aparelho anunciado ontem vai ter mais inovações que aquele lançado um ano atrás. O que acontece é o mesmo processo de inovação da indústria de carros ou de PCs.”