App nativo ou híbrido?

Douglas Iacovelli
tech.revelo
Published in
3 min readJan 29, 2020
Photo by NordWood Themes on Unsplash

Você é contratado e a primeira pergunta que recebe é: vai ser nativo ou híbrido?

Começar o aplicativo do zero é o desejo de muitos desenvolvedores e também uma grande responsabilidade. É um momento de tomada de grandes decisões que podem e irão afetar bastante o desenvolvimento do app daquele momento em diante.

E como tomar essas decisões? Dados, feeling?

A melhor resposta para essa pergunta quando não se tem dados é "depende", mas quando já se conhece o contexto da empresa, é mais simples ter argumentos e uma boa resposta. E o contexto da Revelo era este:

  • A Revelo já tem um site bem completo
  • Muitos acessos do site vêm de celulares
  • Ela deseja criar uma experiência ainda melhor que o site responsivo
  • Ela deseja um app e time de longo prazo

Entre Flutter, React Native e nativo, nossa decisão foi: Desenvolvimento Nativo.

Mas por que?

1. Criar uma experiência ainda melhor que o site responsivo foi um dos pontos mais importantes.

Hoje dá pra perceber que os frameworks de desenvolvimento híbrido React Native e Flutter ainda não são tão estáveis e não possuem fluidez de tela tão boa quanto o desenvolvimento nativo.

Além disso, existe também o ponto sobre o guideline de cada plataforma, visto que é necessário fazer adaptações das telas para que se siga os padrões de UI do Material ou Cupertino.

2. A velocidade de desenvolvimento não era uma das prioridades no momento

Ter um site já completo e funcional, que os usuários estão acostumados a acessar faz com que o lançamento do app não seja um bloqueio para o negócio. Assim não há uma necessidade tão forte do lançamento rápido, como é o caso de algumas startups que já nascem mobile-first.

Neste ponto, os frameworks híbridos se saem muito melhor que o nativo, afinal é uma base de código só para criar e manter. E além disso as velocidades de desenvolvimento são por padrão maiores.

Por outro lado, o desenvolvimento nativo, apesar de mais lento, já é muito mais estável, contando com padrões de arquitetura e ferramentas bem difundidas e testadas por toda a comunidade. São mais anos de experiência, testes e correções.

Vale lembrar também que o desenvolvimento nativo, por ser mais lento e exigir um ou mais desenvolvedores/desenvolvedoras de cada plataforma, é também a opção mais cara para a empresa. Sendo assim é possível que para startups que estão começando e precisam validar o negócio com poucos recursos a opção híbrida faça mais sentido.

3. O quão difícil vai ser contratar pessoas para essa stack de desenvolvimento?

O gráfico mostra a quantidade de candidatos na plataforma Revelo em porcentagem que sabe cada um dos frameworks citados acima.

Pensar isso desde o início é importante para saber se vai ser possível encontrar pessoas que possam ajudar o app crescer e dar manutenção.

O Flutter sai perdendo nesse ponto, pois ainda existe muita incerteza com relação ao framework e ele ainda é pouco usado com relação às outras tecnologias. Além disso, Dart também não é uma linguagem muito conhecida.

Já o React Native tem alguma vantagem nessa questão, visto que ele é feito em Javascript e que muitos desenvolvedores Full-stack e Front-end têm conhecimento em React e Javascript. Apesar disso, o número de desenvolvedores especializados em React Native também é baixo.

Por fim, o desenvolvimento nativo é aquele em que encontramos a maior quantidade de profissionais qualificados, como mostrado no gráfico acima.

E o time ainda considera o desenvolvimento híbrido?

Apesar de o desenvolvimento nativo ter sido a escolha principal para o aplicativo, o híbrido ainda é uma opção interessante para testar funcionalidades e validar hipóteses de negócio de uma maneira mais rápida.

Eventualmente quando os frameworks híbridos ganharem mais força e tiverem resultados tão bons quanto o desenvolvimento nativo, pode ser que faça sentido começar a fazer features tanto para Android quanto para iOS desta maneira. Se isso acontecer, você saberá por aqui!

E aí na sua empresa, qual foi a decisão que tomaram? :)

--

--

Douglas Iacovelli
tech.revelo

Engineering manager who loves building mobile apps and sharing knowledge. If you want to know part of my learnings, follow me :)