-
Notifications
You must be signed in to change notification settings - Fork 0
Plano de arquitetura
Foram usados os frameworks nativos, oferecidos pela apple, segue a tabela:
Caso | Framework |
---|---|
Testes unitários | XCTest |
Construção de interface | UIKit |
Base: https://rickandmortyapi.com/api
Retorna todos os personagens, de maneira paginada, também é possível adicionar queries de filtro
obs: os personagens filtrados também são retornados de forma paginada
sem filtro:
https://rickandmortyapi.com/api/character
com filtro:
https://rickandmortyapi.com/api/character/?name=rick&status=alive
URLSession com completion handler
A lista inicial de personagens da primeira requisição de sucesso vai persistir no core data, para funcionar como cache, caso o usuário abra o aplicativo sem internet


por que VIP? porque era um pattern que estava estudando a teoria já faz um tempo, então me desafiar a colocar o VIP em prática foi um dos motivos. Além disso, o VIP separa praticamente todas as responsabilidades e não exige uma dependência de framework para reatividade, como combine
, isso acabou facilitando o processo de desenvolvimento.
O padrão delegate, junto com a prática de injeção de dependência e inversão de controle, ajudou bastante no entendimento do código e também na testabilidade, praticamente tudo poderia ter um mock
, stub
ou spy
, tornando o sut
totalmente testável.

