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