Flutter, TDD, Clean Architecture, SOLID e Design Patterns

39h 23m 38s
English
Paid

Course description

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.

Read more about the course

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.

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 133 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Flutter, TDD, Clean Architecture, SOLID e Design Patterns

0:00
/
#1: Pra quem é esse curso?

All Course Lessons (133)

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

Unlock unlimited learning

Get instant access to all 132 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Flutter Developer Bootcamp

Flutter Developer Bootcamp

Sources: resocoder.com
Flutter is explosively taking over the cross-platform front-end market. Although it's only 2.5 years since the first stable release, it has surpassed any other competing framewo...
35 hours 46 minutes 42 seconds
Dart 101

Dart 101

Sources: fireship.io
This course provides a tour of Dart and teaches essential concepts for Flutter developers. Here’s what you’ll get out of it…
46 minutes 8 seconds
Line-of-Business Mobile Apps with Flutter and Dart

Line-of-Business Mobile Apps with Flutter and Dart

Sources: fullstack.io
Flutter is a powerful tool for developing cross-platform applications, allowing you to create native packages for iOS, Android, Windows, macOS, and Linux...
Flutter & Firebase Masterclass (COMPLETE PACKAGE)

Flutter & Firebase Masterclass (COMPLETE PACKAGE)

Sources: Code With Andrea
Learn about Firebase Auth, Cloud Firestore, Cloud Functions, Stripe payments, and much more by building a full-stack eCommerce app with Flutter & Firebase.
11 hours 38 minutes 25 seconds
Flutter In Production

Flutter In Production

Sources: Code With Andrea
Study flavors, environments, error monitoring, analytics, release management, CI/CD, and prepare your Flutter apps for publishing in the stores...
19 minutes 8 seconds