Возможно этой темой всех андроидеров уже задолбали, но я о том же. Если вдруг вы имеете отношение к какому-то андроид приложению, и вам не пофиг на то, что будет после 1 ноября, то почитайте вот тут. Если очень коротко, то native либы должны это дело поддержать – их нужно перекомпилить. А мы, соответственно, должны на эти обновлённые версии обновиться. Иначе выложить в Google Play обновление будет нельзя.
Было бы это так просто ещё. У нас вот всё плохо. 😐
Во-первых, есть парочка внутренних библиотек для сканирования документов и лиц людей. На моём опыте примерно самая типичная причина затащить что-то нативное в андроид проект (после каких-нибудь карт или нейронок). Вот они этим требованиям не удовлетворяют. Естественно, концы не сыскать кто это всё дело писал. А если всё таки нашёл, то получаешь ответ, что у них есть новая версия 2.0. И, естееественно, под которую с нашей стороны вообще всё переписать надо. Это классика, тут не о чем даже говорить. Придётся поработать.
Но второй источник приколов у нас довольно внезапный – это Flutter. И это даже не cтолько проблема 16kb, сколько сопутствующий ущерб. Движок флаттера – это такая же нативная либа. Его к нам транзитивно тащит библиотека соседнего продукта, а мы со своей стороны почти ничего о нём не знаем. Соответственно, ничего не предвещало беды.
И на очередном регрессе мы замечаем, что приложение весит теперь не 35мб в пике, а 75мб. Дальнейшие исследования вообще нам показывают, что дебажные сборки улетели далеко за 400мб вместо 80мб исходных. А эти сборки разрабы на девайсы по вайфаю гоняют, так то. Это нифига себе.
Насколько я понимаю сейчас (а я ничего в этих флаттерах не понимаю), та соседняя команда сидела на старой версии флаттера, и вот решили обновиться, потому что не за горами 16kb. Обновились не на ту версию, где эта поддержка только только появилась, а сразу на последнюю. И было бы скучно, если бы эта последняя версия флаттера оказалось без проблем. А у этих проблем в свою очередь вроде бы ноги растут от какой-то проблемы AGP и NDK. А это проблема ещё не решённая и костыли на нашей стороне пока не помогают. Что-то там лишнее недовырезается из финальной сборки теперь, что вырезалось раньше.
В этом конкретном кейсе пришлось откатиться на версии пониже. В надежде, что когда нибудь починят.
Эта история в очередной раз подтверждает насколько всё хрупкое. Покой нам только снится, мы в бесконечном цикле: новые требования → новые обновления → новые фиксы → новые баги. 💥
Выводы:
- Пора пойти и воткнуть в CI прямо на мёрж реквестах подсчёт размера приложения у юзеров, если у вас его ещё нет.
- Обновляться сразу на много версий вперёд больно, избегайте.
- Не откладывайте такие задачки, где вам нужно успеть подстроиться под какие-то требования. Там столько интересного может вылезти, что лучше бы у вас на это запас времени был.
- Флаттер не трогайте, по возможности (шутка, но может и нет 😑)