Flutter: benefícios e desvantagens do desenvolvimento cross-platform

Tags:    

Receba atualizações semanais no e-mail

Desenvolvimento mobile híbrido com qualidade? É o que o Flutter oferece! O framework  lançado pelo Google em 2018 trouxe uma evolução no cenário dev mobile, especialmente por sua característica multiplataforma que oferece diversas vantagens para empresas e desenvolvedores também.

Aqui iremos discorrer sobre as vantagens e também desvantagens do desenvolvimento Flutter, bem como requisitos para o desenvolvimento.

Para aqueles que desejam contratar empresas com Flutter em seu catálogo de tecnologias, trago também dicas para contratar e bons exemplos de aplicativos criados com a tecnologia da Alphabet.

Vamos lá?

O que é Flutter?

O Flutter é o framework UI open source desenvolvido pelo Google em maio de 2017 para o desenvolvimento mobile, web, desktop e incorporados. Sua premissa é desenvolver aplicativos para qualquer tela pelo seu caráter multiplataforma. A linguagem de programação necessária para seu uso é o Dart, também criada pela empresa big tech da Alphabet.

Com isso, o desenvolvimento em Flutter é do tipo cross-platform, uma vez que um mesmo código é capaz de compilar para diferentes plataformas, como Android, iOS, Windows, MacOS, etc.

Histórico do Flutter

Durante a conferência do Google I/O de 2017, o Google anunciou o lançamento do seu novo framework UI, um ano após o lançamento do Kotlin como linguagem oficial para o desenvolvimento nativo para Android.

Inicialmente, o objetivo do Flutter era o desenvolvimento mobile, com a premissa de, a partir de um código, compilar para versões nativas tanto para Android quanto para iOS. Apesar da anunciação ter sido em 2017, somente em dezembro de 2018 que a versão 1.0 foi definitivamente liberada para os desenvolvedores utilizarem a SDK.

O caráter exclusivamente mobile se alterou. Em 2019 o Flutter adicionou suporte para plataformas web e desktop, como Windows, MacOS, Linux.

Em função de sua estabilidade e segurança, além da curva de aprendizado rápida, o Flutter ganhou destaque entre os desenvolvedores, alcançando grandes empresas como o caso do Nubank, BMW e Volts Motors.

Vantagens do Flutter

Uma das falas que costumo ouvir no time de desenvolvimento Flutter da Usemobile é quanto a curva de aprendizado, sendo um framework mais fácil de absorver em comparação com as demais tecnologias mobile.

É destacado que o Flutter oferece a vantagem de poder aprender a ferramenta e a linguagem simultaneamente, enquanto que outras plataformas exigem aprendizado aprofundado em um antes de avançar para o outro.

Para além deste ponto, há ainda outras vantagens que valem a pena destacar quanto ao desenvolvimento em Flutter:

Multiplataforma

Uma vez que foi adotada a premissa de compilar para diversas plataformas, o Flutter acaba por ser versátil, o que é atraente para empresas que trabalham sob a lógica de equipes enxutas, como é o caso das Lean Startus.

Acesso aos recursos de hardware

Ainda que de forma limitada, o Flutter permite acessar os recursos dos smartphones como câmera, GPS e sensores através de packages e plugins. 

Com isso, aplicativos com um grau de complexidade maior se tornam possíveis de se desenvolverem com Flutter, como o caso do aplicativo da Bosch, DriveB Fleet, que utiliza serviços de geolocalização.

Ascensão no mercado

Tendo em vista que empresas como Nubank, Bosch e Olho no Carro utilizam o desenvolvimento Flutter, isso mostra a relevância que o framework está ganhando no mercado. Com isso, abre espaço para o desenvolvimento e se torna vantajoso aprender a desenvolver 一 ou escolher para o projeto de um aplicativo.

O próprio Google tem absorvido sua própria tecnologia como é observável no Google Earth. O aplicativo foi refeito em Flutter para Android, iOS e Web, servindo de amostra do quão otimizado o framework é.

Outro exemplo de ascensão e vantagem é a facilidade de integração com demais ferramentas do Google, como é o caso do Firebase.

Mais barato

