IGTI Blog
Ionic

10 motivos para desenvolver apps com Ionic

Tecnologias híbridas como o Ionic podem ser úteis para o desenvolvimento do seu próximo app.

Sabe-se que o mercado para o desenvolvimento de apps para dispositivos móveis tem permanecido bastante aquecido nos últimos tempos. Além disso, sabe-se também que apenas duas plataformas para dispositivos móveis perduram – Android e iOS. Com isso, novas tecnologias surgiram frente ao desenvolvimento nativo de apps, que utilizam Java e/ou Kotlin para Android e Objective C e/ou Swift para iOS.

Android x iOS

Ionic
Fonte: TalkofWeb

Uma dessas tecnologias é a híbrida que, ao invés de uma linguagem de programação própria como a plataforma nativa, utiliza a essência da web (HTML/CSS/JavaScript) nos apps e atua principalmente na camada conhecida como WebView, que resumidamente pode ser definida como um navegador sem barra de endereços. Já o acesso aos recursos nativos dos dispositivos (câmera, GPS, bateria, etc.) é feito através de plugins desenvolvidos com código nativo.

HTML, CSS e JavaScript

Ionic
Fonte: Medium

No início, essa abordagem era muito imatura e ocorriam diversos problemas de performance e estabilidade. Atualmente, devido ao amadurecimento da tecnologia, isso não ocorre mais. Assim, as tecnologias híbridas conseguem se impor tanto quanto as tecnologias nativas na grande maioria dos casos.

Uma dessas tecnologias híbridas mais conhecidas e utilizadas atualmente é o Ionic, que é foco de uma das disciplinas estudadas neste curso do IGTI. Veja então dez motivos para desenvolver apps com Ionic:

Ionic Framework

Ionic
Fonte: LoginWorks
  1.  Multiplataforma: considerando a arquitetura, o Ionic atualmente se situa sobre o Cordova (antigamente conhecido como Phonegap), que se comunica com os dispositivos móveis através de plugins. Além disso, o Cordova injeta o código HTML/CSS/JavaScript na WebView do dispositivo. Com isso, é possível desenvolver apps tanto para Android quanto iOS mantendo apenas uma base de código. Além disso, o Ionic e o Cordova também dão suporte a outras plataformas como PWA’s (que será  visto posteriormente) e aplicações desktop com o Electron.
  2. Mais produtividade: a característica de multiplataforma mencionada anteriormente acarreta naturalmente em mais produtividade aos desenvolvedores, pois com apenas uma base de código fica mais fácil manter e evoluir o app conforme a necessidade dos clientes. Outro fator de produtividade é a possibilidade de utilizar desenvolvedores front end na criação do app, pois as tecnologias são facilmente compreendidas por eles. Assim, a curva de aprendizado pode ser considerada menor, pois não há necessidade de se estudar uma nova tecnologia.
  3. Menor tempo de desenvolvimento: as características anteriores acarretam em um menor tempo de desenvolvimento, já que há apenas uma base de código que será utilizada para gerar os apps para ambas as plataformas. Esse tempo também se aplica à manutenção do app, que também é, em geral, menor.
  4.  Menor custo: as características anteriores também podem acarretar em um menor custo de desenvolvimento do app. Um dos motivos é que a equipe pode ser, teoricamente, composta pela metade dos desenvolvedores de um app desenvolvido para Android e iOS, de forma nativa. Outro fator é que, além de ser difícil encontrar um desenvolvedor que domine ambas as tecnologias nativas, o custo de sua contratação é obviamente e merecidamente mais alto. Esse fator do custo mais baixo pode ser essencial a startups que querem lançar um novo produto no mercado antes de seus concorrentes, por exemplo. Uma vez obtendo sucesso, o app pode então ser evoluído para tecnologias nativas caso necessário.
  5.  Angular e TypeScript: para o desenvolvimento de apps com Ionic, não há necessidade de se utilizar JavaScript puro. Se fosse esse o caso, apenas o Cordova seria suficiente. O Ionic, em sua versão 3, utiliza o Angular como plataforma de desenvolvimento. O Angular, por sua vez, é uma plataforma de código-aberto criada e mantida por colaboradores do Google. Além disso, está em um estágio bastante maduro e com reconhecimento no mercado. Como linguagem de programação, o Angular utiliza do TypeScript, criado pela Microsoft. O TypeScript funciona como um super conjunto do JavaScript que, dentre diversas funcionalidades, destaca-se pela tipagem estática de variáveis e membros privados de classes, o que garante uma menor taxa de bugs ainda em fase de desenvolvimento. Isso acarreta em um app com mais qualidade. Outro destaque importante em se tratando de linguagem de programação é que o Ionic suporta as funcionalidades mais recentes do JavaScript, mesmo que ainda não estejam incorporadas oficialmente na linguagem. Isso é possível graças ao processo de transpilação (conversão de código JavaScript moderno para JavaScript compatível) que o TypeScript proporciona, por exemplo.

