Mobile

Desenvolvimento para mobile: Ionic, React-Native ou Flutter, qual usar?

Se você deseja entrar no desenvolvimento móvel, deve ter ouvido falar sobre algumas das tecnologias emergentes na área. Mas com tantas opções, como saber por qual começar? Qual mercado é maior? Qual tem futuro? Qual é o melhor?

Por isso, neste artigo, discutiremos dois deles em ascensão: React Native e Flutter. Como cada um deles se posiciona no mercado? Qual deles oferece a melhor experiência de desenvolvimento?

Qual a melhor plataforma para desenvolvimento mobile?

Estamos realmente fazendo uma pergunta que veio antes de muitas pessoas envolvidas em projetos de aplicativos móveis nos últimos anos.

Claro, temos várias outras soluções multiplataforma como Xamarin e Phonegap.

Mas neste ponto, temos que concordar que as três tecnologias discutidas neste artigo são preferidas pela maioria das empresas e grupos que usam aplicativos multiplataforma.

Então podemos dizer que a melhor opção tem que ser aquela mais utilizada na prática cotidiana, certo?

Então vamos tentar entender o que cada um tem a oferecer e ver se conseguimos encontrar algo prático para justificar a escolha.

No desenvolvimento para mobile tudo depende da ocasião

Eu realmente não quero começar este post desta forma, mas acho que é desleal a você, o leitor que está procurando por esta resposta.

Mas agora aqui está um clichê que você provavelmente já ouviu em alguns casos em que o autor não quer se comprometer:

Não existe uma bala mágica no mundo da tecnologia.

E acho que, infelizmente, essa frase nunca foi tão válida no universo com o qual estamos lidando.

Então, o que podemos fazer aqui é tentar ver o desempenho de cada solução em alguns cenários específicos e ajudá-lo a encontrar o melhor ajuste, se necessário.

Bem, não vou entrar muito na parte teórica, pois você pode encontrar isso em vários materiais na internet, e com certeza é muito melhor do que posso dizer, mas vamos pelo menos tentar definir os conceitos básicos de cada materiais.

Ionic

Como o site oficial da Ionic define “aplicativos multiplataforma”. Construa com a web”, ou seja, faça a aplicação como se estivesse construindo um sistema para a web.

E eu não acho que seja apenas uma “maior visualização da Web”, como muitas pessoas que eu vi dizem.

Em sua versão mais recente, podemos dizer que consegue oferecer a mesma funcionalidade que seus concorrentes, acessando recursos nativos como a câmera e, por ser web, integra uma ampla gama de frameworks como React, Angular e Vue.

Também oferece a possibilidade de oferecer uma versão desktop ou até mesmo usar um PWA.

Então podemos pensar: “Aí! Encontramos a solução perfeita! Afinal, é tudo feito pela web, reduzindo a curva de aprendizado para a maioria dos programadores, integra tecnologia SPA a partir principalmente de Javascript, e cria uma aplicação desktop!”.

É realmente muito genérico, mas temos que lembrar que para fazer tudo isso e ser uma solução de ponta, ela precisa estar “longe” do hardware do seu dispositivo e passar por uma visualização da web e uma “ponte” que é feito com tecnologia Cordova.

Portanto, embora seja versátil, temos que lembrar que desempenho não está entre suas qualidades e, dependendo das regras de negócios que estamos analisando, pode causar uma certa dor de cabeça.

React-Native

Aqui arrisco dizer que é o mais famoso dos 3, baseado no próprio ReactJS, framework desenvolvido pelo Facebook para desenvolvimento de plataformas SPA, que não só se tornou o principal concorrente do AngularJS como também o deixou para trás. desenvolvimento de aplicações.

O React-Native usa Javascript e Typescript para desenvolver aplicativos e, ao contrário do Ionic, ele se conecta com dispositivos para maior desempenho.

E usando Javascript, tem acesso a APIs nativas para dispositivos que rodam muito mais rápido que tecnologias híbridas.

Com esse acesso nativo, consegue fornecer as propriedades características de cada dispositivo, como botões, entradas, seletores de data, etc., para dar uma melhor impressão de desenvolver aplicativos usando nativo.

Além de possuir uma grande comunidade, já existem bibliotecas para utilizá-lo tanto em ambientes web quanto desktop.

Sim agora! Encontramos a solução ideal! ? calma…

Temos que lembrar que para acessar componentes nativos ele ainda precisa de JavaScript porque não sabe “falar com a máquina” como um app nativo, claro, nossa curva de aprendizado será mais limitada, tendo que saber usar react’s tecnologia

Flutter

Por fim, temos o Flutter, a mais recente das 3 soluções. Mantido pelo Google e traz mais um conceito de tecnologia multiplataforma.

Também trabalha com o padrão SPA utilizado no React-Native, mas ao invés de utilizar componentes, utiliza os chamados Widgets, cuja estrutura de projeto é formada por uma árvore de widgets.

E assim podemos pensar qual é sua diferença com o React-Native, e está justamente em dois pontos principais:

Sua linguagem, que é o Dart, uma tentativa do Google para substituir o JavaScript em 2011 (Mas que não deixa a desejar em nada);

