Конференция для разработчиков мобильных приложений

Удобный и расширяемый роутинг в iOS-приложенииТехнологии iOS

Доклад принят в программу конференции
Тимур Юсипов

Окончил НИЯУ МИФИ в 2013 году. iOS разработчик и архитектор с пятилетним стажем, работал над проектами CT Mobile, DFG152. Адепт яблочной компании и архитектуры VIPER. В команде Avito с 2015 года.

В своём докладе я расскажу о подходе к построению навигации в больших приложениях на примере демо-проекта, приближенного по архитектуре к приложению Avito.

Данная архитектура позволяет поддерживать DeepLink’и и iPad в существующем приложении, показывать плашки Push-уведомлений в верхнем видимом модуле, совершать переходы из верхнего видимого модуля, вызванные корневым модулем приложения, а также централизовано управлять анимацией переходов.

Разработанная нами навигация оборачивает UIKit для совершения переходов в засахаренном и декларативном стиле. Использование этой системы позволило снизить связанность кода для повышения его переиспользуемости и тестируемости, а также выработать общие стандарты к построению стека навигации. Наиболее хорошо эта система сочетается с архитектурой VIPER, но может использоваться и без нее.

По ходу доклада я также расскажу о том, как выглядела навигация в приложении Avito раньше; о том, какой она стала с началом использования архитектуры VIPER; о проблемах, которые мы увидели, и об итоговом решении. Также вкратце рассмотрим, что же скрывается под капотом у этой системы.

Другие доклады секции Технологии iOS