Aplicativos móveis já fazem parte de nossas vidas. Os famigerados Apps, em conjunto com aparelhos cada vez mais sofisticados, nos ajudam em praticamente tudo. Gravamos momentos especiais em fotos e vídeos, trocamos mensagens, pedimos comida, compramos de tudo, jogamos, pagamos contas… Enfim, atividades cotidianas foram e ainda serão transformadas na chamada era da mobilidade, afinal de contas, o número de pessoas que possuem smartphones e tablets cresce a cada dia.
Dentro deste cenário, o desenvolvimento de apps é considerada uma área extremamente promissora no mercado de TI, visto que agora, além das apps nativas e apps web é possível desenvolver também apps híbridos, que são basicamente uma mistura das duas tecnologias.
Para compreender melhor a “evolução da espécie” mencionada no título do artigo, vamos a uma definição resumida de cada tipo de app:
Apps Nativos: desenvolvidos com linguagens específicas para cada plataforma. Mencionando as duas mais conhecidas, no caso do Android utiliza-se Java e no iOS o Objective-C. No desenvolvimento de um aplicativo nativo é possível explorar todos os recursos da plataforma para a qual o mesmo foi criado, no entanto, geralmente, o tempo e investimento financeiro são maiores, pois é necessário criar um app para cada plataforma desejada.
Apps web: são aqueles que possuem o seu conteúdo disponível somente na web (via http), sendo desenvolvidos em HTML, CSS e Javascript e carregados a partir de um navegador (basicamente um sistema “responsivo”). Neste tipo de app não é possível acessar recursos nativos do dispositivo sem o auxílio de frameworks.
Apps Híbridos: são criados com características dos dois tipos de apps citados acima (por isso é chamado de híbrido) em conjunto com frameworks como o Cordova e Ionic.
As grandes vantagens deste tipo de app são:
- Criação com linguagens web (HTML, CSS e Javascript) – bastante comuns atualmente no mercado;
- Poder utilizar tanto recursos da internet quanto recursos dos dispositivos;
- e a capacidade de execução de um único código em diferentes plataformas (Android, iOS, Windows Phone, etc).
Neste tipo de app o desenvolvimento torna-se mais rápido e também mais barato, pois não existe a necessidade de criar apps nativos para diferentes plataformas. O interessante também é que você consegue enviar seu app híbrido para as lojas (Apple Store, Google Play, etc) igual como faz com um app nativo. Bom, não? 🙂
Quando usar um tipo ou outro de app?
A escolha da solução mais adequada depende de fatores como prazo, público alvo e orçamento disponível. Atualmente, com dispositivos cada vez mais potentes, já é possível desenvolver aplicativos de alta complexidade no modelo híbrido, logo, vale muito a pena conhecer mais sobre o assunto.
Se você deseja aprofundar-se mais no mundo dos apps híbridos, assista agora um vídeo especial que criei para te mostrar como iniciar no desenvolvimento de aplicativos híbridos.
Tem alguma dúvida ou quer compartilhar algo que agregue valor ao artigo, deixe seu comentário abaixo!
4 Comentários
Bom dia Weliton,
Ótimo artigo, muito bom mesmo, porém fiquei com uma dúvida em relação aos híbridos. Esses tipos de aplicativos só serão executados se estivermos conectados a internet ou com pacote de dados disponível? É claro que a maioria dos aplicativos necessitam da internet, pois acessam a nossa localização geográfica, fazem conexão com bancos de dados externos, entre outros motivos. Gostei dessa categoria de apps e pretendo me aprofundar nos estudos.
Desde já agradeço.
Ei Jonatas,
Apps híbridos funcionam offline também.
Tenho um aplicativo de controle financeiro feito com Ionic (cordova) e SQLite.
Funfa legal sem internet.
Jônatas, não sou o autor do tópico mas posso dar uma opinião(posso estar errado) da sua pergunta.
É possível ter três modalidades(pensei nesse número) em apps híbridos.
1: backend no servidor + backend do site + API.
Nessa abordagem, por mais que tenha site e API, tudo ficaria no servidor web e sempre haveria a necessidade de requisição por parte do app mobile (ao menos para API) para coleta de dados. Seria necessario a implementação do site e da API. O aplicativo no caso sempre receberia um json(ou outra forma de dado da API) com os dados e formataria a exibição no aplicativo.
2: backend no servidor + angular/etc.
Considerando angular, que da pra configurar rotas e tals; é possível fazer uma única via de dados que alimentaria tanto o site(angular) e o app. Com excessão da página inicial…. Eu acho (não sou expert em angular ainda).
3: backend + angular/etc + BD no APP;
Essa abordagem seguiria todos os preceitos anterior porém teria informações imutáveis que poderiam ser armazenados num banco local.
Contras:
Imagine a seguinte situação: um App offline envia atualização de um dado financeiro porém esse dado só será atualizado no momento que o celular conectar a internet. Esse mesmo dado (o não atualizado) está sendo utilizado por algumas pessoas que estão online. O fato do dado ter sido atualizado(agendado atualizacao para quando a pessoa estiver online) por alguém offline e que demoraria algumas horas para ficar online, poderia gerar uma inconsistência no sistema que iria atrapalhar a vida de todos.
O uso de BD no APP como cache seria viável para uma tabela imutável do passado: onde o aplicativo armazenaria:
Notícias;
Eventos ocorridos;
Tabela do brasileirão…;
Etc.
A forma como dados on e o off seriam tratados(sincronizados) dependerá unicamente do desenvolvedor e sua maturidade em considerar se algum dado é importante o suficiente para apenas ser atualizado/exibido em tempo real.
Disse três abordagens, que considero importantes, porém com certeza há outras… E espero ver comentários que as indiquem e abram minha mente.
Sobre o artigo: ótimo! Parabéns! Espero ter mais oportunidades de ler artigos do Weliton.
Muito obrigado pela explicação pessoal, sou novo na área de programação e estou tentando encontrar a área em que mais me encaixo.