Этот материал находится в платной подписке. Оформи премиум подписку и смотри или слушай Flutter, TDD, Clean Architecture, SOLID e Design Patterns, а также все другие курсы, прямо сейчас!
Премиум
  • Урок 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