App nativo ou híbrido?
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?
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? :)