Ir para o conteúdo

Uma dúvida muito grande entre os programadores que querem entrar no nicho da mobilidade é com qual plataforma começar. Muitos brasileiros decidem começar com Android por não precisar de um Mac. Ou até mesmo para poder trabalhar com Java, que é uma linguagem que a maioria já teve pelo menos um pequeno contato. A ideia é mostrar quais as principais diferenças na hora do desenvolvimento.

1. Público

Certamente, o primeiro passo do desenvolvimento de um produto é entender para quem você vai produzir. No desenvolvimento de aplicativos a história é a mesma. Mas, no geral, nosso público é bem divido entre os 2 principais sistemas operacionais.

Foto: https://deviceatlas.com/blog/android-v-ios-market-share#brazil

Como podemos ver na imagem, no Brasil, Android ainda tem uma ampla vantagem na questão de número de usuários. Esse número varia no mundo todo, mas no geral a proporção é bem parecida, com exceção da América do Norte,.

No iOS, em geral, o público tende a possuir poder aquisitivo maior. E é um público muito mais fiel à marca do que no Android.

2. Linguagem

Por alguns anos, as únicas opções possíveis  para Android e iOS foram, respectivamente, Java e Objective-C.

Em 2014, a Apple anunciou o Swift, que veio para substituir o já obsoleto Objective-C. Com uma “early adoption” gigantesca, em pouco tempo o Swift praticamente acabou com os projetos na linguagem antiga, restando praticamente apenas projetos legados nessa linguagem. 

Projetos novos hoje, em sua maioria são feitos na linguagem nova. Que é mais rápida, mais atualizada, e com uma curva de aprendizado muito menor do que a antiga.

Seguindo essa tendência, em 2017, a Google anunciou que daria suporte no desenvolvimento de Android para Kotlin, na tentativa de substituir Java. Assim como o Swift, Kotlin foi muito bem recebido pelos desenvolvedores. É uma linguagem nova, controlada pela JetBrains, que também roda em uma JVM. Mas deixa seu código muito mais limpo, e muito mais legível. Além de ser muito similar com Swift, deixando o GAP do desenvolvimento das duas plataformas mais próximo.

3. IDEs

Para começar a falar sobre isso, o primeiro ponto a citar é que não temos uma IDE brilhante em nenhuma das plataformas. O Xcode (iOS) possuí inúmeros bugs, e o Android Studio (Android, óbvio) é extremamente pesado, o que torna o desenvolvimento improdutivo em máquinas mais lentas.

O Xcode, gerenciado pela própria Apple, é a principal escolha para iOS. Embora a JetBrains tenha lançado o AppCode, é muito difícil competir com o Xcode, mesmo tendo diversos bugs conhecidos. Principalmente na questão de cache, você se pegará diversas vezes tendo que limpar o cache do seu projeto.

O Android Studio, também gerenciado pela JetBrains, com o Google trabalhando como consultor, é extremamente pesado. Tem melhorado muito com o tempo, mas ainda assim eu recomendaria 16GB de RAM para seu uso. Existem outras opções como o Eclipse, mas assim como o Xcode, o Android Studio é utilizado em mais de 90% dos projetos submetidos para as Lojas.

4. Distribuição nas lojas

Como a maioria dos usuários já sabe, a Apple costuma ser muito mais criteriosa em relação a diversos assuntos. Isso inclui a aceitação dos aplicativos publicados nas lojas.

Na App Store, as avaliações são muito mais lentas do que na concorrente. Embora tenha melhorado com o tempo, ainda é preciso esperar alguns dias pela avaliação. E ainda sim, é muito mais comum retornar algum erro. Muitas vezes acaba sendo “chata” em alguns assuntos. Por exemplo, questionando o fato de você pedir algum dado do usuário que ela ache desnecessário. Claro que toda essa burocracia acaba deixando o sistema operacional mais seguro de ser usado como um todo.

Já na Google Play, muitas vezes em questão de 3 ou 4 horas seu app já está aprovado e pronto para publicação. Muito menos criteriosa e com um processo mais simples de ser realizado, o que tem suas vantagens e desvantagens. Como dito no parágrafo anterior, no iOS os apps são bem mais seguros. Por conta disso, é possível ver aplicativos sem utilidade nenhuma na loja da Google.

5. Monetização

Foto: https://www.flaticon.com/

Como temos dois tipos de públicos diferentes, é esperado que a estratégia de monetização não seja a mesma nas duas plataformas.

No iOS, os usuários estão muito menos abertos a banners e propagandas durante o uso do app. Geralmente os desenvolvedores optam por fazer apps pagos, ou até mesmo algo “freemium”, em que você tem algumas funcionalidades de graça e paga pelo aplicativo completo.

Já no Android, dificilmente você verá algum aplicativo pago na loja. Até mesmo porque a maioria dos usuários sequer tem cartão de crédito cadastrado. Nessa plataforma, os usuários são muito mais abertos para propaganda durante o uso.

Lembrando que nas 2 lojas, a taxa cobrada pela venda de aplicativos é de 30%.

6. Design Guidelines

Se nós temos usuários diferentes, em dispositivos diferentes, em sistemas operacionais diferentes, fica fácil dizer que teríamos diferentes guidelines de design.

Não é uma regra seguir as diretrizes de layout, é claro. É somente uma recomendação. Tanto que diversas vezes você irá se deparar com componentes do Material Design em aplicativos iOS, e componentes da Human Interface Guideline em aplicativos Android.

Foto: https://material.io/design/

Componentes como FloatingActionButton ou a cor da status bar pouco mais escura que a barra de navegação, são características do Material Design. Esses componentes se aplicam tanto em aplicativos quanto em sites. É muito comum ver esses elementos aplicados em aplicativos do Google, inclusive em iOS.

Foto: https://developer.apple.com/design/human-interface-guidelines/

No caso da Human Interface Guideline da Apple, é muito comum você se deparar com diferentes gestures, barra de navegação na parte inferior da tela e etc. 

É comum ver esses elementos aplicados em apps nativos do iOS. O melhor exemplo das diferenças de Guidelines, na minha opinião, é o WhatsApp. Que faz a maior parte do app com componentes nativos.

Foto: https://apps.apple.com/us/app/whatsapp-messenger/id310633997
Foto: https://play.google.com/store/apps/details?id=com.whatsapp&hl=en&gl=US

Neste caso, fica bem claro ver algumas das principais diferenças entre as duas Guidelines.

Tirando a parte da programação em si, estas são as diferenças que achei mais marcantes durante esses anos de desenvolvimento.


Referências:

Design

Human Interface Guidelines

App Samurai Mobile Platform

Android V iOS market share 2019

 

Outras publicações