Nos artigos anteriores focamos um pouco em discutir benefícios do Flutter. Não faz muito tempo, o ionic era a tecnologia preferida pela Lanconi para desenvolvimento de projetos de aplicativos que se enquadravam nas especificações compatíveis, até o surgimento do Flutter. Embora, seja uma tecnologia que ficou no canto da prateleira, ainda é utilizada e recomendada para alguns casos a depender do projeto.
Para isso, vamos elencar abaixo alguns das vantagens e desvantagens que o ionic pode trazer. Vamos lá:
Vantagens do Ionic
Friendly Development: Como o Ionic é construído em tecnologias da web padronizadas, os desenvolvedores da web podem construir aplicativos móveis. (Ou até mesmo aplicativos de desktop ou PWAs.) Os desenvolvedores de front-end são o terceiro maior grupo de todos os tipos de desenvolvedor. Já o JavaScript é uma das linguagens de programação mais populares. Isso significa que é fácil encontrar recursos humanos para criar aplicativos Ionic.
O Ionic facilita a construção de um aplicativo sem a necessidade de aprender novas habilidades. (Ou seja, se você for um desenvolvedor web, pode construir um aplicativo sem ter que aprender linguagens como Swift para Apple ou Kotlin para Android.) Você também não precisa contratar desenvolvedores nativos ao criar aplicativos para Android ou nativo, a menos que você precise de algo personalizado.
Flexibilidade. O Ionic é muito flexível porque é baseado em tecnologias da web padronizadas. Isso significa que é fácil personalizar a aparência de um aplicativo apenas com modificações de HTML e CSS.
Você pode criar a experiência do usuário que deseja que seus clientes tenham, bem como fazer atualizações ao longo do caminho, à medida que obtém feedback sobre o que os clientes desejam.
Uma base de código, vários aplicativos. O Ionic pode construir vários aplicativos a partir de uma base de código. Um aplicativo desenvolvido no Ionic não é fruto do capricho de um único fornecedor de plataforma. Quando os clientes desejam um novo aplicativo, raramente desejam um para uma única plataforma. Existem 1,5 bilhões de dispositivos Apple ativos em todo o mundo, 8 e há 2,5 bilhões de dispositivos Android ativos. 9 Esses são públicos enormes, portanto, ter uma base de código para vários aplicativos faz muito sentido.
Se houver um bug, os desenvolvedores só precisam resolvê-lo em um lugar, em vez de muitos. Isso ajuda na manutenção de longo prazo. O Ionic pode economizar trabalho, dores de cabeça e tornar mais fácil manter uma construção robusta e limpa.
O Ionic também pode economizar recursos, bem como tempo e dinheiro dos clientes. Aplicativos construídos em tecnologias da web também são preparados para o futuro. Eles não precisam se manter atualizados com o sistema operacional do dispositivo mais recente.
Ferramentas com compatibilidade nativa. A equipe do Ionic oferece uma biblioteca de componentes e plug-ins, incluindo blocos de construção de front-end, componentes de IU, ícones de aplicativos comuns e muito mais. Esses plug-ins permitem que os desenvolvedores se conectem a APIs nativas, como Bluetooth, GPS ou uma câmera embutida, sem ter que construir integrações personalizadas. Uma possível desvantagem disso é que, se não houver um plugin para algo que você deseja, você terá que criá-lo.
O Ionic também pode se integrar a muitas tecnologias. Isso inclui instrumentos analíticos, sistemas de pagamento, segurança, ferramentas de teste e muito mais. Alguns plug-ins fazem parte da versão Enterprise do Ionic, que requer uma assinatura.
Ampla escolha de elementos de interface do usuário e prototipagem rápida. O Ionic imita a aparência de um aplicativo nativo por causa de sua biblioteca de componentes de IU. Esses componentes podem ser usados como elementos prontos para construir uma interface gráfica do usuário ou podem ser personalizados. Com os componentes da web, o Ionic acelera o processo de desenvolvimento da lógica da IU e da retenção da aparência nativa sem custos extras.
Acessando o código de um componente de IU, os desenvolvedores podem mudar a maneira como um elemento funciona. Por exemplo, isso pode significar adicionar animação a um botão, modificar o tipo de rolagem ou alterar a ordem de uma lista de itens.
Ionic é ótimo para prototipagem rápida . Elementos de interface do usuário prontos que são facilmente personalizáveis significam que é simples criar um protótipo de aplicativo interativo e, em seguida, iterar nele rapidamente. A Ionic também oferece uma ferramenta de prototipagem chamada Ionic Creator, que é mantida pela equipe da Ionic. Ele oferece uma interface de arrastar e soltar para construir protótipos interativos. No entanto, ele não pode ser usado para construir o aplicativo inteiro.
Desvantagens do Ionic
Desempenho. Quando falamos sobre desempenho, realmente queremos dizer ‘que tipo de aplicativo você deseja construir?’ Se você deseja um aplicativo com muitos gráficos, o Ionic não é uma boa escolha. Aplicativos que usam recursos como realidade aumentada não funcionarão bem com o Ionic. Se o desempenho é uma grande preocupação, tornar-se totalmente nativo é uma escolha melhor.
O Ionic renderiza elementos gráficos por meio de um navegador, que executa várias etapas para mostrar as imagens na tela. Quanto mais “etapas” houver entre o código e a camada composta, mais tempo de carregamento aumentará. Ionic é uma solução de tamanho único.
O desempenho pode ser um problema em dispositivos mais antigos. Em dispositivos modernos, a diferença no tempo de carregamento é insignificante.
Mais difícil de configurar o recarregamento em tempo real. O recarregamento real time costuma ser considerado um recurso padrão na engenharia de software. O Ionic usa recarga ao vivo. O recarregamento ao vivo atualiza todo o aplicativo para ativar as alterações.
O recarregamento ao vivo requer a reinicialização do aplicativo para aplicar as alterações recém-adicionadas. Isso afeta a velocidade de desenvolvimento. Atualizar o aplicativo toda vez que o código é atualizado pode retardar todo o processo.
Como o processo de construção do Ionic é baseado no Angular CLI, é possível configurar a substituição de módulo real time (HMR). O HMR pode trocar, adicionar ou remover módulos enquanto um aplicativo está sendo executado, sem uma recarga completa.
Precauções de segurança. Qualquer processo de desenvolvimento de aplicativo móvel será repleto de questões de segurança. Como o Ionic é construído em tecnologias da web, os desenvolvedores precisarão considerar a segurança da web, bem como questões de segurança de aplicativos nativos. No entanto, a segurança não é necessariamente um problema de tecnologia. É um problema do desenvolvedor. A criação de aplicativos depende mais dos processos da empresa e das habilidades e experiência do desenvolvedor. Um bom desenvolvedor criará um aplicativo seguro de plataforma cruzada, e um mau desenvolvedor pode criar um aplicativo nativo com vulnerabilidades.
Contanto que os aplicativos possam ser submetidos à engenharia reversa, há uma preocupação com a segurança. A partir da versão 4, o Ionic CLI inclui uglificação integrada. Uglification é uma técnica comum para tornar o código difícil para os hackers lerem.
Os aplicativos Ionic são basicamente sites, o que significa que é importante considerar a segurança da web, bem como a segurança móvel. O Ionic se comunica com um back-end usando chamadas HTTP típicas. Você pode proteger seu aplicativo usando as mesmas medidas que usaria em um site, como uma conexão HTTPS.