Реализация mvp в swift

ios
swift

#1

Добрый день!

Так уж случилось, что возникла необходимость написать приложение, реализованное по принципу MVP (Model-View-Presenter), и сделать это все на SWIFT. Поиск в интернете привел к следующим выводам:

  1. Swift для MVP не предназначен. Обычно в нем используют MVC или MVVM, а значит примеров реализации MVP почти нет.
  2. Но “почти” - не значит “совсем”. На гитхабе таки нашелся пример (https://github.com/SeptiyanAndika/MVP-Swift), где MVP все-таки реализован. Правда я так и не понял по каким принципам и что использовалось.

Собственно, сам вопрос: есть ли подробная инструкция по написанию Presenter’а в целом и на Swift в частности? Из того, что я прочел я вынес некое понимание, которое звучит как “Presenter - файл в котором хранится вся логика, а при необходимости использования - ее просто дергают из контроллеров”. Хотелось бы больше конкретики и живых примеров

Надеюсь на вашу помощь. Спасибо


#2

Как вариант посмотрите Clean Swift. Это VIP (view controller, interactor, presenter).
http://clean-swift.com
Может быть с презентером так и разберетесь.


#3

Спасибо. Сейчас попробую.


#4

Привет вот пример реализации MVP на Swift 3 https://github.com/tularovbeslan/inStatTest, реализация достаточно хорошая все сделано через сервис-ориентированную архитектуру с использованием сториборд внедрение зависимостей. В общем это все что тебе нужно если разберешься, если нет пиши помогу


#5

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#6

На самом деле однозначно сказать пока не могу, так как тут было желание написать либо серию статей, либо курс


#7

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#8

Вполне себе архитектура не хуже вайпера и плюсы такие же. Строго прописаны ответственности слоёв, человек взглянувший на твой модуль сможет в нём быстрее разобраться, ты сам сможешь быстрее разобраться через пол года, каждый отдельный слой проще тестировать. Уйма протоколов как следствие, вся коммуникация идёт через протоколы, что в принципе тоже верно. По большому счёту ничего нового, всё тот же MVP, на андроид давно такое есть.

Я в рамках випа не нашёл:

  • Что делать если, у меня регистрация пользователя на двух экранах (так захотел дизайнер) и мне нужно собрать данные с двух экранов и отправить на сервер. Точно понятно что нужен один интерактор, но как связать его с двумя презентерами непонятно и будет ли это вип, тоже не понятно.
  • Что делать если, у меня есть некие данные, которые мне нужно отображать и TableViewController и в CollectionViewController (с возможностью переключения). По логике и интерактор и презентер нужны по одной штуке, но как к этому подключить два контроллера загадка.

И хоть VIP мне показался достаточно неплохим, не под все мои кейсы его можно подогнать и я продолжию думаю что то своё рядом с Clean Architecture и изучать что там есть на android :slight_smile:


#9

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#10

hidden не мой путь:)


#11

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#12

Получается что вип не подходит или подходит но не совсем.