Nativo ou híbrido: Qual solução adotar?
Publicado em 20/01/2017 às 1h25, por: Rodrigo Neves
A utilização de aplicativos móveis (mobile apps) cresce a cada dia. Cada vez mais as pessoas estão conectadas e o smartphone já passa a virar uma extensão do corpo humano. Usamos aplicativos para tudo: nos comunicarmos, nos divertir, pesquisar, comprar e até mesmo paquerar. Com base nisto, desenvolver um aplicativo hoje em dia é um ótimo negócio, porém, qual solução adotar? Aplicativo nativo ou híbrido?
É melhor um app nativo ou híbrido?
A primeira coisa que temos que começar a entender é que nenhuma máxima sempre é verdadeira. Não é porque um aplicativo é nativo ou híbrido que ele é sempre melhor ou pior. É necessário entender o que a nossa aplicação faz, o que esperamos dela e até onde ela pode chegar, e, então decidir qual melhor modelo de tecnologia adotar.
Exitem prós e contras para ambas as formas de desenvolvimento (nativa ou híbrida) e neste artigo vou tentar esclarecer alguns mitos e apontar algumas características importantes sobre cada tecnologia.
Além de nativo ou híbrido temos também os web apps. Vamos agora entender a diferença de cada um deles.
Aplicativos nativos
Os aplicativos nativos podem ser instalados nos dispositivos mobile (smartphones e tablets). Esta instalação na maioria dos casos é feita utilizando o download do app por meio da app store correspondente. No caso do IOS a Apple Store e no caso do Android a Google Play.
O seu desenvolvimento é baseado nas linguagens nativas de cada plataforma juntamente com um ou mais SDKs. SDK é a sigla de Software Development Kit, ou seja, Kit de Desenvolvimento de Software ou Kit de Desenvolvimento de Aplicativos no nosso caso.
As linguagens nativas de cada plataforma são:
- iOS poderá utiliza Objective C ou Swift;
- Android utiliza o JAVA; e
- Windows Phone utiliza C#;
Possuem uma grande facilidade no acesso às funcionalidades do sistema operacional do aparelho, tais como GPS, câmera, acelerômetro, entre outras.
Aplicativos híbridos
Assim como os aplicativos nativos, os aplicativos híbridos também são instalados nos dispositivos mobile e podem ser baixados de uma app store.
A grande diferença para os nativos é que os híbridos são feitos utilizando linguagens e tecnologias de web e utilizam frameworks (como por exemplo Cordova) para serem convertidos para a linguagem nativa do aparelho.
Para acessar os recursos do sistema operacionak , os frameworks utilizam de bibliotecas e também podem utilizar SDKs.
As linguagens de programação (ou marcação) comumente utilizadas nos aplicativos híbridos são:
- HTML5;
- CSS3 – muitas vezes utilizando como base Bootstrap e/ou similares;
- Javascript – muitas vezes utilizado juntamente com outros frameworks front-end, tais como Jquery Mobile e Angule;
Web apps
Os web apps nada mais são que páginas de internet que podem ser acessadas por qualquer navegador. Não são instaladas do dispositivo e por isto não possuem recursos para acesso as funcionalidades do sistema operacional.
Um web app restringe-se a ter um design semelhante a de um aplicativo para aumentar a experiência de uso dos usuários.
Qual tipo de aplicativo devo escolher, nativo ou híbrido?
Abaixo segue uma lista de perguntas que devem ser respondidas para entender qual o melhor tipo de solução adotar:
- Qual prazo você possui para desenvolver o seu aplicativo?
- Você possui orçamento disponível para investir no desenvolvido em cada plataforma?
- Qual será a periodicidade de atualização do seu aplicativo?
- Este aplicativo é um MVP? MVP é a sigla para Minimum Viable Product, isto é, Produto Mínimo Viável.
- Você necessita que o usuário possua a melhor experiência de uso possível?
- Você utilizará muitos recursos de sistema operacional?Você quer que seu usuário tenha a melhor experiência possível?
Você tendo estas respostas, poderá olhar na tabela comparativa logo abaixo e definir qual solução seria a mais adequada para o seu aplicativo.
Tabela comparativa
Nativo |
Híbrido |
HTML5 (mobile web) | |
Conhecimentos necessários para Android e iOS |
Objective-C, iOS SDK, Java, Android SDK |
HTML, CSS, Javascript, Mobile Development Framework |
HTML, CSS, Javascript |
Distribuição |
App Store |
App Store |
Web |
Velocidade de desenvolvimento |
Baixa |
Moderada |
Rápida |
Custo de desenvolvimento |
Alto |
Moderado |
Baixo |
Custo de manutenção |
Alto |
Moderado |
Baixo |
Performance gráfica |
Alta |
Moderada |
Moderada |
Performance do aplicativo |
Rápida |
Moderada |
Moderada |
Acesso às funcionalidades do dispositivo | |||
Câmera |
Sim |
Sim |
Sim |
Notificações Push |
Sim |
Sim |
Não |
Contatos |
Sim |
Sim |
Não |
Acesso Offline |
Sim |
Sim |
Sim |
Geolocalização |
Sim |
Sim |
Sim |
Upload de arquivos |
Sim |
Sim |
Sim |
Giroscópio |
Sim |
Sim |
Sim |
Acelerômetro |
Sim |
Sim |
Sim |
Navegação swipe |
Sim |
Sim |
Sim |
Microfone |
Sim |
Sim |
Sim |
Indicado para |
Jogos ou aplicativos onde o foco do usuário está relacionado a performance gráfica e uma experiência de uso amplificada. |
Aplicativos que não exigem uma performance extrema mas que necessitam de acessos aos recursos do dispositivo. |
Aplicativos que não necessitam de uso excessivo de recursos do dispositivo. |
A tabela acima foi retirada e traduzida do site MRC Productivity.
Principais considerações sobre um app nativo ou híbrido
Dentre tudo o que falamos, tem 2 pontos principais que sempre devem ser levados em consideração na hora da decisão: Prazo e Custo.
Prazo
- Aplicativo Nativo: O tempo de desenvolvimento é mais extenso pelo fato de ter que ser criado uma versão de aplicativo para cada plataforma.
- Aplicativo Híbrido: O tempo de desenvolvimento é mais curto pelo fato de você desenvolver em uma única linguagem e compilar para outras.
Custo
- Aplicativo Nativo: Pelo fato do desenvolvimento ser multiplicado pela quantidade de plataformas, o aplicativo acaba tendo seu custo elevado quase ao dobro do custo de um aplicativo híbrido além de ter uma curva de aprendizado muito maior por utilizar linguagens distintas.
- Aplicativo Híbrido: O tempo é muito mais curto pois a linguagem utilizada é mais familiar aos profissionais de web e o fato de desenvolver em uma linguagem específica que compilará para as outras reduz o custo de produção quase pela metade.
.comentários