Por que o Instagram no Android é tão ruim, mal otimizado em comparação com a versão iOS?
É porque o Android ainda depende do JAVA para suas aplicações e o JAVA como linguagem de programação tem suas limitações devido a sua natureza intensiva em recursos. A razão porque consome tantos recursos é que as aplicações escritas em JAVA correm no topo de uma máquina virtual JAVA. Então quando você executa uma aplicação Android você não apenas executa nossa aplicação no seu sistema operacional, o que você essencialmente tem é uma VM baseada em JAVA rodando sobre seu SO e a aplicação rodando sobre essa VM.
iOS baseada em JAVA por outro lado tem seu próprio runtime nativo e as aplicações escritas para ele são escritas em Swift que é baseado em Objective-C. Não há nenhuma camada de máquina virtual entre o sistema e o aplicativo, quando você executa um aplicativo ele é executado no sistema operacional utilizando bibliotecas nativas de tempo de execução, então há substancialmente menos sobrecarga de recursos.
A diferença não é apenas entre Android e iOS, compare o aplicativo Instagram para Android com o cliente UWP Instagram não-oficial para Windows 10 Mobile (e PC) chamado Winsta e você vai perceber que mesmo esse cliente não-oficial é mais rápido e otimizado do que o aplicativo Instagram para Android e a razão é a mesma. No caso do Windows 10 Mobile o aplicativo chamado Winsta é escrito em código nativo C++.
As razões pelas quais o Google não desenvolveu sua própria linguagem de programação ou porque não estão mudando para algo como QT ou C++, ninguém sabe. Eles só querem manter o JAVA apesar de todas as suas falhas.
Artigos semelhantes
- Quais são os prós e os contras de actualizar o iPhone SE de uma versão iOS pré-carregada para a versão mais recente do iOS?
- Quais são as chances de um negócio de Spider Solitaire ser vencido por ternos 1/2/4, assumindo o jogo otimizado?
- Comparação de custos de desenvolvimento de jogos: iOS, Android, DS, PSP. Por que é mais barato desenvolver no iOS?
- Devo considerar portar o meu aplicativo iOS para o Android? Qual é o bom e o ruim de fazer isso?