Por que é 10 vezes mais difícil desenvolver no iOS do que no Android?
Se alguém te disse isso, obviamente mentiu.Por que eu diria tal coisa? Tanto o Android como o iOS, no que me diz respeito, têm exactamente a mesma complexidade e são muito semelhantes em muitos aspectos. Você não tem que se preocupar com um sendo 10x (altamente exagerado) vezes mais difícil do que o outro.
Eu demonstraria isso criando um UITableView no iOS e um RecyclerView no Android. Eu escolhi estes para a demonstração, pois são usados em quase todos os aplicativos de alguma forma ou no outro.
>p>UITableView no iOS:Faça sua classe de Modelo:
Faça você UITableViewCell, isto é você View:
Faça o seu Controlador, isto é o UIViewController
Vá buscar os dados de um servidor, usei o Firebase para isto, e escrevi o código na classe Controller. Eu poderia ter usado uma classe diferente para isto, mas para esta pequena visualização, isto também funciona.
Storyboard:
O resultado foi este:
Agora, eu posso fazer a mesma coisa no Android
A classe Model:
O Adaptador que é usado para fornecer o RecyclerView
O layout da célula ficou como abaixo:
Como você deve ter notado (se você realmente leu o código), há uma referência a uma classe chamada Commons. É uma classe que eu uso para fazer algumas tarefas básicas . Para este projeto, o Commons parecia :
E finalmente, a atividade foi feita como abaixo:
E o xml da Atividade parecia:
E o resultado que você obtém é muito parecido, temos o que temos em iOS:
Não se trata apenas do resultado, a complexidade da implementação está praticamente no mesmo nível e não há razão para culpar que um é 10 vezes mais difícil do que o outro. Não faz sentido fazer uma reclamação desse tipo.
E agora, como a questão é sobre a dificuldade em implementar o AutoLayout (que na verdade é bastante fácil), vou implementar dois layouts bastante difíceis tanto no Android como no iOS.
É assim que as restrições ficam no Storyboard:
Não afirmo que esta seja uma forma favorável de implementar o Auto Layout numa aplicação de produção onde o conteúdo é muito dinâmico. A abordagem utilizada para lidar com tal layout é totalmente diferente.
Este é o layout XML no Android:
E a saída final dos layouts do Android e do iOS é a seguinte:
Então, se você acredita que há um problema com o desenvolvimento do iOS e do AutoLayout em particular, eu posso alegremente informá-lo que você está errado.
Eu também gostaria de abordar algo que Valerio Cietto disse na secção de comentários.
Densidade de pixels independentes não funciona realmente na forma como o Google o anuncia para funcionar. Ele ainda é uma medida independente da densidade e torna a criação do layout no Android muito mais fácil.
Mas,
Bambos os FrameLayouts de cor cinza escuro são de 300dp de largura e 50dp de altura. Sim, este é um caso extremo, mas ainda há diferenças sutis se você der a largura e a altura de uma vista em medidas de dp. também não é assim que o Google quer que você as use. Admito que ter medidas de dp para trabalhar torna a tarefa muito mais simples quando se trata de desenhos de ícones do sistema e muitas outras coisas.
sobre como os eventos de toque são tratados no iOS e Android:
iOS:
Os três métodos usados aqui são,
- >li>IBAction usando drag and drop para o Botão Um>li>Using addTarget para o Botão Dois>li>Using a TapGestureRecognizer para a Vista Rosa.
where as Android uses:
">- Adicionando um OnClickListener para o seu TexView,Button, etc
- Adicionando um onClick ao seu View/Button,etc no XML e implementando o mesmo método que você especificou no XML, na Atividade Pai. Isto usa uma View como o parâmetro que é a classe pai de tudo que você pode usar no XML.
Yet, eu não vejo uma mudança drástica em nenhum destes.
Disclaimer: Todas as imagens (não incluindo os códigos) usadas nesta resposta são imagens de domínio público do pixabay.com, exceto a imagem de Hyderabad. Não sei a quem pertence essa imagem.
Todos os códigos usados na resposta acima são escritos por mim para responder a esta pergunta.
Artigos semelhantes
- Comparação de custos de desenvolvimento de jogos: iOS, Android, DS, PSP. Por que é mais barato desenvolver no iOS?
- Ao desenvolver Pokemon em Pokemon Go, é melhor dar-lhes poder antes ou depois de os desenvolver e quantas vezes devo dar-lhes poder?
- É difícil desenvolver com sucesso um aplicativo Android ou iOS e ganhar dinheiro com ele?
- Por que é que às vezes me olho para o espelho e pareço atraente, e depois às vezes fico super feio?