Операция выполнена!
Закрыть
Хабы: iOS, Разработка мобильных приложений, Swift

Есть такая категория задач, которые поначалу выглядят настолько безобидно, что ты даже не закладываешь на них много времени. Ну не обновился какой-то элемент интерфейса после авторизации, бывает. Скорее всего, где-нибудь потерялось событие, не обновилось состояние или кто-то забыл вызвать нужный метод. Открываешь проект, ставишь пару брейкпоинтов и рассчитываешь довольно быстро во всём разобраться.

Примерно с таким настроением я и взялся за очередной UI-баг, а спустя какое-то время обнаружил себя уже совсем не там, где планировал. Вместо экрана, ради которого всё затевалось, передо мной были несколько репозиториев, менеджеры, сервисы, фабрики, DI-контейнеры и довольно запутанная цепочка создания объектов. Причём чем дальше я по ней продвигался, тем меньше понимал, почему вообще что-то не работает, потому что каждый отдельный компонент выглядел совершенно исправным.

Методы вызывались, события приходили, состояние обновлялось, никаких ошибок в консоли не было. Даже данные, которые я видел в отладчике, на первый взгляд выглядели вполне корректно. И вот это, пожалуй, раздражало больше всего: приложение вроде бы делало всё, что от него требовалось, но интерфейс упорно продолжал жить своей жизнью.

В итоге проблема оказалась вообще не в UI и даже не в данных. Просто одна часть приложения продолжала использовать объект, который для другой части приложения уже давно перестал быть актуальным.

Но обо всём по порядку.

Распутаем вместе?
Читайте также
НОВОСТИ

ПИШИТЕ

Техническая поддержка проекта ВсеТут

info@vsetut.pro