petruska
@petruska
IOS Developer

Как правильно писать на VIPERе?

Всем привет, подскажите как лучше сделать
Пишу на VIPERе
Presenter говорит Iteratory дай мне список новостей

Как мне удобно сделать:
1) Iterator через ServerManager получает массив моделей типо NewServerModel (поля: картинка, текст)
2) Iterator через CoreDataManager сохраняет/обновляет новые данные
3) Iterator через класса NewsMapper кидает в NewsMapper NewServerModel и получает на выходе NewsUIModel (в которой я считаю какой должна быть высота ячеек и другую логику, поля типо: картинка, текст, выстора, ширина и другая UI модель логика)
4) Если нету инета, Iterator берет данные с БД и делает аналогично 3 пункту только кидает NewsCoreDataModel
5) Ну и наконец Iterator отдает массив UIModels в Presenter

В итоге Presenter получил данные в 1 типе (NewsUIModel) и ему пофиг на логику Iteratora

Но насколько я знаю подготовка отображения данных лежит именно на Presentare, поэтому он должен делать 3 пункт! Но тогда получается что Iterator может кинуть данные и вида CoreDataModel и вида ServerModel и тут получается каша
Думал может сохранять ServerModel в БД а потом брать с БД данные, но ведь это тупо что я тока сохранил данные, а теперь их достал
Посоветуйте как лучше такое делать
  • Вопрос задан
  • 392 просмотра
Решения вопроса 1
briahas
@briahas
ObjC, Swift, Python
Вы по моему попутали что чем должно заниматься. У вас Итератор и Модельки получает и в UIModels их перегоняет.

Итератор должен отдавать модельки. И приведение к одной общей он и должен делать.

Презентер должен отрабатывать события произошедшие на Въю и передавать данные для Въю... и с Роутером общаться.

И лишь только Въюха занимается отображением данных - переводом моделек в UIModels.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы