Aplicativos e Desenvolvimento Mobile Híbrido X Nativo

Aplicativos e Desenvolvimento Mobile Híbrido X Nativo

Olá Pessoal, tudo bem com vocês?

Nesse artigo , busco apresentar que são as apps híbridas, quais as vantagens e desvantagens que elas possuem em relação as apps nativas e quais caminhos podemos seguir com esse desenvolvimento.

Desde 2007, os apps (aplicativos) se tornaram mania e grande parte deste sucesso vem dos Smartphones, que crescem rapidamente em todo o mundo e oferecem aos usuários diversas ferramentas para cada tipo de necessidade ao alcance de nossas mãos, e cada vez mais fazem parte do nosso cotidiano, com eles somos capazes de gerir nossas finanças, pedir uma comida, pedir um táxi, controlar sua empresa, acessar câmeras de nossas casas, comprar, vender, e muitas outras funcionalidades que facilitam nossa vida.

Passamos cada vez mais tempo conectadas aos nossos dispositivos. Mais do que isso, nós tornamos os nossos apps uma ferramenta para deixar as nossas rotinas mais práticas, gastando nosso tempo naquilo que realmente importa. Smartphones são uma realidade e ainda permanecerá (sob o avanço da tecnologia) o futuro e, cada vez mais, os usuários de um aplicativo serão responsáveis pela divulgação e popularidade de um serviço ou produto.

Com o grande crescimento do número de telefones no mundo todo, lojas de aplicativos tornaram-se grandes vitrines de oportunidades para desenvolvedores lucrarem com ferramentas inovadoras. Graças à segurança e ao controle de dados, pessoas ficam mais seguras ao comprar e utilizar um aplicativo novo, por saberem que o risco de perderem algum dado é menor.

Hoje, um usuário comum instala pelo menos três aplicativos em seu telefone, muitas vezes pagando por isso. Mais de 75% dos donos de smartphones usam aplicativos pelo menos uma vez ao dia, gerando bilhões em lucros para desenvolvedores. Saber se posicionar nesse mercado, antecipando tendências e diminuindo erros, é fundamental para o futuro de empresas que planejam estar à frente no mercado.

Mas o que é aplicativo mobile?

Resumindo sucintamente, são softwares que desempenham objetivos específicos em smartphones, tablets, iPads…

No primeiro trimestre de 2016, foi feito um levantamento sobre o número de downloads de aplicativos ao redor do mundo. Um destaque ficou para o Brasil que atrás apenas de Estados Unidos e China, encontrava-se em terceiro lugar na lista que é completada por Índia, Rússia, México, Turquia, Indonésia, Japão e Coreia do Sul.

Tendências de Mercado de Aplicativos

O mercado de aplicativos é um dos mais atraentes para Empreendedores, Grandes empresas e profissionais na área de Tecnologia.

Afinal, somente no Brasil há 168 milhões de smartphones, de acordo com dados de 2016 da FGV (Fundação Getulio Vargas).

A tendência para 2017 é que o mercado de aplicativos movimente cerca de 197 bilhões de downloads e a projeção para o fechamento do ano de 2021 é cerca de 352,9 bilhões.

Financeiramente falando, de acordo com relatório da App Annie Forecas, 2016 fechou com o mercado girando em torno de US$ 61,8 bilhões, a previsão para 2017 ficou em US$ 82,2 bilhões e ainda para 2021, uma receita anual de US$ 139,1 bilhões.

Atualmente a China lidera este mercado, seguido por Estados Unidos, Índia, Brasil e Indonésia.

O Android já é o sistema operacional mais usado no mundo, e a previsão para 2017 foi que já será também o mais rentável, comparando-se com iOS e Windows Phone.

A previsão é que a loja do Android tenha uma receita de US$ 41 bilhões, conta US$ 40 bilhões da Apple.

Para fechar o relatório, o número de downloads do Android vai aumentar ainda mais a folga em relação ao iOS, sendo que 2016 girou em torno de 108 bilhões de downloads, contra 29 bilhões do rival, e em 2021 a diferença será de 300 bilhões contra 42 bilhões de downloads.

Bom, vamos pensar na seguinte situação: Um cliente chega à você e fala que precisa de um aplicativo, para as plataformas android e iOS, com acesso à câmera, GPS e banco de dados, e ainda num prazo de 30 dias deverá estar publicados na loja Play Store e App Store.

Provavelmente há não muito tempo atrás, muitos desenvolvedores diriam que seria praticamente impossível, porém como a necessidade faz a tecnologia voar, hoje em dia é totalmente plausível resolver esse problema.

Como?

Com o desenvolvimento mobile híbrido.

Mas qual a diferença de desenvolvimento nativo e híbrido?

Nativo:

·       é necessário um desenvolvedor especialista para cada plataforma (Android com Java, iOS com Objective-C ou Swift, e Windows Phone com C#) ou um desenvolvedor ninja que manja muito de ambas plataformas;

·       Possui acesso à todos os recursos do dispositivo com bom desempenho (acelerômetro, giroscópio, geolocalização, etc..);

·       Como são desenvolvidos especificamente para cada plataforma, explora muito bem toda a UX/UI1 , seguindo o padrão de interface do usuário adequadamente.

Híbrido:

·       Um desenvolvedor conhecedor de HTML, CSS e JS é capaz de em um único código fonte, desenvolver para ambas as plataformas (Android, iOS e Windows Phone);

·       Tem a capacidade de acessar recursos nativos do dispositivo através do cordova e phonegap, que servem basicamente para criar um app nativo capaz de abrir uma webview2 executando o html/css e javascript e mostrar ao usuário;

·       Respeita a UX/UI do sistema operacional do dispositivo, porém utiliza um navegador embutido no aplicativo para demonstrar ao usuário.

Em relação ao custo do desenvolvimento:

Nativo:

·       o custo de um aplicativo nativo é bastante elevado, principalmente contratando 1 (um) desenvolvedor específico para cada plataforma, aliado à isso, o prazo de entrega final do aplicativo pode demorar um pouco mais, visto a complexidade de desenvolver para ambas as plataformas;

Híbrido:

·       já o custo para o desenvolvimento híbrido é bem reduzido, bem como a demanda de prazo para o desenvolvimento, visto que um único código é capaz de gerar o app para ambas as plataformas.

Em relação ao conhecimento/linguagens de programação:

Nativo:

·       Para o android, além de seguir as boas práticas do Google em relação ao design, é necessário dominar a base do Java, bem como alguma IDE3 com suporte específico de componentes e SDKs4, podendo citar o Android Studio, NetBeans, Eclipse, etc. Pode ser desenvolvido em Sistemas Operacionais Windows, OS X e Linux;

·       Para o iOS, também seguindo as boas práticas da Apple para a UX/UI de interface ao usuário, é imprescindível pleno conhecimento de Objective-C ou Swift, além de dominar a ferramenta específica (e única) de desenvolvimento da Apple, o Xcode, portanto é desenvolvido exclusivamente em um Sistema Operacional OS X;

·       Para Windows Phone, é necessário ter o Microsoft Visual Studio como IDE de desenvolvimento, com todos os SDKs instalados e ter conhecimento na linguagem C#, podendo ser desenvolvido em Sistemas Operacionais Windows, OS X e Linux.

Híbrido:

Hoje em dia há um verdadeiro leque de frameworks disponíveis no mercado que auxilia o desenvolvimento híbrido, os mais usuais pelos desenvolvedores são:

·       Ionic que é baseado em HTML, CSS e Javascript, e utiliza o AngularJS;

·       Apache Cordova, sendo uma biblioteca de API’s que possibilita acessar funções nativas de dispositivos móveis apenas com JavaScript;

·       Phonegap, que semelhante ao Ionic, também tem como base o uso de HTML, CSS e JavaScript, ele garante o funcionamento nas plataformas desejadas utilizando o Apache Cordova;

·       O Meteor nos possibilita escrever apps com JavaScript, prometendo reduzir radicalmente o código necessário para o desenvolvimento;

Além destes, podemos citar vários outros exemplos, como Chocolate-UI, Framework 7, Ratchet, Jquery Mobile, Lungo, e a lista é grande…

O Xamarin (utilizando C#) e o React Native (Javascript), tem propósitos parecidos em relação à buscar métodos de desenvolvimento de widgets nativos do dispositivo, porém, dividem espaço com os Frameworks em relação à em um único código, proporcionar apps multiplataformas.

Diferente do desenvolvimento nativo, o desenvolvimento híbrido não necessita de uma IDE específica, para se ter uma idéia, com o Bloco de Notas, é possível desenvolver. Claro que há vários Editores de Texto que nos auxiliam muito, e instalando plugins, o desenvolvimento flui com muita rapidez. Podemos citar como os mais utilizados pelos desenvolvedores, o Atom, Visual Studio Code, Sublime Text, VIM, entre muitos outros.

Abaixo alguns aplicativos de sucesso, desenvolvidos nativamente ou de forma híbrida:

Aplicativos Nativos:

·       Facebook Messenger é um grande exemplo de app nativo, que foi desenvolvido para atender recursos dos sistemas operacionais Android e iOS e posteriormente Windows Phone, ele cumpriu fielmente a promessa de não apostar todas as suas fichas no HTML e aproveitar melhor as oportunidades e a experiência de um app nativo;

·       Whatsapp é o mais famoso aplicativo nativo de mensagens instantâneas, que inclusive foi vendido ao Facebook por US$ 16 bilhões e se tornou consagrado em grande parte do cotidiano das pessoas do mundo inteiro;

·       O Skype que utiliza recursos como vídeo e aúdio e chat em tempo real, além de envio de arquivos, também é um exemplo de sucesso de aplicativo nativo;

É claro que a lista é gigantesca, a grande maioria dos aplicativos de sucesso são desenvolvidos nativamente, e pertencem à grandes Empresas e Startups Mundiais.

Aplicativos Híbridos:

Não tão famosos quanto os nativos, mas giram grandes volumes de downloads e mídia, alguns exemplos de aplicativos desenvolvidos de forma híbrida são:

·       Untappd que é uma rede social e de check-in para cervejeiros, onde os usuários facilmente conseguem encontrar cervejarias e bares pelo mundo todo. É importante salientar que mesmo sendo um app híbrido, utiliza geolocalização, integração com Foursquare e Facebook, por exemplo;

·       MarketWatch também desenvolvido de forma híbrida, o app oferece aos usuários as últimas e mais importantes notícias comerciais, informações de mercado financeiro;

·       O app Pacífica é um aplicativo bem interessante e foi também com desenvolvimento híbrido, ele controla o estresse, ansiedade e preocupação, construída em torno das atividades rápidas e iterativas que os usuários podem realizar, os desenvolvedores basearam-se na técnica conhecida como terapia cognitiva-comportamental, o app é sucesso no meio da Saúde.

Mas, ao final de contas, o que é melhor para minha empresa ou cliente, desenvolver um aplicativo Nativo ou Híbrido?

Não há uma resposta de imediato sem analisarmos algumas perguntas:

·      O aplicativo é um protótipo?

Caso for um protótipo, alguma demonstração, sem dúvidas nenhuma o desenvolvimento híbrido é a melhor opção, pois consegue em curto prazo prototipar layouts de telas demonstrando para multiplataformas;

·      Utilizará muitos recursos nativos do dispositivo?

Se o seu aplicativo for bastante complexo, com acesso a vários recursos do hardware do dispositivo, o desenvolvimento nativo proporcionará melhor experiência ao usuário, caso contrário, sendo um aplicativo mais simples, com poucos recursos, o híbrido está de bom tamanho;

·      A UX/UI devem estar impecáveis?

Bom, se deseja que seu aplicativo fique com um layout de encher os olhos e uma performance arrasadora para o usuário e mostrar o que o sistemas operacional do dispositivo pode oferecer, o nativo é a melhor opção, por outro lado, se para a sua necessidade, o bonito e funcional já basta, parte para o desenvolvimento híbrido e seja feliz;

·      Qual a gama de usuários que irão utilizar?

Caso seu aplicativo será para um público mediano, que não exigirá muita demanda, pode-se usar o desenvolvimento híbrido, desde que tenha uma boa conexão com o backend6 e esteja muito bem codificado. Em contrapartida, se o seu aplicativo é acessado por pessoas do Mundo inteiro, o nativo é a melhor opção e vai proporcionar melhor fluidez ao usuário. Porém essa questão pode depender muito do seu backend para funcionar bem em ambos os desenvolvimentos;

·      Qual seria a deadline de entrega?

É claro que isso faz muita diferença, se você tem um curto tempo para entrega do aplicativo, sem dúvidas o desenvolvimento híbrido será a sua melhor solução, pois como citamos anteriormente, o código é reaproveitado para multiplataforma. Mas, se acha que tem tempo de sobra para desenvolver separadamente, é claro que poderá partir para o nativo, porém é muito importante lembrar de manutenções futuras, onde o nativo será manutenção redobrada para cada plataforma;

·      Conterá muitas implementações futuras?

Adentrando mais na manutenção do seu aplicativo, com o desenvolvimento híbrido, seu desenvolvimento será somente em um código, ao inverso disso, no nativo, deverá para cada plataforma fazer a devida alteração no código, isso consequentemente demandará mais tempo de desenvolvimento;

·      Tenho grana para investir no aplicativo?

Uma questão importante é o custo do desenvolvimento, por muitos motivos citados anteriormente, o desenvolvimento híbrido tem um custo muito baixo em relação ao nativo.

Após fazer um balanço das respostas, pelo menos algum caminho e noção nós teremos para saber como vamos desenvolver nosso aplicativo.

Com base em todo o contexto, podemos concluir que não se pode negar a hipótese de que desenvolvimento híbrido estão evoluindo ao ponto de apresentarem mais vantagens que desvantagens. Principalmente pela facilidade de mão de obra, o curto prazo de desenvolvimento e custo final do aplicativo.

Podemos salientar que a grande vantagem do aplicativo híbrido seria a implementação de apenas um código para a sua distribuição em várias lojas de aplicativos.

Em contrapartida, apesar do desenvolvimento híbrido estar em constante evolução, sempre haverá um gap7 em relação ao desenvolvimento nativo, o que faz com que os apps utilizando tecnologia multiplataforma não estejam ao par com o que há de mais novo em cada plataforma (por exemplo, com o lançamento do iOS 10, foi liberada a API8 SiriKit para integrar apps de terceiros com o assistente pessoal da Apple, e demandou um certo tempo para aplicativos híbridos terem esse acesso).

Para finalizar, o desenvolvimento mobile requer profunda análise de uma série de fatores que já citamos anteriormente.

É importante ressaltar que a abordagem nativa não é melhor que a híbrida ou vice-versa, sendo apenas distintas e deve-se avaliar qual utilizar caso a caso, de acordo com a sua necessidade.

Eai? Gostaram?

Espero que possam ficar mais esclarecidos um pouco sobre esse assunto, e definir qual a melhor opção para você, desenvolver um aplicativo nativo ou híbrido?

Se gostou, compartilhe com os amigos.

Até mais!

Postagem original.

______________________________________________________________________

1: UX é a experiência do usuário, UI é a experiência de design do usuário
2: Webview é um componente capaz de exibir páginas web sem que seja necessário a a experiência de um browser
3: IDE é o ambiente de desenvolvimento
4: SDK é abreviatura para Software Development Kit, a partir dele pode-se emular softwares desenvolvidos para outras plataformas;
5: Widget é um componente que pode ser utilizado em celulares, tablets e outros dispositivos para simplificar o acesso a um programa ou sistema;
6: Backend é responsável pela parte de trás da aplicação, está relacionado à regra de negócio e banco de dados;
7: Gap seria um atraso relativo ou disparidade entre coisas, pessoas, etc..
8: API é um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software ou plataforma.
Previous [IONIC] - IonFab com Button e Label
Next Curso Grátis - Iniciando com Ionic

About author

Junior Abranches
Junior Abranches 16 posts

Um apaixonado por tecnologia e desenvolvimento web e mobile. Compartilhar e aprender sempre!

You might also like

Mobile 0 Comments

Curso Ionic em português – Aula 7 – Gerando nosso APK

Share this on WhatsAppVeja como geramos nosso apk para por o app no celular Pessoal, continuando com nossa série de vídeo aulas, hoje trago dicas de como podemos realizar a

Mobile 0 Comments

[IONIC 3] – Criando Transparent Header

Share this on WhatsAppOlá Pessoal, tudo bem com vocês? A dica de hoje é muito simples e fácil de ser implementado, porém dependendo da situação, seu projeto fica com uma

Mobile 0 Comments

Implementando Push Notification no Xamarin Forms

Share this on WhatsAppVeja como implementar Push Notification no Xamarin Forms Fala pessoal beleza? Bom espero que sim! Hoje venho trazer um vídeo para vocês de como implementar o recurso

0 Comments

No Comments Yet!

You can be first to comment this post!

Leave a Reply