Flutter é o novo queridinho da comunidade mobile, em especial de desenvolvedores Android. Nesse artigo vamos entender que ferramenta é essa, o que ela resolve e o que podemos esperar para o “flutturo”! 

O que é? 

O Flutter é um SDK para o desenvolvimento de aplicativos híbridos crossplataforma

WhaaaaatEnglish, please 

Ok, vamos lá! O Flutter utiliza uma linguagem chamada Dart, que é fortemente tipada, orientada a objetos e de fácil aprendizado. A promessa do SDK é permitir que você construa um único app, com uma base de código unificada, e compile esse app para diversas plataformas, como iOS, Android, Web, PWA e Desktop. Uma promessa e tanto, não? 

Write Once, Run Everywhere

Escreva uma vez, execute em todo lugar.

O conceito mais propagado pela comunidade Flutter é o write once, run everywhere. Isso se deve ao fato de diversos outros SDKs, no passado, terem também tentado a mesma coisa. Vimos essa tentativa com o React Native, que teve grande adoção da comunidade de desenvolvimento web, devido à utilização do Javascript como linguagem de programação e do React como engine de renderização. Por outro lado, houve uma rejeição muito alta da comunidade nativa devido a diversos bugs encontrados no SDK, problemas relacionados a performance e também dificuldades de integração do código nativo, além da propensão natural a erros ao utilizar uma linguagem de tipagem fraca (JavaScript) e dificuldades com testes unitários. 

Learn Once, Apply Everywhere 

Aprenda uma vez, utilize em todo lugar.

Além de oferecer uma linguagem tipada de alto nível, assim como o Dart, o Flutter também encurtou a distância entre o ambienteflutter e o ambiente de desenvolvimento nativo, sendo muito simples a integração com código nativo. 

Estando mais próximo das práticas nativas de desenvolvimento de cada plataforma, a aceitação nas comunidades de desenvolvimento mobile tem sido muito alta, com imenso apoio também da comunidade Android no Brasil. 

A natureza do Flutter difere também entre as alternativas de apps híbridos, ao utilizar o conceito learn once, apply everywhere. Dessa forma, o objetivo não é compartilhar 100% da base de código entre os apps, mas entender as características e limitações do SDK para atingir o máximo possível de compartilhamento de código sem prejudicar a performance e a experiência do usuário. E essa característica é o principal fator que torna viável hoje a adoção do Flutter em um produto, novo ou legado. 

 “Flutturo” 

Acreditamos que a adoção do Flutter crescerá muito, com evoluções significativas no SDK, mas fazemos algumas ressalvas quanto à adoção imediata da solução. 

Considere, sempre que possível, a utilização de desenvolvedores nativos no projeto que possuam expertise no desenvolvimento para as plataformas nativas. 

Caso seu app tenha uma grande base de usuário, ou exista a possibilidade de crescimento do número de usuários escalando o seu app, sugerimos a adoção do Flutter como recurso experimental. Para isso, modularize seu app e utilize o Flutter em features menos sensíveis, minimizando assim o risco de impacto ao usuário devido a bugs no SDK.  

Atualmente na versão estável 1.7 e com tendência a muitas evoluções, fatalmente em algum momento, para aproveitar as evoluções do SDK, será necessário fazer a migração e efetuar migrações de SDK em um contexto de app modular é muito mais simples e seguro. 

Aqui na Iteris já desenvolvemos soluções de apps com Flutter em nosso portfólio. Fale conosco hoje mesmo e saiba como podemos ajudar seu produto a voar com o Flutter e outras tendências em tecnologia para desenvolvimento de apps.