Кристиан Бенуа
Т-Банк
У всех популярных DI-фреймворков для iOS: Needle, Factory, Swinject, swift-dependencies, есть общая скрытая проблема, из-за которой на старте большого приложения на возрастных устройствах оверхед может доходить до секунды. Мы измерим его через Time Profiler, бенчмарки и A/B-тесты на проде, а затем заглянем в профилировщик и найдем виновника.
На примере Swinject я покажу подход, который уменьшил оверхед от DI на старте нашего приложения в 10 раз: без переписывания приложения и без изменения архитектуры, потому что меняются только внутренности самого контейнера. Что это за проблема и как именно мы ее решили — оставлю интригой до доклада. Подход переносится и на другие фреймворки, хотя со своими сложностями. Доклад будет полезен iOS-разработчикам любого уровня и особенно тем, кто работает с большими приложениями. Вы уйдете с готовым рецептом, применимым к вашему проекту.
Т-Банк