Урок 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