Паттерн MVP в разработке мобильных приложений — это довольно простой способ разгрузить ViewController и вынести часть логики в презентер. Презентер начинает обрастать логикой, которая легко поддается тестированию.
Пусть есть экран MelodyListViewController
показывающий список мелодий. У него есть презентер MelodyListPresenter
, который говорит ViewController что показывать. Данные презентер будет брать из сервиса MelodyService
. MelodyService
это обертка над базой данных и api клиентом, загружающая мелодии. Если сеть доступна, сервис берет данные с api, иначе с базы данных. Типы ошибок загрузки представлены в enum ServiceRequestError
.