Android vs iOS: qual plataforma é melhor para desenvolvedores
Makradar De Tecnologia / / December 19, 2019
Android vs iOS. eterno tema para batalhas online, que já tem decentemente todos podnadoest. Não tenha pressa para passar o texto do artigo e imediatamente passar para a efusão do seu parecer correto apenas nos comentários. Hoje vamos falar novamente sobre qual sistema é melhor, mas de uma maneira diferente.
Desenvolvedores - aqueles que criam uma parte fundamental de qualquer plataforma, os aplicativos do IE. É a qualidade das ferramentas de desenvolvimento, ele fornece uma plataforma depende do resultado final. Assim, sob qual sistema é melhor para escrever? Responda a esta pergunta um desenvolvedor de aplicativos experiente, que teve que ser iluminado na App Store e no Google Play.
A escolha da plataforma - um problema fundamental para qualquer novo projeto. Android ou iOS? Dada a recente notícia de que Android capturou com sucesso 80% do mercado, a escolha se torna ainda mais difícil. Não importa o que os gerentes e outros não muito conhecedor com os aspectos técnicos da questão das pessoas pensa sobre isso. Outra coisa - os desenvolvedores.
Qual é a sua opinião? A vantagem desta ou daquela plataforma está directamente dependente da sua capacidade de tornar sua vida melhor.
E por "eles" Quero dizer "nosso". Além das atividades do autor no TechCrunch, estou desenvolvendo em HappyFunCorp. Além disso, não há muito tempo, eu criei um dueto opensorsnyh aplicações através de seu projeto de estimação. São essas aplicações que eu uso para comparação.
Para o registro: Eu já tive que escrever algumas Android e iOS aplicações, tanto para uso pessoal e para o trabalho. Em particular, eu escrevi cliente móvel para o seu agregador de notícias ScanvineQue recolhe anormalmente histórias populares de mídia social. O código-fonte do meu aplicativo podem ser encontradas no Github (andróide | iOS), E os próprios aplicativos estão disponíveis em Google Play e app Store.
Bem, deixe a batalha começar.
quarta-feira
Você ainda pode escrever código em um editor de texto, e muitos estão fazendo até agora, mas em termos de desempenho é mais útil usar o IDE (Integrated Development Environment - IDE).
No caso da Apple, temos Xcode, e trabalhar neste ambiente - prazer. É flexível, rápido, poderoso e capaz de ajudar, sem ser excessivamente intrusivo. E ela está ficando melhor, apesar das medidas difíceis e paranóicos tomadas pela Apple para manter o controle total sobre os aplicativos iOS e dispositivos. O depurador é executado sem problemas, e simulação - rápido e responsivo.
E sobre Android? Oh, Android. No momento, o ambiente de desenvolvimento real sob ele é o Eclipse, um punhado de Android personalizado plug-ins, e obscenamente ruim. Lento, desajeitado, ilógico, muitas vezes francamente incompreensível, mal concebido, muito complexo - uma verdadeira bagunça. Sua depurador é tão inconveniente que a maioria do tempo eu passo em mexer com os registros, enquanto que com o Xcode em minha posse um verdadeiro erros ferramenta de caçadores. Não se esqueça sobre o emulador Android, que primeiro leva alguns minutos para download, e então ele não pôde se conectar ao ADB.
Para ser justo dizer que o Google está ciente desse problema e estão trabalhando em um novo Android Studio IDE:
Atualmente, Estúdio Android está disponível como uma prévia. Algumas funções não podem constituir, ou não são implementadas, que pode causar erros. Se o uso do produto inacabado está causando o desconforto, então você pode baixar e continuar a usar o ADT Bundle (plugin Eclipse com ADT).
É bom ver que eles estão trabalhando sobre o problema, mas ainda surpreendendo - após 4 anos e meio após a compra do meu primeiro Android-like confusão ainda é o limite da perfeição, que foi capaz de alcançar um ambiente de desenvolvimento Android.
Aqui bate iOS, incondicionalmente.
Configurando
Sob o verniz de Xcode e Objective-C estão escondidos horrores de Lovecraft da era dos anos setenta programação. brincadeira só, eu estou brincando... mas ainda. Macros e arquivos de cabeçalho, projetos, objetivos, esquema e montagem de configuração e aterrorizantes, lista assustadora de parâmetros de montagem. e mais descobertas incríveis no estilo de "Oh, seu código de terceiros não suporta a ARC? Basta adicionar a bandeira -fno-objc de arco ». Apenas? Não!
No Android você tem um arquivo de manifesto, e Eclipse são geralmente completamente reconstrói o aplicativo cada vez que você mantenha um arquivo. Gostaria maior clareza quando, por exemplo, você recebe uma mensagem de erro devido ao fato de que configurar corretamente a regra, mas é um defeito menor. Configurando aplicativo Android é simples e elegante.
Aqui bate Android.
design de interface
Parece que a Apple é definitivamente sair vitorioso. Com o seu design você pode facilmente e rapidamente construir uma interface simples e agradável. O problema é que quanto mais eu trabalhava com o designer, menos eu gostei. Este é outro momento em que você abrir a complexidade de configuração - ferramenta é ideal para a criação de coisas simples, mas com o desenvolvimento de simples aplicação coisas de repente se tornar complicado, e eu realmente não gosto desses múltiplo Storyboards, que a Apple adicionou cerca de um ano atrás.
No Android, a teoria é fornecido ferramentas de visualização comparáveis, mas na prática você escreve arquivos XMLContendo instruções de desenho que em um certo leva sorte para uma exibição correta da aplicação em toda a variedade de formatos de telas de dispositivos Android. A Apple está se movendo da mesma maneira, e sua layout automático claramente afiada para telas variações de expansão futura em dispositivos iOS.
Ao mesmo tempo, o Android oferece aos desenvolvedores conjuntos de íconesConsiderando os desenvolvedores de iOS são forçados a recorrer a serviços de terceirosOu desenhar seus próprios ícones.
Nesta rodada o vencedor de escolher mais difícil, mas vou dar iOS preferência por duas razões. Em primeiro lugar, ainda é muito mais fácil - apenas 3 tamanho da tela (incluindo o iPad) e relação de aspecto formato 2. diversidade Android a este respeito acrescenta complexidade. O segundo ponto é o apelo do padrão de elementos visuais (menus pop-up, mensagens e assim por diante). Em iOS tudo parece muito mais atraente.
Aqui bate iOS.
idioma
Os aplicativos do Android são escritos em Java, iOS - em Objective-C. Há exceções, como o XamarinMas na maioria dos casos, uma tal divisão é válido.
Eu aprendi a escrever em Java, e em primeiro lugar não é particularmente pensou em Objective-C, em grande parte devido à sua grosseria.
A string como:
Corda s2 = s1.replace ( "ABC", "XYZ");
Se vira para ele em:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Mas no processo de descobrir a língua que eu realmente gostei. Ele é melhor e mais limpo do que Java.
Neste caso, também, há prós Java. Por exemplo, um simples armadilha e rastreamento de erros. Nos últimos anos, o Android tem sido outra vantagem muito significativa em termos de recolha de resíduos, ou seja, purificação automática de memória de objetos desnecessários, mas agora iOS sabe a mesma coisa, e é realmente uma vantagem em nada. Dado o fato de que a última vitória vai para iOS aqui.
Aqui bate iOS.
API
Em Android e iOS têm uma enorme biblioteca de software disponível para os desenvolvedores, e de um modo geral, eles são bastante semelhantes: API para operação das funções de telefonia e comunicações, a API para acesso à rede, o arsenal de espectadores, incluindo poderosa WebView - praticamente um clone do total browser.
A maioria do trabalho é feito com os controladores, e geral iOS ViewController é o equivalente de Atividade Android.
Que realmente não tem Android, porque é um análogo da estrutura Core Data completa. Em geral, o sistema é mais limpo e melhor concebido. Por exemplo, basta comparar estesdois classe em iOS, que a maioria do trabalho executar na aplicação, com estestrêsequivalente classes em Android. No final, eu prefiro muito mais para trabalhar com iOS CollectionViewControllerDo que com Android ListAdapter.
Outra métrica importante: o número de linhas de código. Minha versão da aplicação para ambas as plataformas são praticamente idênticos em características e funções, mas em iOS para implementá-las Levou o meu 1596 linhas de código, incluindo arquivos de cabeçalho e criar a versão Android com as mesmas funções necessárias 2109 linhas. A diferença é de 32%.
Aqui bate iOS.
Internet
Hoje, a grande maioria das aplicações são mais guias para a Internet, em vez de programas stand-alone. Este é um ponto muito importante, e deve ser considerada separadamente. No arsenal de ambos os sistemas têm uma série de ferramentas e API para a execução da cooperação com a Rede. Também ambas as plataformas implementar praticamente de pleno direito do navegador, que pode ser embutido no aplicativo como você gosta e onde quer que vá.
As ligações devem ser executados em segundo plano e não interfere com o próprio aplicativo. Para implementar multithreading no Android usado AsyncTask. Ele funciona muito bem e permite fácil determinarSe o usuário está na web no momento. iOS também oferece capacidades semelhantes, mas eles são implementados em um nível relativamente baixo e não atendem as necessidades dos desenvolvedores.
No entanto, existem muitas bibliotecas de terceiros, de fonte aberta, e eles tornam a vida muito mais fácil. Eu costumava AFNetworking, e ele funciona muito bem como é referido no anúncio.
Aqui bate o padrão Android e iOS usando bibliotecas de terceiros.
Sharing
Como é fácil você compartilhar a qualquer um a aplicação particular no Facebook, Twitter, Evernote, e outros serviços? Parece que esta será a primeira rodada em que Android vai ganhar 100% knockout: tem um poderoso sistema de interação entre aplicativos chamados Intenções e, em geral, o Android é muito mais fiel ao pedido e a transmissão de dados entre aplicações.
Em geral, a Apple tem apanhados significativamente concorrente em oportunidades sharinga. Você não pode tomar minha palavra, verifique o código de função "história Share" na Scanvine em andróide e iOS. A única razão pela qual código iOS mais - a presença nele de um rastreamento mais flexível do Google Analytics, e não no Android.
Em seguida, desenhe.
fragmentação
Então eu não preciso dizer muito. No entanto, o Google está tentando usar estratégia de desfragmentação interessanteDe modo que em pouco tempo o item será re-examinado.
Aqui bate iOS.
a publicação do pedido
Publicação de aplicativos do Android é extremamente simples. Ferramenta em Eclipse permite que você construa rapidamente a aplicação, e em suas mãos já tem um arquivo APK. Submetê-lo a um e-mail, postar online ou download no Google Play, tornando-o disponível em todo (quase) o mundo em apenas uma hora. Em seguida, torna-se possível monitorar as estatísticas de instalações e crash-reporta-se a uma linha específica de código, devido a que a aplicação falha. Se necessário, você pode atualizar a rolar para fora imediatamente.
Publicação na App Store - é um pesadelo. Meu amigo aconselha a alocar ao desenvolvimento do calendário pelo menos um dia na guerra com certificados e perfis de distribuição. Não importa quantas vezes você já fez isso antes, e quanto mais fácil é tentar fazer o processo da próxima versão do Xcode - você ainda vai haver muitos problemas. testes de aplicativos se torna ainda mais de um problema, a menos que você use TestFlight. Adicione a isso o iTunes Connect, que não vai para qualquer comparação com o Google Play Developer Console.
Aqui bate Android, incondicionalmente.
vencedor
Torna-se IOS, além disso com uma certa margem. Nós temos as vantagens do Android, mas em geral para escrever um aplicativo bom para iOS ainda é muito mais fácil do que sob Android. Adicione a isso o fato de que os usuários iOS mais de solvência, e você terá uma resposta para a pergunta de qual plataforma deve ser uma prioridade para uma partida. Provavelmente, a diferença será reduzida após o lançamento do Android Studio, permitindo, assim, para resolver alguns problemas... mas não todos.
By the way, a minha principal telefone - Nexus 4, e estou muito satisfeito.
(via)