Tempo de leitura: 5 minutos

Eae devs, tudo sussa?

Achou que o blog tinha morrido? acho errado otário!

A verdade é que além dos trampos da empresa que vem crescendo razoavelmente bem eu tenho
me focado também no material dos cursos que vou lançar em breve, a idéia é lançar um material
básico de forma gratuita no youtube e conteúdos mais avançados através de cursos na udemy ou hotmart.

Maaas, a intenção aqui não é fazer jabá e sim falar um pouco da experiência que eu tive com o flutter,
esse framework de desenvolvimento multi plataforma do Tio google que vem causando um buzz na comunidade
de desenvolvedores mobile, este artigo está pra ser postado no blog a algumas semanas mas eu preferi agregar mais algumas informações para
finalmente liberar e inclusive poder colocar alguns “pontos negativos”.

Antes de tudo, meus amigos devs sabem que eu nunca fui entusiasta destes frameworks de desenvolvimento multi plataforma,
já usei phone gap, xamarin e react native em projetos reais, de produção, mas A MINHA OPINIÃO sempre foi a mesma. Quer um projeto com praticamente 100% de qualidade? Quer proporcionar a melhor experiência pro usuário? Quer ter o controle do que o aplicativo está fazendo? (na maioria das vezes pelo menos). Quer fluidez? VAI DE CÓDIGO NATIVO.

Nos projetos minha primeira opção sempre foi tentar desenvolver em código nativo, seja java, kotlin, objective c ou swift, eu digo tentar pois as vezes você esbarra em aspectos financeiros, mesmo explicando os pontos negativos, na maioria das vezes o cliente não aceita pagar mais para você desenvolver em duas plataformas, por experiência própria, eu digo, ou ele vai aceitar fazer em uma plataforma híbrida, ou ele vai focar na que ele acha que vai trazer mais retorno financeiro (em casos de aplicativos com objetivo de ganho financeiro).

Mas veja bem, isso significa que eu acho que estes frameworks/sdks como Xamarin, React Native e outros não prestam?

Claro que não, tudo que coloco aqui no blog é opinião pessoal, eles servem pra vários fins, mas eu por ser meio chato purista acabo não utilizando tanto, existem casos de aplicativos complexos desenvolvidos com estes frameworks vide Storyo, Captio, Fareboom, Facebook, Facebook Ads, Instagram Push Notifications, Tesla, Walmart, Uber Eats e Airbnb (antes de mudar pra desenvolvimento nativo conforme explicado aqui), no final de tudo acredito que o problema seja mais comigo do que com estas ferramentas, existem desenvolvedores mundo afora trazendo realmente experiências muito positivas com React Native e Xamarin, vide os apps que citei acima.

O fato é que é normal que um desenvolvedor web prefira desenvolver um aplicativo mobile com alguma tecnologia web, tipo html, css e javascript, do mesmo jeito uma pessoa que já desenvolve em C# vai tender a usar o XAMARIN pra desenvolver apps, e claro, não há problema algum nisso, a tendência é que queiramos trabalhar com o que nos sentimos confortáveis e acredito que o meu caso era de justamente não me sentir confortável trabalhando com estes frameworks, mas isso mudou…

O que é flutter?

Flutter é um SDK de desenvolvimento mobile (agora pra desktop e web também) desenvolvida pelo google, a intenção é desenvolver apenas um código e gerar aplicações mobile, desktop e web, diferente de outros SDKs como React Native, o flutter não usa javascript como linguagem de programação, e sim uma linguagem própria, o DART, que é executada sem “pontes” com o sistema operacional do celular, ocasionando em maior fluidez.

A oportunidade

Eu venho acompanhando o flutter desde que o google anunciou o beta 1 no mobile world congress, e é impressionante ver como ele se desenvolveu de lá até aqui e como a comunidade abraçou, se algo do gênero fosse lançado por alguma empresa aleatória, talvez eu não desse atenção, mas se tratando do google, que óbvio, não tem sempre o toque de midas (vide Google Wave, Google+) mas que tem um percentual de acertos maior do que o de erros, além de ser um gigante da tecnologia e que com certeza tem em seu plantel de funcionários os maiores engenheiros de software do mundo, até aqui eu vinha brincando com o flutter, mas nada de projetos de produção.

No início de 2019 surgiu a oportunidade um novo projeto, este projeto incluiria algumas mudanças em um aplicativo de fisioterapia que já tínhamos desenvolvido para um cliente, além da criação de um aplicativo totalmente novo, só para o cliente gerenciar a parte financeira e cadastros dos outros profissionais de fisioterapia, estava aí a oportunidade de ir mais fundo no flutter, vou listar abaixo os pontos dessa experiência.

 

Os problemas

1 – Sem suporte embutido para Maps e Câmera, tendo que usar APIs nativas ou plugins.

Como resolvemos: Esse problema foi bem tranquilo, pois já tínhamos o código para utilizar a API nativa, então foi apenas questão de adaptar.

2 – Sem suporte para REALM

Como resolvemos: Isso me incomodou um pouco, eu adoro Realm, que pra quem não sabe é um banco de dados pensado para dispositivos móveis, além disso ele ainda abtrai o acesso aos dados, como um ORM, nisso não teve muito o que fazer, tivemos que usar o SQLite.

3 – Algumas bibliotecas interessantes não são suportadas como Pusher, Signature, etc.

Como resolvemos: Aqui tivemos que apelar para os plugins.

4 – O número de issues abertas

Como resolvemos: Não resolvemos, sabemos que a plataforma está em desenvolvimento, mas nem tudo no github do flutter é referente a feature novas, tem vários bugs, o ponto positivo é que a comunidade sempre tem uma “gambiarra” pra resolver os problemas que você venha a ter.

As coisas boas

1 – Reusabilidade de código: Isso foi realmente uma experiência bem positiva, conseguimos aproveitar 70% do código (Android e IOS), o que tornou o desenvolvimento para duas plataformas absurdamente mais rápido, é ainda é possível utilizar em desktop e na versão web!

2 – Interface do usuário: Aqui o trabalho do time do flutter foi sensacional, o jeito de trabalhar do flutter me seduziu, apesar do desenvolvimento da UI ter similaridades com o React Native, o flutter me pareceu muito mais fluído, além do resultado final ter me agradado bastante, o fato de tudo da interface ser um widget ajuda muito a planejar a interface, o único problema é que pelo fato de você ir aninhando os componentes, se você não tomar cuidado acaba fazendo código hadouken.

3 – Tempo de compilação: O tempo de compilação do aplicativo no flutter é de 60 a 70% mais rápido, fora que se for uma atualização incremental, com o hot reload você já consegue ver a atualização no emulador em 1 ou 2 segundos.

4 – Testes unitários: Essa aqui é outra parte deliciosa, os testes escritos e manuais, em sua maioria tem comportamento igual tanto no IOS como no Android, exceto nos casos onde você tenha que acessar algum recurso nativo da API do sistema.

5 – Linguagem Dart: O último ponto a destacar é a linguagem DART, bem tranquila de trabalhar, pra quem já conhece switft ou kotlin, vai achar molezinha.

 

Em breve vou lançar uns vídeos no meu canal do youtube ensinando a como fazer uns aplicativos com flutter, já posso adiantar que o primeiro vai ser o gerenciador financeiro, fiquem ligados.

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)