Интеграции

Прочитал статью от спотифая, где они измеряют размер приложения прямо в МРах.

Подход хоть и не новый, но очень клёвый и разумный. Они там используют какую-то 3rd party приблуду emerge. Я пока не понял как эти ребята зарабатывают и мне, честно говоря, было бы страшно. Тем более, что кроме бандла они предлагают им ещё и R8 маппинг загрузить.

У нас сейчас раз в неделю пайплайн гоняется на основной ветке и bundletool get-size total просто отдаёт min/max итоговой апкшки. Этого пока вполне достаточно, чтобы среагировать на какой-то выброс до релиза.

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

Вообще все беды от интеграций. Это может быть либа, которую в соседнем отделе написали, это может быть SDK, который купили у кого-то, чтобы "сэкономить" на разработке, это может быть кусок чужого приложения на флаттере, неважно, результат почти всегда один и тот же.

Там не только размер может вырасти x2 легко, там общая комплексность растёт в геометрической прогрессии, а гибкости становится меньше. Естественно, последствия зависят от качества решения, но практика показывает, что в соседнем отделе вряд ли чуваки из гугла сидят, писали как умели. Да и, как мы с вами понимаем, даже если там чуваки из гугла, то это делу не помогает.

И ты вроде сопротивляешься, аргументируешь что-то, но в конечном счёте идёшь на компромиссы и вы закидываете костылями всё на своей стороне, потому что понимаете, что на той никто ничего в ближайшие годы не сделает, а продвижения какие-то хочется видеть. В конечном счёте просто всем ок с этим, т.к. когда вы продолжаете есть этот кактус, то это оправдывает ваши прошлые решения.

Чем больше компания, чем более стабильно приложение на своём рынке, тем больше такое любят. Отсюда имеем какие-нибудь сберы и фейсбуки по гигабайту в установленном виде.