Итак, в настоящее время я рефакторинг действительно большого проекта для архитектуры VIPER, и большинство представлений его модулей являются UITableViews. Я нашел почти все темы в Интернете о VIPER и UITableView, но одно остается неясным: где я должен хранить ViewModel и действительно ли они мне нужны?
Например, у меня есть простой модуль VIPER с UITableViewController, и мне нужно представить список элементов. Interactor извлекает JSON с массивом некоторых элементов, которые я декодирую в структуры Codable. Затем я передаю массив этих структур из интерактора обратно в презентатор по протоколу InteractorOutput. А теперь у меня два вопроса:
Должен ли я использовать другую модель данных (ViewModel) для отображения данных в представлении, или я могу использовать уже существующую Codable Struct?
Где я должен хранить свои ViewModels? Внутри Presenter запросите данные из представления следующим образом: Presenter.getData(forItemAt: indexPath.row). Или мне нужно подтолкнуть массив ViewModels к просмотру и попросить View показать их?