Desenvolvimento de Aplicações Híbridas com o Framework Ionic v1

Oi oi gente! Como já deve ser de conhecimento de muitos, foi lançado o aplicativo Plantadores de Rios, criado com a finalidade de auxiliar na recuperação e preservação de nascentes, com o propósito de combater a crise hídrica que tem maior gravidade a cada ano.

O aplicativo conecta a sociedade com o proprietário rural, permitindo que pessoas e empresas colaborem com o meio ambiente, apadrinhando uma nascente, seja com cercamento, mudas, limpeza, assistência técnica ou outras formas de ajuda.

O app foi lançado no Dia Mundial do Meio Ambiente (05/07/2017) pelo Michel Temer e pelo Sarney Filho. Durante um evento realizado pelo GDG - Lavras (obrigada Gustavo, Bárbara e a todo o pessoal do GDG) pediram pra que eu respondesse como foi a sensação de quando o programa Plantadores de Rios foi apresentado em rede nacional pelo presidente da república. Eu simplesmente não tive resposta para isso. Porque a sensação de ver um trabalho na qual você faz parte, com uma grande abrangência, como foi o lançamento do programa, é realmente incrível e gratificante, confesso que meus olhos deram uma leve soada (pra não dizer que eu chorei mesmo, rs!). O vídeo do evento, pra quem perdeu, já está disponível no Youtube.

Mas eu gostaria de falar um pouco sobre o desenvolvimento do aplicativo, que pra quem não sabe, foi utilizado o framework Ionic v1. Já no início do desenvolvimento do projeto nos deparamos com a dificuldade de se decidir qual tecnologia utilizar, se seria nativo ou se seria um aplicativo híbrido. Mas porque então decidimos pelo Ionic?

Alguns colegas de trabalho já haviam utilizado o framework então resolvemos estudá-lo. Para nossa finalidade era uma excelente opção, visto que era necessário um app multiplataforma, que o tempo de desenvolvimento seria pequeno, que a curva de aprendizagem seria menor e que seria possível manter e evoluir apenas um código, mesmo sendo para Android e para IOS. Essas são algumas das vantagens do framework, além disso, seria possível imitar a aparência e a usabilidade dos aplicativos nativos.

Descobrimos que existiam outros aplicativos de empresas grandes, que foram desenvolvidos com o Ionic Framework, dentre eles o Renda Fixa (App de investimentos), um app da Mc Donalds, o Pixify (bem bacana, que converte suas fotos em obra de arte), o Rio 2016 (é o app oficial do comitê organizador das Olimpíadas e Paralimpíadas), dentre outros.

Quem já está acostumado em desenvolver utilizando tecnologias WEB, como HTML/CSS/Javascript e o AngularJs não terá muita dificulpradade para aprender a utilizar o framework. Para iniciar um projeto Ionic, pode ser utilizado muitos dos projetos já prontos, disponíveis no próprio site do Ionic, como o sidemenu.

ionic start nome_do_projeto sidemenu

Quanto já temos um projeto em Ionic, basta adicionar as plataformas na qual vamos querer compilar o projeto depois. Podemos adicionar a plataforma que desejarmos, por exemplo:

ionic platform add android

Depois de adicionar a plataforma podemos fazer o build do aplicativo e executar ele no emulador da plataforma desejada, por exemplo:

ionic build android
ionic emulate android

Então quando é que devemos utilizar aplicação nativa e quando utilizar híbrida? Essa é uma discussão sem fim, então precisamos ter em mente 2 coisas:

  • A primeira é que não importa a tecnologia em que o aplicativo é feito, aplicativo bom é aplicativo bom, seja ele feito com Javascript, Java, React e seja lá o que for.

  • E a segunda é que os usuários estão pouco interessados para a tecnologia que você utilizou pra fazer esse app, eles querem que ele funcione!

Tive a experiência de desenvolver aplicativos nativos e aplicativos híbridos, minhas conclusões sobre os 2 foram as seguintes:

  • Um aplicativo híbrido bem construído se integra à plataforma da mesma forma que um nativo. Há diferenças de performance e fluidez sim, mas apenas em casos muito específicos que exijam realmente bastante processamento no dispositivo. Nesses casos, escreva nativo. Utilizar um framework híbrido demanda menos tempo para desenvolvimento de um aplicativo multiplataforma, já que o código será o mesmo para todas as plataformas, essa ao meu ver é uma grande vantagem.

Por muitas vezes tive um certo preconceito com os aplicativos híbridos, mas dependendo da finalidade e a complexidade do aplicativo vale a pena experimentar um framework como o Ionic.

Com ele é possível fazer aplicativos robustos que irá utilizar o máximo do aparelho, mas mesmo o Ionic conseguindo acessar funções nativas de dispositivos móveis, por utilizar o Cordova por trás, eu não utilizaria para aplicações muito robustas, porque aí sim pode haver uma percepção de pior performance e fluidez.

Quando falamos de aplicativos híbridos, devemos ter em mente que são aplicativos feitos com tecnologias WEB (HTML/CSS/Javascript) que vão rodar em uma instância do Browser, que nós chamamos de WebView. O usuário não sabe que está dentro de um Browser pois essa WebView não contém componentes característicos de um, como a barra de endereço e barra de favoritos. Quem faz a ligação entre essa WebView e o hardware é o Cordova, projeto mantido pela Apache,é uma biblioteca de API's que possibilita acessar funções nativas de dispositivos móveis utilizando Javascript.

Há vários frameworks híbridos como React Native, Jquery Mobile, Xamarin, entre outros no mercado, atualmente sendo o Ionic um dos mais utilizados. Temos 2 versões do Ionic, uma utilizando AngularJs v1 e o Ionic 2 utilizando o AngularJs 2. Temos o Fórum na própria página do Ionic que é constantemente alimentada pelos colaboradores, temos comunidades de desenvolvedoras, inclusive no Brasil, como a Comunidade Ionic Brasil que desenvolveu um GUIA DO DESENVOLVEDOR, um guia pra quem desenvolve com Ionic, contendo artigos, tutoriais, vídeos e livros que ajudam bastante quem está iniciando.

Aconselho e recomendo o uso desse framework. Testem o Ionic ou os outros que foram citados neste texto e eu garanto que seu preconceito com aplicações híbridas vão acabar! Espero que gostem...e até a próxima!