Плагины: модуляризация кода View ControllersТехнологии iOS
iOS-программист, любит сложные задачи и постоянно ищет интересные UX-решения.
Основная причина Massive View Controllers - логика, которая находится внутри контроллера, привязана к событиям жизненного цикла либо содержит хранимые свойства и работает с ними, поэтому не может быть легко вынесена в отдельный файл и/или класс. И когда перед нами встаёт задача повторно использовать общие для экранов элементы, стилизацию или UX-решения, нам приходится копировать этот код из контроллера в контроллер. Давайте подумаем, как облегчить эту боль.
Мы по очереди рассмотрим решения этой проблемы, начиная с простой и заканчивая тяжелой артиллерией:
- расширения (очевидно, но применимость ограничена);
- встраивание контроллеров с общей функциональностью;
- встраивание в контроллеры с общей функциональностью;
- плагины (предлагаемый нами подход).
Плагины - это отдельные объекты, которые могут подключаться к контроллеру, хранить свою долю контекста и имеют доступ к жизненному циклу контроллера. Им и будет посвящена основная часть доклада.