Dentre os motivos que justificam a escolha dos recursos tecnológicos de um aplicativo, o preço é um deles. O caráter multiplataforma é algo que torna o desenvolvimento mais acessível, bem como também a facilidade de acesso por se tratar de uma ferramenta open source e gratuita.

Dispensa hardware Apple

O desenvolvimento nativo para iOS exige que o desenvolvedor tenha gadgets da Apple como um Macbook, iMac ou Mac Mini. Já com o desenvolvimento em Flutter, essa necessidade é “descartada” uma vez que sistemas Linux e Windows dão conta com IDEs como Visual Studio.

Contudo, há situações as quais um gadget da Apple seja necessário sim, como é o caso de bugfixes para a emulação de um iphone para reproduzir o bug; para a configuração de build flavors; e também para gerar versão do aplicativo iOS.

No entanto, se apenas uma pessoa da equipe de desenvolvimento tiver um macbook, por exemplo, já é o suficiente para suprir essa necessidade.

Widgets personalizáveis

Análogo aos componentes, os widgets são as uma espécie de Lego que são utilizados para compor um layout final. São dois os tipos: Stateless e Stateful, que representam widgets, que servem para colunas, filas, stacks; enquanto que há também os de interface, servindo para texto, switches e botões.

Hot Reload

O Hot Reload é um excelente recurso de otimização do desenvolvimento. Durante a etapa de construção do app, se torna desnecessário buildar toda a aplicação, pois o Hot Reload mantém os fluxos e estados do aplicativo contínuos, rebuildando apenas o que for necessário.

Esse recurso oferece uma grande vantagem para os desenvolvedores, uma vez que otimiza o tempo. 

Além disso, durante a etapa de debugging, o hot reload também é uma mão na roda na hora de fazer as correções de bugs pelo mesmo motivo.

Desvantagens do Flutter

Embora existam muitas vantagens e benefícios do Flutter, também há o lado negativo que devemos considerar na hora de desenvolver um projeto ou escolher a tecnologia como principal stack na carreira de desenvolvimento.

Tamanho do aplicativo

O tamanho final do arquivo apk pode ser maior que as versões nativas em função da engine Flutter no app. Isso pode gerar questões para o upload do aplicativo nas lojas bem como o espaço de armazenamento nos dispositivos dos usuários finais.

Dependência de packages

No Flutter, contamos com a ajuda dos packages, que são pacotes de códigos reutilizáveis de funcionalidades ou bibliotecas adicionais a serem incorporadas ao aplicativo. Eles são construídos pela própria comunidade Flutter ou por terceiros, disponibilizados online.

Isso significa que, ao sair novas funcionalidades para os OS, será necessário aguardar por atualizações em packages pra implementar as novidades. O que significa também ficar dependente da qualidade e das atualizações dos packages.

Além do mais, o uso de diferentes pacotes pode resultar em incompatibilidades, o que também prejudica o desenvolvimento.

No entanto, há muitos benefícios também em utilizá-los, uma vez que também otimizam tempo com soluções já prontas e uma ampla variedade de recursos uma vez que a comunidade Flutter é volumosa.

Dificuldades com comportamentos nativos

A depender do cliente ou do que foi projetado pelo UI/UX designer, pode haver a expectativa de fazer com que o aplicativo tenha comportamentos nativos tanto na interface quanto na experiência. Esse é um fator que pode ser problemático para o Flutter, uma vez que há a dependência com os mencionados packages para a execução destes comportamentos.

Para resolver essa questão, os desenvolvedores podem usar do Method Channels. Isto é, escrever o código para o comportamento nativo em Kotlin e Swift na MainActivity.kt e no AppDelegate.swift, respectivamente, e chamá-los no Flutter.

O contrário também é possível de ser feito, isto é, escrever telas em Flutter nos aplicativos nativos Android e iOS, como é descrito na documentação.

Há ainda outros fatores que influenciam neste ponto, bem como o aumento da complexidade para tais comportamentos através de encapsulamentos, as variações comportamentais entre iOS e Android, dentre outros.

Requisitos para o desenvolvimento em Flutter

