Без презентационного слоя у нас только утилитки (Core слой), и так случилось, что все они были вынесены наружу из монолита задолго до того, как он начал требовать распила. Можно сказать, что когда такие утилитки появлялись (на замену легаси коду), они сразу оформлялись в виде отдельных модулей (а до перезда в монореп и в виде отдельных репозиториев)
В монолите же лежали только модули экранов, то есть модули с презентационным слоем (хотя модулями их было трудно назвать, монолит же =)).
Поэтому мы выносили экраны из монолита, группируя их в фичи по их общности с точки зрения назначения (для пользователей) и общности с точки зрения ответственных (для разработчиков). Можно сказать, что выносили отдельные флоу.
Например, все экраны платных услуг выделили в отдельный cocoapod. За эти экраны ответственна определенная группа разработчиков
Другие примеры фич — главная страница + экраны поисковой выдачи, экраны выбора локации, экраны поисковых фильтров, экраны публичного профиля пользователя, экраны приватного профиля пользователя, экраны по работе с картой, экраны по работе с веб-контентом
При этом мы старались придерживаться результатов наших ресерчей, согласно которым с точки зрения параллельности сборки и результирующего размера приложения оптимально разбивать монолит на фичи по 5-10 экранов.
на популярных экранах записывается с 10% пользователей, и эти 10% ротируются каждый день. а ошибки логируются со всех пользователей
В монолите же лежали только модули экранов, то есть модули с презентационным слоем (хотя модулями их было трудно назвать, монолит же =)).
Поэтому мы выносили экраны из монолита, группируя их в фичи по их общности с точки зрения назначения (для пользователей) и общности с точки зрения ответственных (для разработчиков). Можно сказать, что выносили отдельные флоу.
Например, все экраны платных услуг выделили в отдельный cocoapod. За эти экраны ответственна определенная группа разработчиков
Другие примеры фич — главная страница + экраны поисковой выдачи, экраны выбора локации, экраны поисковых фильтров, экраны публичного профиля пользователя, экраны приватного профиля пользователя, экраны по работе с картой, экраны по работе с веб-контентом
При этом мы старались придерживаться результатов наших ресерчей, согласно которым с точки зрения параллельности сборки и результирующего размера приложения оптимально разбивать монолит на фичи по 5-10 экранов.