O que (quase) 2 anos de Flutter me ensinou

Fellipe Malta
EngApp
Published in
6 min readJan 14, 2020

Faz muito tempo desde o meu primeiro “Hello World” no Flutter e, desde aquele dia até agora, muitas coisas mudaram, como desenvolvedor e com o próprio Flutter.

Todos nós tivemos um começo em nossas carreiras, a minha, é claro, não foi com Flutter, como eu gostaria, mas aprender outras tecnologias e nunca parar de tentar se tornou um esforço para mim e minha empresa.

Em 2017, eu estava na faculdade, tinha acabado de chegar e não sabia quase nada sobre desenvolvimento móvel ou como uma empresa de tecnologia funcionava, era tudo novo e emocionante. No segundo semestre, tive uma idéia de um produto, um produto bobo, mas na minha cabeça era um ótimo aplicativo, um produto revolucionário. Quão tolo eu era. Era apenas mais um aplicativo entre os outros no mercado.

Eu sempre fui muito teimoso, não aceitei o NÃO como resposta e persisti com a minha ideia. Antes da última aula do meu dia, eu e um amigo, que sou meu parceiro na minha empresa, decidimos procurar e conversar com pessoas que já haviam começado alguns negócios enquanto estavam na faculdade. Então nós encontramos um! Era um professor nosso e era um cara muito legal, muito modesto e simples, o que nos fez ir conversar com ele.

Chegando ao seu escritório, começamos a conversar sobre tecnologias, negócios e, depois de começar a contar minha ideia, ele me convenceu de maneiras muito diferentes, que não funcionariam como eu esperava, e ele provou isso também. Claro que fiquei chateado com o feedback, mas, isso acontece, precisamos ter alguns altos e baixos em nossas vidas.

Então, eu e meus amigos começamos a procurar mais idéias, mais projetos, construir um portfólio, mas … Em qual stack? Na época, em meados de 2017, não sabíamos sobre Flutter ou que o Google estava desenvolvendo / havia desenvolvido um SDK para celular. Tivemos algumas opções de mercado, como: Android nativo, Ionic, Cordova e, claro, o favorito do mercado, o React Native.

Analisamos cada um deles e escolhemos o React Native como nossa stack principal, afinal, como todos dizem, é um framework de multi plataforma, funciona no Android / iOS e, é claro, foi aplicado um lema muito antigo :

Escreva uma vez, execute em qualquer lugar

Bem, esse lema não funcionou para nós como esperado. Primeiro, esperávamos que os mesmos componentes que vimos no emulador fossem mostrados nas duas plataformas, o que não aconteceu até encontrarmos uma biblioteca que constrói componentes usando outra abstração da interface do usuário.

Segundo, a curva de aprendizado para um iniciante era um pouco dura demais, a documentação não estava nos ajudando na época e eu me senti mais prejudicado do que ajudado, porque eu era / sou o front-end da empresa.

Tudo isso foi superado depois de um certo tempo, era a única ferramenta que atendia às nossas necessidades, então vamos lá.

Conseguimos criar alguns produtos internos, principalmente para criar portfólio, aprender e adquirir habilidades, mas nada muito sério como um software pronto para produção, estávamos aprendendo e tentando ganhar algum dinheiro ou ser contratado por alguém.

Em 23 de junho de 2018, meu aniversário, ocorreu um evento incomum, além disso. Eu e outros dois amigos estávamos tentando atualizar um produto interno com algumas solicitações HTTP e, estávamos usando o Axios, até agora tudo bem, certo? Para mim, estava tudo bem também, mas então aconteceu algo estranho, ficamos presos em um GET, um método muito simples usando alguma API de dados genéricos, apenas para testá-lo, mas nada funcionou para nós naquele dia.

Meu amigo, CTO da empresa, tentou descobrir isso depois de eu ter tentado por 3 horas e adormecido no sofá, quando acordei às 5 da manhã, ele ainda estava acordado e com muita raiva e depois perguntei o que havia acontecido. Ele me disse que o Axios estava desatualizado e é por isso que não estava funcionando como o esperado.

Foi um dia muito triste, todos nós ficamos um pouco deprimidos com o resultado e pensamos em desistir e focar na faculdade novamente. Desde aquele dia, não produzimos mais nada. Porém, alguns dias depois, algo aconteceu. No início do mês seguinte, recebemos uma ligação de um empresário que estava interessado em desenvolver um aplicativo conosco, é claro que ficamos muito animados, seria o nosso primeiro projeto e um projeto real.

Conversamos por pelo menos uma hora com ele e, ao final de nossa ligação, ele fez uma pergunta peculiar para nós, perguntou se já ouvimos falar de uma nova tecnologia chamada “Flutter”, na época ouvimos apenas e como não codificamos nada para saber mais, dissemos “sim, mas nunca fizemos nada com isso”; portanto, ele nos deu um mês de prática completa para nos adaptarmos à linguagem e sintaxe.

