# Модуляризация iOS-приложения Badoo: борьба с последствиями

DevFeed: [Модуляризация iOS-приложения Badoo: борьба с последствиями](<https://devfeed.tech/articles/ios-badoo-23631.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/badoo/articles/538270/>)

Author: nsurl-dev (Badoo)

Published: 2021-01-21T17:01:19Z

Content type: tutorial

Language: ru

Sources: [Badoo EN](<https://devfeed.tech/sources/badoo-en.md>), [Badoo RU](<https://devfeed.tech/sources/badoo-ru.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Swift](<https://devfeed.tech/topics/swift.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [badoo](<https://devfeed.tech/tags/badoo.md>), [ci](<https://devfeed.tech/tags/ci.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [ios](<https://devfeed.tech/tags/ios.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [modules](<https://devfeed.tech/tags/modules.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [tag-73f5f2c76797](<https://devfeed.tech/tags/tag-73f5f2c76797.md>), [tag-a3309a813b61](<https://devfeed.tech/tags/tag-a3309a813b61.md>), [tag-d96e238f1419](<https://devfeed.tech/tags/tag-d96e238f1419.md>)

## AI overview

This article describes Badoo's experience expanding iOS app modularization and handling the resulting challenges. It covers dependency-graph complexity, CI load, slower application startup as modules increase, monitoring, and an internal Swift command-line utility for automating dependency-graph analysis and fixing typical linking errors.

## Source excerpt

В предыдущей статье я рассказывал о том, как мы выделили модуль чата в нашем приложении. Всё прошло успешно, и мы собирались распространить этот опыт -- начать тотальную модуляризацию в iOS-разработке Badoo. Даже презентовали подход продуктовым командам, командам, занимающимся тестированием и непрерывной интеграцией, и постепенно стали внедрять модуляризацию в наши процессы. Мы сразу понимали что будут проблемы, поэтому не торопились и раскатывали решение поэтапно, что помогло нам вовремя понять проблемы о которых пойдет речь далее. В этой статье я расскажу: -- как мы не потерялись в сложном графе зависимостей; -- как спасли CI от чрезмерной нагрузки; -- что делать, если с каждым новым модулем приложение запускается всё медленнее; -- мониторинг каких показателей стоит предусмотреть и почему это необходимо. Читать далее