A forma como ele se comunica com os dispositivos, além de usar APIs nativas, usa uma biblioteca de interface gráfica chamada Skia, que agora também é de propriedade do Google.

Como resultado, seu aplicativo não acessa a funcionalidade nativa, mas roda como um jogo no dispositivo, oferecendo uma experiência mais interativa e visual do que outras opções.

Como definir qual é a melhor plataforma de desenvolvimento para mobile?

Como eu disse no início, o conceito de “melhor” deve ser aplicado em situações controladas, então a forma que decidi escrever este artigo é mostrando cenários específicos e fazendo exercícios mentais para entender qual técnica funciona melhor.

Se a sua situação não se aplica a nenhum deles (provavelmente é), tente replicar a mesma lógica de pensamento, talvez isso o ajude a tomar sua decisão final.

“Meu site não tem muita interação com o usuário, não tenho experiência em desenvolvimento mobile e já estou usando a web”.

Este é um caso típico que muitos desenvolvedores web irão encontrar e, na maioria das vezes, o foco aqui não será em coisas como desempenho e complexidade de recursos no software, mas sim em entregar um resultado controlado, se possível, em um rápido prazo.

Um bom exemplo é quando uma empresa tem um CRM e pede que seus engenheiros de software responsáveis ​​façam um aplicativo que permita que seus clientes acompanhem o andamento da entrega de seus produtos.

Observe que não estamos falando de nada muito “complexo” nas regras gerais de negócios, mas isso precisa ser feito.

Acho que considerar uma ferramenta como o Ionic irá ajudá-lo nessa situação, pois já temos experiência anterior com redes e o foco atual da equipe não é e não será no desenvolvimento móvel e já existe uma solução pré-existente.

Assim, podemos ver que a Ionic faz um trabalho muito bom quando pensamos em entregar valor rapidamente sem um grande investimento ou curva de aprendizado.

Mas isso significa que é o único? de jeito nenhum! Mas preciso me dar essa permissão poética para escolher se quero ou não que este artigo signifique alguma coisa para sua pergunta escolhida.

“Minha empresa já tem soluções de software e agora quer usar essas mesmas soluções para desenvolvimento mobile”.

Aqui temos uma situação mais ampla e pode haver várias outras respostas, mas tenha em mente que este é um exercício mental que você também pode fazer dentro da sua área de trabalho.

Pela minha própria experiência, que eu mesmo passei, já existe um modelo de negócio comprovado que busca escalar, e neste momento temos que colocar vários fatores em pauta, como:

Qual é a pilha do seu programador?

Como foi desenvolvida a solução atual?

É necessário contratar novos colegas?

investir?

Tempo?

e muitos mais…

Mas aqui vou pegar todos esses pontos como chave, vou apontar o React-Native, por isso estamos falando de uma solução, das 3 soluções, é a mais prestigiosa, aplicável. uma gama muito ampla de linguagens de programação (Javascript) em nossa região, por isso temos muita mão de obra e comunidade à nossa disposição.

Isso reduz o risco e permite previsões mais consistentes sobre o futuro desses projetos.

“Tudo é novo, novo negócio, novo produto, novo conceito”.

Agora vamos colocar a situação com a qual queremos começar neste cenário.

Apresentar realismo, modernidade e protagonistas é muito importante, principalmente quando se trata de tecnologia.

Vale lembrar que vou retirar o termo “investimento” dessa equação, imagine que estamos em um cenário perfeito.

Neste caso, faz sentido considerar o Flutter, pois as 3 soluções aqui não têm pressa em dizer, é a que mais cresce em comunidade e adesão, e tem uma grande ligação ao mundo das Startups.

Nesse ponto, é provável que forneçamos à equipe uma curva de aprendizado significativa ou a rara e cara contratação única de profissionais treinados.

Mas, no longo prazo, teremos soluções mais modernas e com maior desempenho, o que pode ser o futuro do mercado.

Agora você pode pensar:

“Mas meu caso? Não se aplica a nenhum desses cenários de desenvolvimento móvel e ainda não tenho certeza de qual escolher!”.

Bom, agora você precisa estudar e conversar bastante para entender os pontos chaves do seu negócio como timing, investimento, risco, mercado, engajamento, etc.

No entanto, você pode encontrar mais de uma solução possível. Neste ponto, pode ser divertido “perder” algum tempo fazendo Hello World e pode ajudá-lo a decidir.

Pronto, já escolhi, mas e se eu me arrepender?

Lembre-se sempre de que estamos falando de tecnologia e, mais especificamente, de programação, e as ferramentas flutuam constantemente em nosso universo.

Se você já está no espaço multiplataforma, terá sorte, porque mesmo que tenha que mudar sua estratégia no meio do caminho, provavelmente ainda precisará de um investimento final menor do que um projeto feito localmente.

Nem sempre tudo o que você fez está perdido porque várias decisões foram tomadas sobre como o produto final deve funcionar, e agora é só começar a trabalhar!

Espero que este artigo seja mais uma ferramenta útil para ajudá-lo a decidir, e lembre-se sempre que em um mundo em que vivemos, experimentação, teste e regressão são rotina, e quanto mais opções tentamos, mais temos certeza sobre qual delas. de opções é o nosso ideal. nosso caso.