Angular e TypeScript

Ionic
Fonte: Spiria
  1. Prototipação: a criação de telas com o Ionic é incrivelmente fácil. Há, inclusive, uma ferramenta visual para esse fim – o Ionic Creator. Internamente, o CSS utilizado pelo Ionic já simula a interface nativa de cada plataforma. Assim, mesmo que o objetivo final seja um app totalmente nativo, a utilização do Ionic para a etapa de prototipação pode auxiliar muito a aprovação e o orçamento do app por parte do cliente.
  2.  Ferramentas: o ecossistema do Ionic dispõe de ferramentas interessantes aos desenvolvedores. Dentre elas, destacam-se o Ionic Dev App, que permite a injeção do app em um dispositivo móvel para testes durante o próprio desenvolvimento; e o Ionic View, que permite que o app seja testado por usuários durante as fases beta de desenvolvimento do app.
  3.  Excelente documentação: o Ionic é um projeto muito bem documentado e possui uma comunidade bastante ativa na Internet.
  4. PWA’s: o Ionic possui suporte à criação de PWA’s (Progressive Web Apps), que muitos estudiosos afirmam ser a grande evolução dos apps. PWA’s são, em linhas gerais, sites que se comportam como apps, tanto na interface quanto nas funcionalidades. Isso é possível graças à evolução das tecnologias web que, aos poucos, vão ganhando acesso a funcionalidades nativas dos dispositivos móveis. Com PWA’s, os apps não mais dependerão de lojas (App Store e Google Play Store) para distribuição. Em breve, você não precisará baixar um app para simplesmente pagar o ticket de estacionamento de um shopping center, por exemplo. O próprio site do shopping fornecerá esse serviço.
  5. Evolução: a quarta versão do Ionic, prometida ainda para 2018, evoluiu bastante. Nela, graças à adoção do Stencil, será possível escolher um framework front end de sua preferência para o desenvolvimento do app, incluindo também o JavaScript puro (Vanilla JS). Além disso, há o Capacitor, que é uma alternativa ao Cordova para a comunicação nativa com os dispositivos móveis.

Conclusão

É fato que o Ionic deve ser levado em consideração na decisão de qual tecnologia adotar para o desenvolvimento de apps, principalmente se o app for multiplataforma. É claro que as tecnologias nativas estão mais próximas do hardware e exploram todo o potencial do dispositivo, mas nem sempre isso é realmente necessário. O usuário final quer, no fim das contas, que o app funcione bem e entregue valor. Ele não vai se preocupar diretamente com performance e se todo o potencial do hardware está sendo explorado. O mais importante é a experiência do usuário (UX – User Experience). Portanto, a não ser que você esteja escrevendo um jogo com jogabilidade e gráficos extremamente complexos ou um novo concorrente do Facebook, Instagram, Gmail, Whatsapp, etc., o Ionic pode ser uma boa solução para a grande maioria dos casos.

Professor autor: Raphael Ribeiro Gomide