Independente da plataforma desktop utilizada, o Flutter se adequa. Logo, seu computador pode ser Windows, MacOS ou Linux. O framework exige cerca de 4GB livres para a instalação, assim como uma recomendação de memória RAM de 8GB para um desenvolvimento mais fluido ─ além de um processador de pelo menos 64 bits.

Para o Ambiente Integrado de Desenvolvimento, vulgo IDE, podemos contar com o Android Studio e Visual Studio Code.

Quanto às ferramentas de desenvolvimento, devem ser instaladas as SDKs do Flutter e do Dart, a linguagem de programação do framework.

Como configurar ambiente de desenvolvimento para Flutter

Os primeiros passos pode ser um pouco confuso para todos, então, como uma imagem vale mais que mil palavras, disponibilizo um tutorial de instalação do Flutter no Windows no vídeo abaixo:

Exemplo de aplicativos feitos em Flutter

Apesar do Flutter ainda ser novo, com seus quase 5 anos de lançamento até a data de publicação deste artigo, ele ocupou bastante espaço nas empresas de tecnologia ou que fazem o uso dela.

Este é o caso do Nubank, das principais fintechs do cenário brasileiro, assim como tecnologias do Alibaba, dona do AliExpress e produtoras automobilísticas como a BMW, Toyota e Voltz Motors.

Ainda sobre o ramo de automóveis, o Olho no Carro, plataforma de consulta de placas veiculares, também se lançou no universo mobile através do Flutter; bem como a Bosch com sua solução de gestão de tráfego, o DriveB Fleet.

Conheça mais dos casos de sucesso do Flutter.

Como contratar uma empresa que desenvolve em Flutter

Para chegarmos a esse assunto quer dizer que já foi tomada a decisão de que Flutter será a tecnologia do projeto e que está claro as diferenças entre o desenvolvimento nativo e híbrido. Portanto, as próximas etapas a serem consideradas são:

Busca por fit cultural

Assim como na hora de contratar pessoas para contribuir para o time de desenvolvimento, a compatibilidade cultural também é importante na hora de decidir qual empresa ideal para o outsourcing de desenvolvimento.

Isso porque os estilos de trabalho e comportamentos incompatíveis são causas para desafios no relacionamento de TI, como a comunicação, que veremos abaixo.

Avalie a comunicação

Das principais chaves de relacionamento entre empresas, a comunicação se faz presente. Através do bom alinhamento que o projeto irá garantir maiores chances de sucesso. Com isso, avalie cada ponto de contato com a empresa, observando o grau de cuidado e atenção em ser transparente e disponível.

Esse é o fator que garantiu o sucesso entre a Bosch e a Usemobile ao desenvolver o aplicativo DriveB Fleet. A gestora de projetos, Estefane Silva, destaca que “era muito bom trabalhar com eles”, fala promovida pela comunicação eficiente e processos bem definidos, essenciais para o desenvolvimento de projetos.

Qualidade técnica da empresa

Claramente, líderes de projetos prezam pelo maior desempenho técnico possível. Por isso, o grau de experiência da empresa faz valer a pena a contratação, pois o retorno para a experiência dos usuários é notória, bem como a qualidade técnica agrega ao produto e sua percepção geral sobre ele.

Por isso, analise os cases de sucesso, procure por reports das empresas em plataformas como ReclameAqui ou em seus perfis nas redes sociais, além das avaliações nas lojas de aplicativos.

Contudo, tenha parcimônia com o último tópico, pois usuários podem ter insatisfações que dizem respeito às regras de negócio e não a qualidade técnica. Este é apenas um dos motivos que impulsiona avaliações nas lojas. Logo, não necessariamente um comentário refletirá a performance técnica.

Assim, o ideal mesmo é conhecer os depoimentos de clientes e o grau de satisfação deles.

A Usemobile é uma software house de desenvolvimento de sistemas web e aplicativos que possui o Flutter em suas stacks. Que tal orçar um orçamento com a gente? Preencha o formulário abaixo para verificar como nossas soluções podem contribuir para sua equipe de desenvolvimento e projeto:

Leve a potência mobile para seu negócio

Tópicos

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts relacionados

Estamos contratando, venha conferir nossas vagas