Na mesma noite, compramos um curso de Flutter na Udemy de Stephen Grider e foi fenomenal, tudo foi tão rápido e fácil de aprender, que não tivemos dificuldades com o linguagem e nossa curva de aprendizado estava no topo.

Em relação a este mês, em agosto, havíamos terminado 50% do design que ele nos mandou fazer e ainda não tínhamos começado oficialmente. Isso é insano. Nunca tive essa experiência com nenhuma outra linguagem ou estrutura como tive com Flutter & Dart.

Infelizmente, este projeto não foi lançado devido a alguns problemas internos com os executivos, mas foi uma experiência muito boa e prática que tivemos.

Em meados de agosto, fomos contratados para desenvolver outro projeto. No início, ele seria desenvolvido no React Native, mas, desde nosso feedback muito bem-sucedido, contamos a ele sobre Flutter e a suavidade, e ele nos permitiu utilizar o Flutter.

Oh, PS: Flutter estava na versão Beta 0.5.3 na época.

Passamos um ano desenvolvendo esse projeto e particularmente falando, foi uma grande melhoria na minha carreira, mas é claro que não era bom ou feliz o tempo todo, algumas vezes eu tive bastante dificuldade, especialmente porque não havia uma variedade de conteúdo como temos hoje, se você quiser ir mais alto, vai ter que ir por conta própria, porque quase ninguém estava utilizando Flutter, apenas algumas pessoas e com poucos exemplos.

Hoje em dia, vocês podem aprender a gerenciar o estado com o BLoC com muita facilidade, há muito conteúdo, existe uma biblioteca para abstrair todo o boilerplate, mas, eu não tive todo esse caminho fácil e não, não estou me vitimizando, eu consegui aprender o BLoC passo a passo, por pelo menos 2 meses, para aprender bem, é por isso que escrevi este artigo, para divulgar o conhecimento e fazer uma introdução fácil para novos usuários.

Eu posso considerar esses dois / três meses como os mais satisfatórios e ainda mais impressionantes, porque ainda estávamos na faculdade e estávamos lidando com projetos e prazos do mundo real, então foi difícil.

Depois de lidar com o gerenciamento de estado, tudo ficou muito fácil de fazer, a parte mais difícil foi feita e eu pude me concentrar em aprender mais sobre o SDK e foi isso que fiz. Desde o início até agora, estou impressionado com o fato de aprender algo novo com o Flutter quase todas as semanas, como se tivesse começado há duas semanas e ainda há muito mais a aprender.

Meu feedback específico sobre tudo o que aconteceu desde meados de 2018, onde comecei com o Flutter:

  • Se você quiser, você pode fazê-lo;
  • Não desista porque você ficou preso em algum problema ou implementação;
  • A linguagem é ótima;
  • O desempenho é excelente
  • A produtividade está sempre em alta escala
  • Cada vez menos chapa de caldeira que as outras
  • Adeus npm-install
  • Uma documentação muito rica
  • Comunidade muito receptiva que cresce a cada ano ❤️

Falando mais sobre o que fiz com Flutter, eu e minha empresa construímos dois aplicativos de mobilidade urbana, usando WebSockets, multipart request, animações muito fluidas, como Uber usando Flutter, infelizmente, ambos funcionam apenas localmente agora para testes, mas é uma grande surpresa ver como o Flutter, uma tecnologia recente e promissora foi bem construído e facilitou a criação de aplicativos bonitos e rápidos.

Não consigo imaginar o que Flutter não pode fazer, porque fizemos (quase) tudo o que podíamos pensar para levar o SDK ao limite e sempre ficamos muito impressionados com o que podemos alcançar.

Todo esse feedback e conhecimento me deram a oportunidade de falar para alguns eventos na minha cidade, em muitos encontros e até no GDG DevFest para falar sobre essa ótima tecnologia e por isso sou muito grato por tudo o que está acontecendo.

No entanto, tudo isso atiçou minhas habilidades de ensino e, graças a isso, posso ver que meu caminho não é escrever código para sempre, mas ensinar outros e ensinar sobre o que faço, especialmente sobre Flutter, não porque é a tecnologia que eu uso na minha empresa ou qualquer outra coisa, é porque eu sei que vale a pena ser ensinado e se vale a pena, vou compartilhar meu conhecimento. As novas pessoas não precisam seguir o caminho difícil, estou aqui para ensiná-las.

Para finalizar, aprendi muitas coisas nesses anos, mas o que levarei comigo é que você PODE escrever projetos de software ótimos e grandes e não precisará escrever muito boilerplate inicial para fazer as coisas. Basta escrever e se divertir.

Se você é um novo usuário, está começando a aprender, não tenha medo, a comunidade, a documentação, o suporte são ótimos, temos muito conteúdo aqui e no YouTube, e cada vez mais eles são produzidos. Se você é “velho” como eu em Flutter, gostaria de ver seu comentário e compartilhar sua experiência comigo.

--

--