Se Tornando um Desenvolvedor Flutter: Aprendizado e Projetos Práticos
Tags: programming, flutter, dart, career
Published: 2023-06-04 22:01:18

### Introdução
Você decidiu se aventurar no mundo do desenvolvimento Flutter? Ótima escolha! Dominar essa tecnologia pode abrir muitas portas para você como desenvolvedor de aplicativos móveis. Mas por onde começar? Neste artigo, exploraremos o roadmap do Flutter do site Roadmap.sh e apresentar uma abordagem prática para o aprendizado, com projetos que ajudarão você a consolidar seus conhecimentos.

### Antes de começar.
Antes de mergulharmos nos projetos, é importante ressaltar a necessidade de utilizar um controle de versionamento, como o Git, e publicizar seus projetos no GitHub. Isso permitirá que você acompanhe sua evolução como aprendiz e também compartilhe seu trabalho com outros desenvolvedores. Caso você precise de ajuda para começar com o GitHub, confira este guia útil.

{% embed https://youtu.be/kB5e-gTAl_s %}

### Primeira Etapa: Dart Fundamentos
Antes de iniciar o desenvolvimento com Flutter, é essencial dominar os fundamentos da linguagem Dart. Familiarize-se com os tipos de variáveis, funções e controle de fluxo em Dart puro. Para praticar, você pode desenvolver pequenos programas, como um conversor de unidades, uma calculadora simples ou um gerador de números aleatórios.

{% embed https://www.youtube.com/watch?v=kRIWUk-thDM %}

### Segunda Etapa: Conceitos Básicos do Flutter.
Agora que você já possui uma base sólida em Dart, é hora de mergulhar nos conceitos básicos do Flutter. Aprenda sobre Inherited Widgets, Stateless Widgets, Stateful Widgets, Flutter CLI e como trabalhar com o Android Studio ou o VS Code. Aqui, sugerimos a criação de um aplicativo conversor de Bitcoin para Reais e vice-versa, onde você poderá informar a cotação e realizar as conversões sem a necessidade de uma API externa. Além disso, você pode desenvolver um aplicativo de lista de tarefas, onde os usuários podem adicionar, editar e excluir itens da lista.

{% embed https://www.youtube.com/watch?v=KI5F8cQhUPM %}

### Terceira Etapa: Trabalhando com Assets e Sensores.
Agora é hora de aprender a trabalhar com Assets, como imagens e fontes, e explorar o uso de sensores em seus aplicativos. Uma sugestão de projeto é criar uma galeria de fotos, onde você poderá tirar fotos e salvá-las no aplicativo. Além disso, você pode desenvolver um aplicativo de lembretes, onde os usuários podem definir lembretes com base em eventos de localização.

### Quarta Etapa: Programação Orientada a Objetos e Padrões de Projeto
Agora é o momento de aprofundar seus conhecimentos em programação orientada a objetos e explorar padrões de projeto, como o SOLID. Você pode refatorar ou aprimorar seu conversor de Bitcoin para uma calculadora mais completa, utilizando bibliotecas do Pub.dev, como uma barra de progresso e uma biblioteca de validação de formulários. Além disso, você pode desenvolver um aplicativo de clima, onde os usuários podem verificar a previsão do tempo com base em sua localização.
{% embed https://www.youtube.com/watch?v=GtGjo7lX7CI %}

### Quinta Etapa: Persistência de Dados
Nesta etapa, é importante aprender sobre persistência de dados em Flutter. Você pode criar um aplicativo de lista de tarefas, onde os usuários podem salvar suas tarefas e marcar como concluídas. Além disso, você pode desenvolver um aplicativo de controle de gastos, onde os usuários podem registrar suas despesas diárias e visualizar gráficos para acompanhar seus gastos ao longo do tempo.

### Sexta Etapa: Desenvolvimento de uma Web API
Que tal refatorar sua calculadora de Bitcoin para buscar a cotação em tempo real de uma API externa? Isso envolverá o desenvolvimento de uma Web API em conjunto com seu aplicativo Flutter, permitindo que você tenha acesso às informações atualizadas. 
{% embed https://www.youtube.com/watch?v=1uxnXwN0s5Q %}

### Sétima Etapa: Utilizando Firebase
Agora é a hora de utilizar o Firebase, uma plataforma completa que oferece diversos recursos para o desenvolvimento de aplicativos. Adicione autenticação ao seu aplicativo de persistência de dados e utilize recursos como banco de dados em tempo real, armazenamento de arquivos e notificações push. Isso dará uma experiência ainda mais completa aos usuários do seu aplicativo.Você pode utilizar o Firebase Cloud Functions ou outras tecnologias para criar sua própria API.

### Oitava Etapa: Gerenciamento de Estado
Aprenda a utilizar bibliotecas populares de gerenciamento de estado, como o Bloc ou o Provider, para refatorar todos os seus projetos anteriores. Isso permitirá uma melhor organização e escalabilidade do seu código, facilitando o compartilhamento de dados entre diferentes telas do aplicativo.

### Nona Etapa: Testes Automatizados
Agora é a hora de levar seus aplicativos para o próximo nível, implementando testes automatizados para garantir a qualidade do seu código. Explore as diferentes opções de testes disponíveis no Flutter e desenvolva testes para suas funcionalidades principais.
{% embed https://www.youtube.com/watch?v=KdKMBm1ZAws %}

### Décima Etapa: Publicação do Aplicativo
Por fim, aprenda como fazer o deploy dos seus aplicativos, seja na Google Play Store ou na App Store, para que possam ser acessados por usuários reais. Essa etapa é essencial para que você compartilhe seu trabalho com o mundo e tenha feedbacks importantes para seu crescimento como desenvolvedor.

### Conclusão:
Seguindo esse método e desenvolvendo os projetos práticos sugeridos, você estará trilhando um caminho seguro para se tornar um desenvolvedor Flutter experiente e talentoso. Não deixe de praticar, buscar novos desafios e compartilhar o seu progresso com a comunidade de desenvolvedores. O aprendizado contínuo e a construção de projetos reais são fundamentais para seu crescimento profissional.

Aproveite esta jornada e se divirta desenvolvendo aplicativos extraordinários com o Flutter. 

(Artigo baseado no roadmap do Flutter do site Roadmap.sh)