Desenvolvimento mobile usando frameworks Web com Ionic
- #Ionic
Mas antes de começar essa conversa precisamos entender o que é o IONIC e como ele funciona.
Na documentação podemos encontrar a seguinte definição :
Um kit de ferramentas de interface do usuário móvel de código aberto para criar aplicativos móveis multiplataforma modernos e de alta qualidade a partir de uma única base de código em React, Vue, Angular ou JavaScript.
Certo com essas informações vamos aprofundar um pouco mais.
Interface
O primeiro ponto é a criação de interface (as telinhas), o Ionic disponibiliza diversos componentes para criação do app (Botões, Inputs, modal alerta, entre outros), e sempre respeitando o estilo de cada plataforma, Android e IOS, assim facilitando o desenvolvimento da aplicação com uma documentação simples.
Certo mas qual linguagem utilizamos?. Neste caso você pode escolher qual Framework web, que você se sente mais confortável React JS, Vue, Angular ou JavaScript puro.
É isso aí, a partir da versão 4 do Ionic você vai poder usar um framework da sua escolha dentro de outro framework, loucura mas calma que em breve isso vai fazer sentido.
Multiplataforma
Continuando com o Kit de ferramentas, chegamos no multiplataforma, onde seu único código pode ser buildado para Android IOS ou WEB, e como tudo isso acontece ?. SIMPLIFICANDO , o "Ionic" utiliza uma versão do Chromium (uma versão open Source do Chrome), para a criação de Aplicativos, onde basicamente é retirado a barra de pesquisa do navegador e dá aquela sensação de aplicativos.
Mas como o "Ionic" tem acesso a recursos nativos do dispositivos?. Agora entra em cena mais um personagem, Apache Cordova. Vamos lá o Apache Cordova, SIMPLIFICANDO é o carinha que faz a ligação entre no Chromium e o dispositivo, por exemplo ele faz integração com toda a parte mobile (ex: Leitor de digital, bluetooth, câmera etc), com essa ponte conseguimos desenvolver sem que o usuário perceba que está em um "navegador", pois temos acesso a funções nativas do dispositivo.
Blz mas e as vantagem e desvantagem
Vamos começar com as vantagem:
- Curva de aprendizado: Com uma documentação simples e a facilidade para instalação auxilia no aprendizado, com muitos componentes já prontos você consegue criar uma aplicativo com framework Web que você mais se sente confortável.
- Um código em várias plataformas: O Ionic entrega além do Android e IOS você também consegue gerar uma aplicação WEB, assim é muito mais fácil a manutenção da sua aplicação.
- Instalação: Instalando o IONIC CLI é fácil rodar e testar sua aplicação no seu navegador sem a necessidade de instalar outros software como o android studio ou o Xcode.
Desvantagem:
- Desempenho: Como estamos falando de um "navegador" não podemos pensar em uma aplicação muito gráfica pois não irá entregar o esperado.
- Limitação: os aplicativos em Ionic têm uma limitação nas funcionalidades nativas. Algumas delas ainda não existem no aplicativo. Por isso, é necessário procurar plugins em outras plataformas ou então até desenvolver as funcionalidades necessárias.
- Segurança: Por não ser uma aplicação nativa ele acaba ficando um pouco atrás em quesito de segurança, então se o seu projeto necessita um alto nível de segurança deve ser redobrado a atenção.
Considerações finais
O meu contato com o Ionic, me fez repensar em aplicações Mobile, pois hoje temos uma demanda enorme com pouca mão de obra qualificada, e ao mesmo tempo que amei trabalhar com o framework em outros dias não fiquei tão feliz assim. Sempre antes de escolher uma ferramenta ou linguagem sempre é importante analisar o cenário e entender e verificar se a ferramenta te atende. Vejo o Ionic se encaixando perfeitamente em pequenas aplicações, onde não necessite tantas funcionalidades nativas, com prazos curto e a necessidade de ser cors plataforma. E claro aqui dei uma mega simplificada e contei um pouco da minha experiência, vou deixar alguns links abaixo onde pode entender melhor e qualquer ponto adicional pode adicionar nos comentários.
Links importantes:
Ionic: https://ionicframework.com/
Cordova: https://cordova.apache.org/
Chromium: https://www.chromium.org/Home/