Открыть список
Как стать автором
Обновить

Комментарии 11

Спасибо, очень интересная и информативная статья!
Все разложили по полочкам, мне как несильному специалисту в данной области есть в чем поразобраться.
Очень интересно, что дата единственной активности пользователя с таким «интересным» комментарием совпадает с датой создания статьи…
Да, совпадает, я зарегистрировался вчера и начал читать новые статьи — эта была в топе. В чем проблема? Если сомневаешься в активности, зайди на Q & A и посмотри мой профиль там.
Странно, что Redux удостоился лишь упоминания вскользь. В вебе он уже вроде как давно супер популярный, в Андроид под маской mvi тоже больше года как пришел (и дурных отзывов о нем мне слышать не довелось), неужели в ios он еще не имеет никакой популярности?

Я сам не ios-ник, так что исхожу только из общих соображений.
О чистых архитектурах и FRP-related (Redux, TEA, MVI) будет подробно в следующих статьях из цикла :)
Отлично, будет интересно почитать, как это используется для ios)

Небольшое замечание. Не столько по статье, сколько вообще. Хотя Flux, Redux и т д почти всеми и всегда реализуются с использованием реактивщины и она даже прописана в их базовом описании, по факту их можно реализовать без каких-либо реактивных инструментов, на обычных обертках, коллбэках и сеттерах. Это резко упрощает их использование и вникание для новичков и я бы не сказал, что хоть что-то отнимает у подхода самого по себе.
Вы о подобном в части MVVM сами рассказывали.
А то знаю многих, кто не пробует MVI именно потому что «Rx слишком сложный, оно того не стоит».

Очень крутая статья!
А какую архитектуру сами предпочитаете?

Спасибо!
Предпочитать одну архитектуру — все равно что предпочитать один конкретный вид вина. Все же к каждому блюду выбираешь заново: где-то белое лучше подходит, где-то красное, а где-то и вовсе шампанского хочется… :)

PS: справедливости ради, субъективно лично мне очень импонирует CleanSwift — все-то там по полочкам разложено! :D
но далеко не всегда конечно это лучшая опция в выборе архитектуры проекта
Статья хороша!
К ней бы еще репозиторий с примерами — цены бы не было!
С другой: UIView не умеет отрабатывать IBAction (тк он не посылает никаких actions — это делают UIControl), а .xib-ы легче подключаются к контроллерам (наверняка же сталкивались с историей, что если xib не заканчивается на -Controller то он не подключается “из коробки”? :)).

Вы ничего не путаете?
1)actions могут отсылать еще gesture recognizers, которые сами по себе не являются UI компонентами и скорее определяют некое абстрактное действие, которое навешивается на UIView (и которое таким образом фактически отсылает UIView)
2)что значит «не подключается из коробки»? При создании swift файла сразу не создается xib? А как же UITableViewCell?
Любой iOS-ник скажет, что эта картинка вообще не вяжется с реальностью

Я бы подискутировал на эту тему!

UIView не умеет отрабатывать IBAction

На UIView можно стандартным путём навесить IBAction

а .xib-ы легче подключаются к контроллерам

xib файлы без каких-либо проблем подключаются к UIView

В итоге чтобы отделить UIView от UIViewController в терминах целого экрана, а не отдельного компонента — нужно пройти сквозь огонь, воду и LLVM.

Чтобы отделить UIView от UIViewController достаточно создать файлик для View и соединить с Controller посредством storyboard или программно :)

все пихают логику Вида в UIViewController, что приводит к тому, что MVC элегантным жестом превращается… в Massive View Controller.

Такое действительно встречается, но и другие дизайн паттерны иногда применяются не правильно, не так-ли?

Мне нравится использовать MVC вместе с UIKit, ведь UIKit имеет множество готовых объектов и механизмов для этого. Ситуация несколько меняется при переходе в SwiftUI, но это уже совсем другая история :)
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.