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.
Whaaaaat? English, 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.