Como se tornar um desenvolvedor Mobile Flutter?
Um guia passo a passo para se tornar um desenvolvedor de sucesso!
Table of contents
- O Crescimento do uso de smartphones e aplicativos no Brasil: Tendências e Impactos
- Seja um Desenvolvedor Mobile: Oportunidades em um mundo conectado
- O que é Flutter?
- Por que escolher o Flutter para iniciar carreira no desenvolvimento mobile?
- Guia para se tornar um desenvolvedor Mobile com Flutter.
- Como aprender Dart?
- Como aprender Flutter?
- Materiais – Onde Aprender?
O Crescimento do uso de smartphones e aplicativos no Brasil: Tendências e Impactos
Após a intensa popularidade do uso de smartphones no mundo, o mercado mobile só cresce, e no Brasil não é diferente. As pessoas já acordam e mexem em seus celulares, checam e-mails, pagam contas, pedem comida, chamam carros por aplicativos, assistem a vídeos, conversam com pessoas, ou seja, eles podem ser usados para diversas finalidades, entre outras, etc.
É inegável o fato de que o uso de smartphones e aplicativos está cada vez mais presente no dia a dia da população, pois eles proporcionam facilidade. Segundo o relatório da consultoria AppAnnie de 2021, os usuários no Brasil passam em média 5,4 horas por dia mexendo em seus smartphones, sendo que os aplicativos sociais são os mais utilizados. A tendência é que o uso de tecnologia mobile cresça cada vez mais nos próximos anos, com novas empresas e até mesmo serviços do governo migrando para uma forma mais digital e acessível à população por meio do celular 📲. Na Google Play Store e na Apple App Store, existem quase cinco milhões de aplicativos móveis disponíveis para download.
Seja um Desenvolvedor Mobile: Oportunidades em um mundo conectado
Tendo em vista tudo isso, por que não se tornar um desenvolvedor mobile? O desenvolvedor mobile é o profissional responsável por projetar e desenvolver aplicativos móveis para diversos ramos, segmentos e plataformas (Android e iOS).
Com o mundo se tornando cada vez mais dependente de dispositivos móveis, há uma grande demanda por novos desenvolvedores capazes de criar e manter aplicativos com qualidade. Além disso, essa habilidade permite que você implemente suas próprias ideias de apps, e quem sabe, seu aplicativo poderá se tornar o próximo negócio de 1 bilhão de dólares.
Existem hoje diversas ferramentas que permitem o desenvolvimento para dispositivos móveis. Na próxima seção vou lhe apresentar o Flutter que se destaca como uma dessas ferramentas por possibilitar código nativo para qualquer plataforma (e.g., Android, iOS, Web, Desktop) e desenvolvimento ágil.
O que é Flutter?
Flutter é um kit de ferramentas (SDK) de interface de usuário e de código aberto criado pela Google em 2015, sendo lançado oficialmente em 2018. Com ele, é possível criar diferentes aplicativos bonitos e multi plataformas (Android, iOS, web e desktop) usando a linguagem de programação Dart e uma única base de código, ou seja, sem precisar escrever o código separadamente para cada sistema ou plataforma. Seu forte atrativo está baseado em alguns pilares: (a) Desenvolvimento Rápido, (b) UI Expressiva e Flexível e (c) Desempenho Nativo. (d) Multiplataforma etc.🤙
O Flutter inclui uma rica biblioteca de interface do usuário baseada em widgets personalizados para ajudar os desenvolvedores a criar apps mais rapidamente, bonitos e performáticos. Atualmente, é um dos repositórios mais populares no GitHub, com mais de 152 mil estrelas, o que é uma marca significativa em comparação com outras tecnologias. Além disso, está entre os 50 principais repositórios ativos no GitHub. 😄
Por que escolher o Flutter para iniciar carreira no desenvolvimento mobile?
O Flutter transforma o processo de desenvolvimento de aplicativos para que você possa entregar mais rápido. Abaixo, veremos alguns dos benefícios e características mais marcantes do Flutter. 💙
Flutter é multiplataforma
No passado, para construir um aplicativo, era necessário usar as linguagens primárias de desenvolvimento móvel, como Objective C/Swift para iOS e Java/Kotlin para o sistema Android. Se quisesse desenvolver para desktop, seria necessário escrever código separado para macOS (com Swift), Linux (com C) e Windows (com C++), o que significava basicamente duplicar o trabalho e exigir a contratação de desenvolvedores proficientes em cada plataforma.
Além disso, adicionar um recurso significava atualizar o código em todas essas plataformas separadamente, o que era tedioso e custoso. Com o Flutter, você escreve o código uma vez e ele roda em todas as plataformas.
O Flutter ajuda as empresas a economizar em seus orçamentos de desenvolvimento, pois não há necessidade de contratar desenvolvedores para criar bases de código separadas ao trabalhar em dispositivos iOS, Android, etc. Isso resulta em um lançamento mais rápido do aplicativo e é economicamente vantajoso.
Desempenho de nativo
- O Flutter compila o código de máquina nativo para aplicativos rápidos e animações bonitas. Ao contrário de outras bibliotecas de IU que dependem das bibliotecas de sistema, o Flutter usa seu próprio conjunto de widgets com código nativo compilado a partir do código Dart. Isso resulta em alto desempenho, permitindo que você tenha controle total sobre os pixels na tela e alcance taxas de quadros de 60 a 120 por segundo (FPS), o que é impressionante.
Desempenho mais rápido
- O Flutter apresenta o stateful hot reload , um novo recurso revolucionário para desenvolvedores que permite a visualização instantânea das modificações realizadas nas telas do seu aplicativo sem reiniciar ou perder o seu estado, o que otimiza o desenvolvimento e produz produtividade ao trabalho do dev.
Suporte do Google
- Possui suporte oficial do google, o que proporciona qualidade nos conteúdos e na ferramenta, documentação sempre atualizada e investimento constante na comunidade, a google tem e apoia uma rede global de meetups sobre Flutter, faz reuniões mensais com líderes de comunidades e os ouve sempre proporcionando melhorar cada dia mais o futuro da ferramenta.
Código aberto
- O que significa que os desenvolvedores de todo o mundo podem contribuir para a base de código e ajudar a melhorar a plataforma para todos. Hoje o Flutter já conta com a contribuição de diversas pessoas ao redor do mundo.
Dart
Dart é uma linguagem moderna e poderosa, orientada a objetos, que pode ser compilada para código nativo. Ele possui um compilador Ahead-Of-Time (AOT) e Just-In-Time (JIT). Além de ser a linguagem principal do Flutter, o Dart está rapidamente ganhando popularidade, sendo amplamente utilizado na criação de aplicativos web, códigos de servidor e aplicativos de IoT (Internet das Coisas).
Uma vantagem interessante do Dart é que ele permite ao Flutter evitar a necessidade de uma linguagem de layout declarativa separada, como JSX ou XML, ou de construtores de interface visual separados. Isso ocorre porque o Dart possui um layout programático declarativo fácil de ler e visualizar. Com toda a lógica de layout em uma única linguagem, o Flutter pode fornecer ferramentas avançadas que tornam o processo de desenvolvimento mais fácil.
Comunidade
O Flutter possui uma comunidade ativa e engajada na divulgação de conteúdos e melhorias, sempre buscando criar a melhor experiência para os novos desenvolvedores. A comunidade é um dos pontos fortes do Flutter, tornando-o agradável e produtivo para se trabalhar. Desde que cheguei ao Flutter, me senti em casa, pois encontrei uma grande quantidade de pessoas e conteúdos da comunidade prontas para ajudar.
No Brasil, temos a Flutterando, a maior comunidade de Flutter da América Latina. O canal no YouTube já possui mais de 54 mil inscritos e alcançou mais de 2 milhões de visualizações em conteúdos específicos sobre o framework. Além disso, inúmeros especialistas em Flutter de todo o mundo compartilham suas experiências, contribuem com novas documentações, e criam materiais educacionais como livros e cursos.
Muitas issues do Flutter foram resolvidas com a ajuda da comunidade, que enviou seus próprios pull requests com correções de bugs ou novas funcionalidades que acabaram sendo aprovados pelo time da Google. Como podemos ver, a comunidade desempenha um papel fundamental no desenvolvimento do Flutter.
Popularidade
Flutter é amplamente usado para criar aplicativos para empresas como Alibaba, Yandex, Nubank,Toyota, eBay e outras empresas líderes. Aqui está uma seleção dos principais aplicativos do Flutter no Brasil, empresas como Nubank, Boticário e Cíngulo são algumas das mais conhecidas.
Hoje, aplicativos como iFood Parceiros, will bank e Carteira Digital de Trânsito, este do governo federal, foram feitos completamente em Flutter. Nesse ritmo, empresas como Quinto Andar, Banco BV e o próprio Folha de Pernambuco também optaram por usar o UI toolkit da gigante de Mountain View, a Google.
Segundo a Google, em janeiro deste ano, havia mais de 7.00.000 aplicativos na Play Store criados com o Flutter, e um em cada cinco novos aplicativos na Play Store usavam o Flutter.
Flutter alcançou uma posição poderosa no ecossistema de desenvolvedores, com uma base de desenvolvedores grande e ainda crescente, alta satisfação do cliente é uma marca que é a mais amada entre todos os produtos para desenvolvedores do Google .
O desenvolvedor do aplicativo Collins Family Orchards, Dean Papastrat, disse o seguinte sobre sua experiência quando migrou pro Flutter:
"Fiquei impressionado com a velocidade de todas as animações e transições nas compilações de produção. Como desenvolvedor da Web, foi super fácil fazer a transição para o Flutter e não acredito que consegui criar um aplicativo totalmente funcional que pode receber pagamentos em apenas uma semana."
Para mais casos de sucesso e depoimentos do uso do Flutter clique aqui.
Guia para se tornar um desenvolvedor Mobile com Flutter.
Para se tornar um desenvolvedor Flutter, comece pelo básico e aprenda um pouco da linguagem Dart. O Flutter usa o Dart em sua essência como sua linguagem de programação. Às vezes, vejo muitas pessoas iniciando diretamente no framework sem conhecer previamente a linguagem, o que, na minha opinião, não é ideal, pois em algum momento será necessário compreender os conceitos do Flutter que estão intrinsecamente ligados à linguagem Dart. Portanto, não pule diretamente para o Flutter sem conhecer o Dart!
Aprender a linguagem Dart primeiro permitirá que você compreenda os conceitos fundamentais, a sintaxe e a estrutura da linguagem, o que é fundamental para entender como o Flutter funciona. Isso também facilitará a compreensão dos conceitos avançados do Flutter, como gerenciamento de estado, widgets e fluxo de dados. 💪
Como aprender Dart?
O Dart é uma linguagem relativamente fácil de aprender, principalmente se você já tiver experiência prévia com outras linguagens de programação. Há muitos materiais disponíveis e gratuitos na internet para você começar. Abaixo, deixo alguns links de conteúdos que considero bons.
Documentação oficial do Dart: A documentação oficial do Dart é um excelente recurso para aprender a linguagem. Ela contém guias detalhados, tutoriais e exemplos de código que cobrem os conceitos fundamentais e avançados do Dart.
Inicialmente, vale a pena focar nos dois principais recursos: "Language Tour" e "Language samples". Eles fornecem uma breve introdução baseada em exemplos da linguagem Dart, o que pode ser de grande ajuda para iniciantes. Além disso, a documentação oficial do Dart possui o recurso chamado DartPad, uma espécie de editor de código online onde você pode ver e executar exemplos de código Dart, o que pode ser muito útil para praticar.
Conceitos fundamentais da linguagem: Abaixo, listo alguns conceitos fundamentais da linguagem Dart que você pode aprender: 🔥
Tipos de dados
Variáveis e constantes
Estruturas condicionais
Estruturas de repetição
Funções
Classes e objetos
Exceções
Bibliotecas e pacotes
Aqui vai uma dica: Lembre-se de que "a prática leva à perfeição", portanto, nenhum curso, leitura de documentação ou visualização de vídeos instrucionais será útil se você não se codificar e aprender com seus erros. É importante praticar e aplicar o conhecimento em projetos pessoais para solidificar o aprendizado. 🫡
Como aprender Flutter?
Dash, o mascote do Flutter, foto via flutter.dev
Depois de dominar a linguagem Dart, você pode começar com o Flutter instalando o SDK dele no seu computador e configurando todo o ambiente de desenvolvimento para dar os primeiros passos. Todo o processo é descrito aqui. Quanto às IDEs, você pode escolher usar o Android Studio ou o Visual Studio Code. Eu particularmente gosto do Visual Studio Code por ser mais leve e simples de usar. Abaixo, listo alguns conceitos fundamentais do Flutter que você pode aprender: 🔥💙
Conheça os widgets, no Flutter tudo é um widget e eles são parte indispensável da ferramenta pois eles constroem todo o layout das telas. O Flutter fornece uma extensa biblioteca de widgets. Você pode procurá-los em ordem alfabética clicando no título acima.
Uma dica legal é começar no flutter fazendo seus primeiros layouts, e pra isso você pode tentar clonar as interfaces de apps famosos como Tik Tok, Whatsapp, Ifood ou pegar algum layout do Dribbble e desenvolvê lo. e na medida que você ver que seu app vai se parecendo com o pretendido você vai sentir uma sensação de gratificação o que pode ser uma fonte de inspiração.
Aprenda a mexer com a entrada de dados do usuário através dos formulários, com isso você poderá fazer apps mais dinâmicos que interagem com o usuário.
As animações dão vida ao nosso aplicativo e o deixa mais atraente para os usuários, no Flutter existem várias opções para criar animações, com diferentes níveis de complexidade.
-
- A navegação permite que o usuário se mova entre diferentes páginas, No Flutter, as telas e páginas são conhecidas como rotas, e essas rotas são apenas um widget.
-
- O foco do gerenciamento de estado é notificar o flutter o sobre o que precisa ser redesenhado na tela assim como quais estados precisam ser compartilhados entre as telas do aplicativo, e para isso temos o setstate, mas na medida que seu app cresce é interessante aprender algum padrão de gerência de gestão como Bloc e Mobx etc.
-
- Um banco de dados permite que você armazene dados de forma persistente em um aplicativo Flutter. Isso significa que os dados permanecem disponíveis mesmo quando o aplicativo é fechado e reaberto posteriormente. Com o armazenamento de dados, você pode criar aplicativos que mantenham informações do usuário, como configurações, preferências, históricos e outras informações relevantes.
-
- Depois que você já estiver confortável em desenvolver alguns layouts, é recomendável começar a aprender sobre consumos de Api Rest, praticamente a maioria dos aplicativos consomem algum serviço externo para obter os dados. O Pub oferece ótimos pacotes, como: http, uno ou dio para executar solicitações de APIs Rest.
-
- Aprender sobre arquitetura de software é essencial se você quiser fazer um app que seja manutenível e escalável com o passar do tempo, Escolher a arquitetura ideal ajudará a manter o projeto melhor no futuro.. No flutter é bastante usado os padrões de MVC e MVVM assim como arquiteturas baseada nos princípios do clean architecture do uncle bob.
-
- Os padrões de projeto são uma série de soluções para problemas comuns e recorrentes no mundo do desenvolvimento de software. Eles oferecem vários benefícios, como redução do tempo de desenvolvimento, fornecimento de um padrão de comunicação entre os desenvolvedores e práticas para deixar a base de código mais limpa e sustentável. No Flutter, os padrões mais usados são Repository, Factory, Builder, State, Adapter, Observer, entre outros.
-
- Os testes automatizados são importantes, pois com eles podemos testar nosso aplicativo a cada nova alteração ou funcionalidade enviada para nossa base de código, garantindo que esteja tudo correto antes de ser disponibilizado para os usuários. O Flutter vem com uma ferramenta avançada para testes, que inclui testes de unidade, testes de widget e até mesmo testes de integração.
Materiais – Onde Aprender?
Existem vários recursos em português e gratuitos para aprender Flutter, abaixo vou listar alguns que eu sei que são bons e também vou compartilhar o link de dois roadmaps estruturados de conteúdos em Flutter que podem auxiliar no aprendizado.
Se você for totalmente novo na programação, comece pelos links abaixo, caso contrário siga para o roadmap.
1 - Curso Python #01 - Seja um Programador
2 - Introdução a Algoritmos - Curso de Algoritmos #01 - Gustavo Guanabara
Roadmaps de Flutter:
Tutoriais em blogs e sites:
Canais do YouTube:
Observação: O canal "Flutterando" no YouTube é uma das maiores referências em conteúdo em português sobre Flutter no país. Ele oferece uma ampla variedade de vídeos, desde tutoriais práticos, meetups até discussões sobre conceitos avançados e novidades do Flutter. Não se esqueça de se inscrever, ativar o sininho e assistir aos vídeos.
É importante lembrar de praticar o que foi aprendido por meio de projetos reais e experimentar diferentes recursos do Flutter é fundamental para ganhar familiaridade com o framework. Além disso, a comunidade de desenvolvedores do Flutter é ativa e está em constante evolução, portanto, é recomendável sempre se atualizar com as últimas novidades e recursos do Flutter para continuar aprendendo e aprimorando suas habilidades.
Conclusão
Uma coisa que eu sempre digo é que a curva de aprendizado para criar bons aplicativos ficou consideravelmente reduzida com o Flutter. Não digo que seja fácil, mas as tecnologias nativas têm uma curva de aprendizado muito mais íngreme em comparação ao Flutter.
Eu mesmo só me aventurei no desenvolvimento mobile quando o Flutter tinha acabado de nascer em 2018, pois achei muito mais fácil do que estudar Java/Kotlin na época e usar o Android Studio, rsrsrs! Pense num negócio pesado. Eu tinha um computador fraco com baixo desempenho e era complicado. Em média, levava 7 minutos para executar o "Hello World" do Android, mas com o Flutter fiquei muito feliz, pois já tinha a opção de usar o VS Code, que era mais leve e fácil de utilizar.
Iniciar no desenvolvimento para iOS, então, era quase impossível para mim, já que comprar um MacBook era e ainda é caro, uma vez que a Apple só permite o desenvolvimento de aplicativos para iPhone em seus próprios produtos. Mas com o Flutter, ver a possibilidade de rodar o mesmo código e funcionar muito bem no Android e IOS me abriu novas perspectivas.
A partir daí, foquei nos estudos do Flutter e, em 2 meses, lancei meu primeiro aplicativo na Google Play. Alguns meses depois, lancei o segundo, que ainda está disponível online até hoje. Meu irmão precisava fazer alguns cálculos rotineiros para o seu negócio na época, pois ele era MEI, então pensei, por que não criar um aplicativo para resolver esse problema, afinal, eu estava estudando desenvolvimento mobile, ele gostou muito da ideia e assim o fiz. Levei 2 dias para desenvolver o aplicativo que era simples e mais 1 dia para publicá-lo na loja. Foi uma experiência legal e muito gratificante.
A dica que eu dou é: quer ganhar experiência rapidamente, mas não está recebendo oportunidades de estágio, etc.? Por que não implementar suas próprias ideias e resolver problemas das pessoas ou dos seus? Afinal, não faltam coisas que podem ser resolvidas com a criação de novos aplicativos móveis.
Em 2020, ainda durante a faculdade, consegui meu primeiro emprego oficial como desenvolvedor Flutter na Fteam - Especialista em Apps, uma empresa muito bacana e agradável para se trabalhar, com uma cultura e colegas excelentes. Tenho muito orgulho de fazer parte do time, pois também conta com algumas das maiores referências em Flutter do país.
Antes da Fteam, antes de conseguir meu primeiro emprego como desenvolvedor mobile em uma empresa, fiz diversos freelas e projetos pessoais para ganhar experiência, pois sempre tive em mente que se não me davam oportunidades, eu tinha que criar as oportunidades. Estágios na época eram bem difíceis.
E para encerrar, mais uma dica valiosa, acredite em mim: envolva-se com a comunidade local de desenvolvedores. Aprenda com outros desenvolvedores: participar de eventos de tecnologia, palestrar e contribuir com conteúdos pode expô-lo a uma variedade de ideias, tecnologias e abordagens diferentes. Isso pode enriquecer seu conhecimento e ampliar sua perspectiva sobre a indústria de desenvolvimento de software.
Conheça novas pessoas e faça networking nos eventos, pois isso pode abrir portas para novos contatos e oportunidades valiosas em sua carreira.
Atualmente, sou community manager em algumas comunidades, como Flutterando, GDG Parnaíba e Flutter Piauí. Fui muito ajudado no passado e, por isso, gosto de palestrar, criar conteúdo e organizar eventos de tecnologia para auxiliar novos desenvolvedores em início de carreira.
Acredito que a tecnologia é incrível e entender como os softwares e aplicativos que usamos no dia a dia são feitos e funcionam é ainda mais fascinante e extraordinário!
Obrigado por ler até aqui.😁 Espero que você tenha percebido o grande potencial do Flutter. Estou realmente animado com o futuro do Flutter e suas possibilidades.
Espero que você tenha gostado! Se tiver alguma dúvida ou contribuição, deixe nos comentários!
Me siga para estar sempre por dentro dos próximos artigos ou assine a neswletter 🚀