Casa > P > Por Que É 10 Vezes Mais Difícil Desenvolver No Ios Do Que No Android?

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:

main-qimg-bfbaad73cac41e6c246a96d5c23da098.webp

Faça você UITableViewCell, isto é você View:

main-qimg-155c67863aa540f4778a6a85d625a93a.webp

Faça o seu Controlador, isto é o UIViewController

main-qimg-e25d557607fe582b80fe4c8503d09588.webp

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.

main-qimg-ee313abd5c5ea62c3a9e3f7d94472cf7.webp

Storyboard:

main-qimg-a14bc5d80328735d6749dc813f6dc424.webp

O resultado foi este:

main-qimg-cd0ca47943508ab0f857ce8006ad1384.webp

Agora, eu posso fazer a mesma coisa no Android

A classe Model:

main-qimg-2bfe46165b9f31efb4f04df0d9e12d55.webp

O Adaptador que é usado para fornecer o RecyclerView

main-qimg-27408eaaa1bfbfd8c76baeb61f2b3ccb.webp main-qimg-92f8b89ad43ab3a1c838a2815985c69d.webp

O layout da célula ficou como abaixo:

main-qimg-fa7f0fe2aec9516bfa53ecfb04b18bd0.webp

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 :

main-qimg-4d938c4f93867c5e48b026174a212284.webp

E finalmente, a atividade foi feita como abaixo:

main-qimg-b7838ca4c9c8716e6e09d64a7987148b.webp main-qimg-c5be6cc821d28ac3e62abc5f46e0e5ed.webp

E o xml da Atividade parecia:

main-qimg-f9630b1b3fa44e64ec4a5516ed2a67e8.webp

E o resultado que você obtém é muito parecido, temos o que temos em iOS:

main-qimg-77db335dc3b12ca07c60520e5dcfd834.webp

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:

main-qimg-03b0b993b332f544021b337b987d3e0f.webp

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:

main-qimg-128c68d5a5a183adb9454899c05822ed.webp main-qimg-25756bfc86a8ca81a293422138d08b27.webp main-qimg-596a4951255e0ee1a85ef594be7875a9.webp main-qimg-de71e55ec6075b0d3e4e7bbd68010017.webp main-qimg-420ac2f4b3ae5a35db497825cb3cb3c2.webp

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,

main-qimg-d80d9d7d6ae0e5a90511a2c7f187de3a.webp

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:

main-qimg-49e914c19ef378bd31c74fd6168c59dd.webp

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:

main-qimg-714aff54e54a07ceb31e3dd891b00cea.webp">
  • 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.

De Paddie Buckius

Onde posso encontrar imagens de filmes sem direitos de autor? :: O AdBlock bloqueia anúncios nativos?