CursosPago

Flutter, TDD, Clean Architecture, SOLID e Design Patterns

39:23:38 Inglés Premium 30/10/2023 133 videos

Descripción del curso

Nesse curso irei demonstrar na prática como criar um aplicativo com Flutter seguindo as melhores metodologias do mercado. Se você está cansado de cursos básicos e quer realmente aprender sobre conteúdos avançados e relevantes como: Design Patterns, Clean Architecture, SOLID, DRY, KISS, YAGNI, SoC, TDD, DDD, BDD, você está no lugar certo. O objetivo maior desse treinamento é fazer você sair da sua zona de conforto e ver que existem muitas coisas a serem estudadas para se tornar um líder técnico ou um arquiteto de software.
Vamos criar um aplicativo completo com LoginCadastroLista de EnquetesResponder uma EnqueteResultado da Enquete. Vamos aprender a fazer gerenciamento de estado de forma simples e efetiva com testes e utilizando a biblioteca GetX. Vamos aprender como manter um usuário logado gravando seu token de acesso de forma segura. Vamos fazer o aplicativo ficar funcional onlineoffline. Vamos tornar o aplicativo multi-idioma. Esse curso fará você evoluir mais do que anos de faculdade. Mostrarei pra você, de forma objetiva, todos os conhecimentos que obtive ao longo dos anos de minha carreira. Você terá a oportunidade de evoluir em semanas ou meses (dependendo do seu nível e de sua disponibilidade em estudar) o que um programador sênior leva anos para aprender.

Curriculum

