From 8d2b397c48cff52e5e99c90aa55556715cd2bef5 Mon Sep 17 00:00:00 2001 From: Humberto Chiesi <100535432+thKali@users.noreply.github.com> Date: Tue, 17 Dec 2024 17:27:02 -0300 Subject: [PATCH] Update README.md --- README.md | 180 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 102 insertions(+), 78 deletions(-) diff --git a/README.md b/README.md index af74cbb..9ace1e4 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,20 @@ # Flutter Roadmap 2025 -O objetivo desse repositório é catalogar os conteúdos existentes na internet sobre Flutter e concatenar em uma espécie de "roadmap" para auxiliar os iniciantes. +O objetivo desse repositório é catalogar os conteúdos existentes na internet sobre Flutter e concatenar em uma espécie de roadmap para auxiliar os iniciantes. -# Escrever códigos +# Começando a escrever códigos É recomendado assistir [ESTE VÍDEO](https://www.youtube.com/watch?v=BTENKdRVS2U) antes de iniciar. ## Lógica de Programação -Precisamos entender como criar algorítmos, por tanto, antes de realmente colocar a mão no código, é importante estudar um pouco sobre Lógica de programação. +Precisamos entender como criar algorítmos, por tanto, antes de realmente colocar a mão no código, é importante estudar um pouco sobre lógica de programação. Nessa etapa não é necessário saber nenhuma linguagem. -- [Curso de lógica de programação](https://www.youtube.com/watch?v=8mei6uVttho&list=PLHz_AreHm4dmSj0MHol_aoNYCSGFqvfXV). -- [Curso Lógica de Programação Completo 2021](https://www.youtube.com/watch?v=iF2MdbrTiBM) +- [Curso de lógica de programação](https://www.youtube.com/watch?v=8mei6uVttho&list=PLHz_AreHm4dmSj0MHol_aoNYCSGFqvfXV); +- [Curso Lógica de Programação Completo 2021](https://www.youtube.com/watch?v=iF2MdbrTiBM). -## Orientação a Objetos (POO) - -Esse é o paradgma mais utilizado no Flutter. Por isso devemos conhecer o básico para iniciar nesse framework. - -Não tenha medo de aprender 2 ou 3 linguagens a mais para dominar esse paradigma. - -É recomendado (~e não obrigatório~) aprender um pouco sobre o Java, pois é uma linguagem que utiliza exclusivamente a POO, forçando-o a entender toda a base desse paradgma. - -- [Programação Orientada a Objetos (POO)](https://www.youtube.com/watch?v=QY0Kdg83orY) -- [Curso de programação oriendada a objetos](https://www.youtube.com/watch?v=KlIL63MeyMY&list=PLHz_AreHm4dkqe2aR0tQK74m8SFe-aGsY) -- [Classes abstratas no FLUTTER](https://youtu.be/nZov6ztrocc) ## O Dart @@ -37,65 +26,56 @@ Assista primeiro: É importante ressaltar que o Dart sofreu mudanças consideráveis na segunda metade de 2021, por tanto, não é recomendado para iniciantes os cursos gravados antes de julho de 2021. -**CURSOS GRATUITOS**: - -- [Curso de Dart (Deivid Willyan)](https://www.youtube.com/watch?v=PgRv_aeqf-4&list=PLRpTFz5_57cseSiszvssXO7HKVzOsrI77) - -**CURSOS PAGOS**: - -- [Lógica de programação com Dart (Flutterando Masterclass)](https://masterclass.flutterando.com.br/public/products/e141c9c5-0b60-4e0e-96f1-e31d433e2a09) +Não pule essa etapa, pois conhecer a base do Dart será o principal diferencial para desenvolver em Flutter. **DOCUMENTAÇÃO**: - [Dart doc](https://dart.dev/guides/language/language-tour) -Não pule essa etapa, pois conhecer a base do Dart será o principal diferencial para desenvolver em Flutter. +**CURSOS GRATUITOS**: -# Flutter +- [Curso de Dart (Deivid Willyan)](https://www.youtube.com/watch?v=PgRv_aeqf-4&list=PLRpTFz5_57cseSiszvssXO7HKVzOsrI77) -Após seguir os passos da sessão anterior, chegou a hora de usar as ferramentas do SDK. Se não conhece o Flutter, assista [ESTE VÍDEO](https://www.youtube.com/watch?v=vIP2iLFjEIk&t=66s). +**CURSOS PAGOS**: -## Cursos gratuitos +- [Lógica de programação com Dart (Flutterando Masterclass)](https://masterclass.flutterando.com.br/public/products/e141c9c5-0b60-4e0e-96f1-e31d433e2a09) -- [Flutter Curso 2022 (Flutterando)](https://www.youtube.com/playlist?list=PLlBnICoI-g-fuy5jZiCufhFip1BlBswI7) -- [Catálogo de Widgets](https://docs.flutter.dev/reference/widgets) -## Cursos pagos +## Orientação a Objetos (POO) -- [Masterclass Paga Iniciante (Flutterando)](https://masterclass.flutterando.com.br/public/products) - > ficar atento ao canal do Youtube para ver o anuncio de vagas +Esse é o paradigma mais utilizado no Flutter. Por isso devemos conhecer o básico para iniciar nesse framework. -- [Curso de Flutter (COD3R)](https://www.udemy.com/course/curso-flutter/) -- [Curso de Flutter em Inglês (Angela)](https://www.udemy.com/course/flutter-bootcamp-with-dart/) -- [Curso de Flutter avançado (Paulo)](https://www.udemy.com/course/desenvolvimento-flutter-avancado) +Não tenha medo de aprender 2 ou 3 linguagens a mais para dominar esse paradigma. -## Livros +É recomendado (~e não obrigatório~) aprender um pouco sobre o Java, pois é uma linguagem que utiliza exclusivamente a POO, forçando-o a entender toda a base desse paradgma. -- [Flutter in Action](https://www.google.com/search?q=Flutter+in+Action+book&sca_esv=562513523&rlz=1C1GCEA_enBR1014BR1014&ei=bML1ZPG7LZG75OUPwue7uA0&ved=0ahUKEwjxob_v75CBAxWRHbkGHcLzDtcQ4dUDCBA&uact=5&oq=Flutter+in+Action+book&gs_lp=Egxnd3Mtd2l6LXNlcnAiFkZsdXR0ZXIgaW4gQWN0aW9uIGJvb2syBxAuGBMYgAQyFhAuGBMYgAQYlwUY3AQY3gQY4ATYAQFIsEZQ7jRYiURwAngBkAEAmAHlAaABkQaqAQUwLjQuMbgBA8gBAPgBAcICChAAGEcY1gQYsAPCAgoQABiKBRiwAxhDwgIHEAAYExiABMICCBAAGBYYHhgT4gMEGAAgQYgGAZAGCroGBggBEAEYFA&sclient=gws-wiz-serp&bshm=rimc/1) -- [Flutter Complete Reference](https://www.google.com/search?q=Flutter+Complete+Reference+book&sca_esv=562513523&rlz=1C1GCEA_enBR1014BR1014&ei=g8L1ZMLzDMne5OUPzI-K0AQ&ved=0ahUKEwiCwZr675CBAxVJL7kGHcyHAkoQ4dUDCBA&uact=5&oq=Flutter+Complete+Reference+book&gs_lp=Egxnd3Mtd2l6LXNlcnAiH0ZsdXR0ZXIgQ29tcGxldGUgUmVmZXJlbmNlIGJvb2syBxAAGBMYgAQyBxAuGBMYgAQyBhAAGB4YE0iQBlAAWABwAHgBkAEAmAHSBaAB0gWqAQM2LTG4AQPIAQD4AQL4AQHiAwQYACBBiAYB&sclient=gws-wiz-serp&bshm=rimc/1) +- [Programação Orientada a Objetos (POO)](https://www.youtube.com/watch?v=QY0Kdg83orY) +- [Curso de programação oriendada a objetos](https://www.youtube.com/watch?v=KlIL63MeyMY&list=PLHz_AreHm4dkqe2aR0tQK74m8SFe-aGsY) +- [Classes abstratas no FLUTTER](https://youtu.be/nZov6ztrocc) -# Roadmap -Nesta sessão, iremos sugerir uma sequência de assuntos que um desenvolvedor Flutter deve dominar: +# Flutter -## POO e Lógica de programação +Após seguir os passos da sessão anterior, chegou a hora de usar as ferramentas do SDK. Se não conhece o Flutter, assista [ESTE VÍDEO](https://www.youtube.com/watch?v=vIP2iLFjEIk&t=66s). -O Flutter usa o Dart de forma declarativa. Isso significa que o desenvolvedor usa linguagem de programação para desenhar telas em vez de linguagem de marcação como HTML, XML ou XAML. -Por esse motivo é recomendado que o desenvolvedor já domine os conceitos de POO e Lógica de programação. +EXPLORE o catálogo de widgets; será muito importante conhecer suas principais ferramentas: +- [Catálogo de Widgets](https://docs.flutter.dev/reference/widgets) -Retorne a sessão [Escrever Códigos](#escrever-códigos) para dicas de cursos sobre esses dois assuntos. +**DOCUMENTAÇÃO**: -## Sintaxe do Dart +- [Flutter doc](https://docs.flutter.dev/get-started/learn-flutter) -Antes de usar o Flutter, o desenvolvedor deverá aprender pelomenos a sintaxe básica do Dart. +## Cursos gratuitos -[Nesta sessão](#o-dart) foi sugerido alguns cursos pagos e gratuitos para uma imersão na linguagem Dart. +- [Flutter Curso 2022 (Flutterando)](https://www.youtube.com/playlist?list=PLlBnICoI-g-fuy5jZiCufhFip1BlBswI7) -## Aprenda GIT. +## Cursos pagos -Git é essencial para um desenvolvedor. +- [Masterclass Iniciante (Flutterando)](https://masterclass.flutterando.com.br/public/products) + > ficar atento ao canal do Youtube para ver o anuncio de vagas +- [Curso de Flutter (COD3R)](https://www.udemy.com/course/curso-flutter/) +- [Curso de Flutter em Inglês (Angela)](https://www.udemy.com/course/flutter-bootcamp-with-dart/) -- [Git para desenvolvedores Flutter](https://www.youtube.com/watch?v=Kx3M6XUpcFE) ## Widgets nativos @@ -107,31 +87,50 @@ A tela de um aplicativo Flutter é constituida pela união de outros widgets nat - Entenda o funcionamento do **Container**. - Teste todos os widgets disponíveis [NESSE CATÁLOGO](https://docs.flutter.dev/reference/widgets). + ## Criação de widgets Existem três formas básicas de criar widgets customizados, o StatelessWidget, StatefulWidget e InheritedWidget. A diferênça entre os três deve ser entendida desde o início. + + + ## Componentização de widget -Após aprender a criar widgets customizados, o desenvolvedor deve aprender a dividir esses widgets em arquivos separados para que possa facilitar a compreenção de outras pessoas que estarão lendo o código posteriomente. +Após aprender a criar widgets customizados, o desenvolvedor deve aprender a dividir esses widgets em arquivos separados para que possa facilitar a compreenção de outras pessoas que estarão lendo o código posteriomente (inclusive ele próprio. -Algumas dicas sobre isso: +Algumas dicas: - Tente ter um arquivo por Widget. -- Reflita o nome do Widget no nome do arquivo: Ex: HomePage(home_page.dart). +- Reflita o nome do Widget no nome do arquivo, Ex: + - Tela inicial = home_page.dart + - Botao de adicionar tarefa = add_task_button.dart + + +## Formulários + +"TUDO é CRUD." -## Widgets de inputs +Parte da nossa tarefa no front-end é receber dados e enviá-los para a API. - [AULÃO: Criação de formulários](https://www.youtube.com/watch?v=5SIw8bXiP7o) - [Tudo sobre Máscaras](https://www.youtube.com/watch?v=sjQLmibDEu4) -## Aprenda a fazer animações -- [Tudo sobre animações no Flutter](https://www.youtube.com/watch?v=XM-8UTkFr4c&t=3108s) +## Consumo de APIs -## Consumo de APIs externas +Consumir informações do mundo externo. +Para montar sua Pokédex, resgatar os dados de um cep... - [AULÃO: Consumo de APIs (Flutterando)](https://www.youtube.com/watch?v=PUQEd7xRldM) + +## Aprenda a fazer animações + +Para encantar os clientes! (Principalmente seu chefe) + +- [Tudo sobre animações no Flutter](https://www.youtube.com/watch?v=XM-8UTkFr4c&t=3108s) + + ## Domine o Provider O Provider é a recomendação da equipe do Flutter para quem está iniciando no mundo Flutter para gerenciar estados e injeção de dependência. @@ -144,7 +143,7 @@ O Provider é a recomendação da equipe do Flutter para quem está iniciando no ## Aprenda alguns Design Patterns -Padrões de projetos sÃo importantes para o trabalho em equipe. +Padrões de projetos são importantes para manter a qualidade do código além de facilitar o trabalho em equipe. - [Repository Pattern no Flutter (balta.io)](https://www.youtube.com/watch?v=Q05t3mgaMfk) - [CopyWith (Jacob)](https://blog.flutterando.com.br/o-padr%C3%A3o-copywith-no-flutter-dart-267e3d218ffc) @@ -154,6 +153,8 @@ Padrões de projetos sÃo importantes para o trabalho em equipe. ## Testes de unidade +Para garantir a qualidade do software e facilitar a manutenção os testes de unidade serão seus maiores aliados. + - [Um programador confiável (Elemar Jr)](https://www.youtube.com/watch?v=XSdT2myLlw4) - [AULÃO sobre testes de unidade (Flutterando)](https://www.youtube.com/watch?v=BLHPRg8ickY) - [Semana do Flutter sobre testes (Flutterando)](https://www.youtube.com/playlist?list=PLlBnICoI-g-etEtbvgDnO40SYKOSktCj4) @@ -161,7 +162,7 @@ Padrões de projetos sÃo importantes para o trabalho em equipe. ## Gerência de estado -O StatefulWidget concede ao Widget a possibilidade de gerenciar o próprio estado. Mas as vezes é necessário mudar o estado de vários widgets em uma ação. Para isso, existe alguns padrões para auxiliar nisso. +O StatefulWidget concede ao widget a possibilidade de gerenciar o próprio estado, mas às vezes é necessário mudar o estado de vários widgets em uma ação. Para isso, existem alguns padrões que podemos utilizar para facilitar a execução e o entendimento. - [BASE DA GERENCIA DE ESTADO (Flutterando)](https://www.youtube.com/watch?v=XGjCatQadrk&ab_channel=JacobMouradaFlutterando) - [AULÃO sobre gerência de estado (Flutterando)](https://www.youtube.com/watch?v=_F0GI2dnt-g) @@ -171,9 +172,31 @@ O StatefulWidget concede ao Widget a possibilidade de gerenciar o próprio estad - [AULÃO sobre MobX (Flutterando)](https://www.youtube.com/watch?v=Z6U6L9e8gmE) - [AULÃO sobre Triple (Flutterando)](https://www.youtube.com/watch?v=CS97q2PwjSo) + +## Aprenda GIT. + +Git é essencial para um desenvolvedor. Atualmente, é o meio universal para compartilhamento de código. + +- [Git para desenvolvedores Flutter](https://www.youtube.com/watch?v=Kx3M6XUpcFE) + + +## Gerenciadores de versão + +Principais (~e únicos~) gerenciadores de versão do Flutter + +- [Link do Puro](https://puro.dev/) | [Video Explicativo](https://www.youtube.com/watch?v=ImCGQM6jhic&t=181s&ab_channel=JacobMouradaFlutterando) +- [Link do FVM](https://fvm.app/) | [Video Explicativo](https://www.youtube.com/watch?v=9n5dLXJMSqU&ab_channel=JacobMouradaFlutterando) + +- Qual é melhor? + +Atualmente, o approach do Puro com sua configuração de ambientes tem agradado mais à comunidade. Sua instalação acaba sendo mais simples também. + + +## Se você chegou até aqui, já tem os conhecimentos necessários para construir seus apps, mas agora veremos para onde se aprofundar: + ## Arquitetura -A arquitetura de um projeto define a vida útil do mesmo. Todo app tem alguma arquitetura, mesmo que o desenvolvedor não tenha pensado nisso. +A arquitetura de um projeto define sua vida útil. Todo App tem alguma arquitetura, mesmo que o desenvolvedor não tenha pensado nisso. 1. **App Architecture (Recomendada)** - [Documentação da arquitetura recomendada](https://docs.flutter.dev/app-architecture) @@ -184,26 +207,16 @@ A arquitetura de um projeto define a vida útil do mesmo. Todo app tem alguma ar - [Deixando o Flutter mais intuitivo com o result_dart](https://youtu.be/5kJog_PhGbY) - [Implementando a NOVA Arquitetura recomendada do Flutter AO VIVO]() -
2. **Conteúdos sobre Clean Architecture:** - [AULÃO sobre Clean Architecture (Flutterando)](https://www.youtube.com/watch?v=fABLC2fxQwg) - [Playlist sobre Clean Dart (Flutterando)](https://www.youtube.com/playlist?list=PLlBnICoI-g-d-v_fWlkZX2HRgHHPnJx9s) -- [Masterclass Paga Intermediária (Flutterando)](https://masterclass.flutterando.com.br/public/products) +- [Masterclass Intermediária (Flutterando)](https://masterclass.flutterando.com.br/public/products) > ficar atento ao canal do Youtube para ver o anuncio de vagas -## Menções honrosas - -Principais (~e únicos~) gerenciadores de versão do Flutter - -- [Link do Puro](https://puro.dev/) | [Video Explicativo](https://www.youtube.com/watch?v=ImCGQM6jhic&t=181s&ab_channel=JacobMouradaFlutterando) -- [Link do FVM](https://fvm.app/) | [Video Explicativo](https://www.youtube.com/watch?v=9n5dLXJMSqU&ab_channel=JacobMouradaFlutterando) - -- Qual é melhor? -Atualmente o aproach de gerencia de armazenamento do Puro e sua configuração de "ambientes" tem agradado mais a comunidade. Sua instalação diretamente no shell simples e direta também. -Link de criadores de conteúdo relevante que estão sempre colaborando ou já tem um acervo de qualidade. +Criadores de conteúdo relevante que estão sempre colaborando ou já tem um acervo de qualidade: - [Jacob Moura da Flutterando](https://www.youtube.com/@JacobMoura7) - [Prof. Diego Antunes](https://www.youtube.com/@drantunes) @@ -211,9 +224,11 @@ Link de criadores de conteúdo relevante que estão sempre colaborando ou já te - [Flutter Mapp](https://www.youtube.com/@FlutterMapp/videos) - [Flutter Official](https://www.youtube.com/@flutterdev) -Links gerais da comunidade (discord, telegram...) +Links gerais da comunidade: -- [Linktree](https://link.flutterando.com.br) +- [Youtube](https://www.youtube.com/@FlutterandoTV) +- [Discord](https://discord.flutterando.com.br) +- [Site Oficial](https://flutterando.com.br) Sugestões de Livros. (Leia para aprender, nunca levando tudo como regra e sim absorvendo as partes que lhe fizerem sentido) @@ -221,14 +236,23 @@ Sugestões de Livros. (Leia para aprender, nunca levando tudo como regra e sim a ![image](https://github.com/thKali/roadmap_fork/assets/100535432/48bd94af-05dd-4148-8a2f-41384146e368) -- Padrões de Projeto - -![image](https://github.com/thKali/roadmap_fork/assets/100535432/45e1bfcc-090a-41b2-8cf5-d434ec7a4e86) - - Clean Arch ![image](https://github.com/thKali/roadmap_fork/assets/100535432/286b11ae-89e0-4ace-bfe1-fec626bf02fa) +- Padrões de Projeto + +![image](https://github.com/thKali/roadmap_fork/assets/100535432/45e1bfcc-090a-41b2-8cf5-d434ec7a4e86) + - Refatoração ![image](https://github.com/thKali/roadmap_fork/assets/100535432/438a86c8-e526-443c-a8c7-66e78109b83f) + +- Flutter in Action + +![image](https://github.com/user-attachments/assets/88b757f5-2d3e-4ed0-bb28-9b160b8feef6) + +- Flutter Complete Reference + +![image](https://github.com/user-attachments/assets/6590e38f-4bc1-4dee-a233-6a2e08b86692) +