Section 1: Module 1

  • 02 - Pra quem é esse curso? 02:45
  • 03 - Configurando o Git 17:31
  • 04 - Ajuste da aula anterior 01:05
  • 05 - Dica para o treinamento 14:53
  • 06 - BDD, UseCase e Diagrama de Dependências 16:15
  • 07 - Criando o Authentication UseCase 05:43
  • 08 - Criando o RemoteAuthentication e integrando com o HttpClient 18:03
  • 09 - Testando o body do request 21:40
  • 10 - Testando casos de exceção do HttpClient 16:52
  • 11 - Testando caso de sucesso 27:46
  • 12 - Criando o HttpAdapter e testando o post 22:59
  • 13 - Testando casos de sucesso 17:11
  • 14 - Testando casos de erro 21:25
  • 15 - Criando os Widgets da tela de Login 13:51
  • 16 - Criando estilo para os Widgets 21:17
  • 17 - Criando ícone para o aplicativo 08:32
  • 18 - MVC vs MVVM vs MVP vs BLOC 27:14
  • 19 - Testando estado inicial do LoginPage 17:11
  • 20 - Testando estados do formulário no LoginPage 37:47
  • 21 - Testando estados da ação de fazer login 26:03
  • 22 - Reutilizando o presenter nos Widgets com Provider 19:12
  • 23 - Criando o LoginPresenter com StreamController 29:18
  • 24 - Integrando o StreamLoginPresenter com o Validation 25:57
  • 25 - Integrando o StreamLoginPresenter com o Authentication 28:54
  • 26 - Criando o RequiredFieldValidation 15:20
  • 27 - Criando o EmailValidation 13:02
  • 28 - Criando o ValidationComposite 23:13
  • 29 - Fazendo a composição da tela de Login 27:20
  • 30 - Aplicando o Design Pattern Builder 15:49
  • 31 - Tornando o construtor do ValidationBuilder privado 02:18
  • 32 - Refatorando para usar o GetX como gerenciador de estado 42:09
  • 33 - Criando caso de uso para gravar o token de acesso no cache 12:49
  • 34 - Criando o LocalSaveCurrentAccount 25:43
  • 35 - Criando o LocalStorageAdapter e integrando com o Flutter Secure Storage 19:46
  • 36 - Integrando o LoginPresenter ao SaveCurrentAccount 35:33
  • 37 - Criando o caso de uso para carregar os dados da conta do usuário 08:30
  • 38 - Criando o LocalLoadCurrentAccount 23:55
  • 39 - Integrando o FetchSecureCacheStorage ao LocalStorageAdapter 12:26
  • 40 - Criando a tela de Splash 23:52
  • 41 - Criando o Presenter para o Splash Page com GetX 20:34
  • 42 - Fazendo a composição do Splash Page 12:04
  • 43 - Aplicando i18n 18:46
  • 44 - Refatorando o projeto para centralizar as traduções na UI Layer 46:44
  • 45 - Criando o UseCase do AddAccount 07:25
  • 46 - Testando a implementação do AddAccount UseCase voltado para API 26:42
  • 47 - Testando o estado inicial do SignUp Page 12:20
  • 48 - Testando a validação do formulário do SignUp Page 22:19
  • 49 - Finalizando os testes do SignUp Page 18:32
  • 50 - Testando o Validation no SignUpPresenter 12:18
  • 51 - Testando o AddAccount no SignUpPresenter 28:53
  • 52 - Testando navegação entre as telas de Login e SignUp 13:44
  • 53 - Criando o MinLengthValidation 14:08
  • 54 - Criando o CompareFieldsValidation 06:14
  • 55 - Refatorando o projeto por conta de uma modelagem errada 30:34
  • 56 - Fazendo a composição do SignUp 12:24
  • 57 - Correção de bug encontrado 08:51
  • 58 - Criando o LoadSurveys UseCase 11:26
  • 59 - Testando a integração do RemoteLoadSurveys com o HttpClient 08:57
  • 60 - Testando casos de sucesso da API 29:00
  • 61 - Testando casos de exceção da API 10:14
  • 62 - Implementando o Get no HttpAdapter 14:14
  • 63 - Criando a interface da tela de Surveys 17:10
  • 64 - Testando o estado inicial e a stream de loading 21:33
  • 65 - Testando a stream de dados da enquete 19:42
  • 66 - Testando dados corretos das enquetes 06:28
  • 67 - Criando o GetxSurveysPresenter e testando suas streams 32:48
  • 68 - Movendo o GetxSurveysPresenter para produção 03:10
  • 69 - Fazendo a composição do Surveys Page 15:24
  • 70 - Adicionando headers no HttpClient 11:33
  • 71 - Aplicando o Design Pattern Decorator 35:49
  • 72 - Alterando a composição para usar o Decorator 08:07
  • 73 - Correção de bug encontrado 08:55
  • 74 - Criando os requerimentos para listar enquetes offline 10:47
  • 75 - Testando o caso de sucesso do LocalLoadSurveys 21:09
  • 76 - Testando casos de erro do LoadLocalSurveys 17:20
  • 77 - Fazendo o LocalLoadSurveys implementar o Validate 20:30
  • 78 - Fazendo o LocalLoadSurveys implementar o Save 21:00
  • 79 - Separando a implementação do cache e do cache seguro 08:21
  • 80 - Testando o Save do LocalStorageAdapter 16:32
  • 81 - Testando o Delete do LocalStorageAdapter 07:32
  • 82 - Testando o Fetch do LocalStorageAdapter 09:51
  • 83 - Movendo o ValidationComposite para o Main Layer 08:11
  • 84 - Testando caso de sucesso do Composite 14:47
  • 85 - Testando casos de exceção do Composite 17:00
  • 86 - Fazendo a composição com o novo Composite 21:03
  • 87 - Criando o caso de uso do LoadSurveyResult 12:49
  • 88 - Criando a implementação do LoadSurveyResult com API 27:59
  • 89 - Criando a estrutura de arquivos 05:32
  • 90 - Criando o layout da tela de resultado da enquete 19:39
  • 91 - Testando o estado inicial e a stream de loading 17:56
  • 92 - Testando casos de erro 19:39
  • 93 - Testando caso de sucesso 25:15
  • 94 - Refatorando o código 11:34
  • 95 - Criando o GetxSurveyResultPresenter e testando suas streams 19:30
  • 96 - Adicionando link entre Survey e SurveyResult 15:51
  • 97 - Criando a composição da tela de resultado da enquete 11:30
  • 98 - Limpando o token de acesso do Cache no erro 403 24:34
  • 99 - Deslogando o usuário em caso de acesso negado 23:03
  • 100 - Aplicando o DRY com o uso de Mixins nos Presenters 13:34
  • 101 - Aplicando o DRY com o uso de Mixins nos Widgets 18:58
  • 102 - Evitando Memory Leaks 05:21
  • 103 - Implementando o método de Load 28:34
  • 104 - Implementando o método de Validate 06:17
  • 105 - Implementando o método de Save 18:49
  • 106 - Aplicando o Design Pattern Composite 1/2 21:39
  • 107 - Aplicando o Design Pattern Composite 2/2 21:27
  • 108 - Alterando a composição do SurveyResult para usar o Composite 09:42
  • 109 - Ajuste no save do LocalLoadSurveyResult 05:51
  • 110 - Domain Layer 07:18
  • 111 - Data Layer 18:31
  • 112 - Infra Layer 05:26
  • 113 - UI Layer 10:30
  • 114 - Presentation Layer 16:40
  • 115 - Main Layer 08:21
  • 116 - Correção de bugs encontrados 21:51
  • 117 - Fazendo reload de uma tela após o evento de back do navigation 15:38
  • 118 - Simplificando os testes de UI com helpers 15:30
  • 119 - Refatorando os Mocks 1/3 30:05
  • 120 - Refatorando os Mocks 2/3 21:01
  • 121 - Refatorando os Mocks 3/3 08:11
  • 122 - Migrando para a versão nova do Flutter com FVM 13:37
  • 123 - Migrando mockito para mocktail 19:23
  • 124 - Removendo meta.dart 24:24
  • 125 - Corrigindo erros da pasta lib 18:04
  • 126 - Corrigindo erros da pasta test 08:17
  • 127 - Refatorando os mocks 27:11
  • 128 - Corrigindo bug do mocktail que retorna null pra todos os mocks (até para void) 15:47
  • 129 - Extraindo mocks do Data Layer 19:31
  • 130 - Extraindo mocks do Infra Layer 26:31
  • 131 - Extraindo mocks do Main Layer 30:29
  • 132 - Extraindo mocks do Presentation Layer 30:37
  • 133 - Extraindo mocks do UI Layer 35:54
  • 134 - Ajustes finais 07:34

About the Instructor

Instructor

udemy

Course

$0.00

$8.00
Que esta incluido?
  • Streaming Multiplataforma
  • Acceso de por vida
  • Soporte al cliente
  • Actualizaciones gratuitas