Насколько оправдан размер приложений для зубных щёток
Помните, мы рассказывали о взломе умной щётки? Вот ещё одна история. Пользователи обнаружили, что приложение Oral‑B весит аж 290 МБ. И решили разобраться в ситуации, а также найти самое «тяжёлое» приложение для зубной щётки.
У приложения Oral‑B 233 МБ из 290 (80%) приходится на каталог ассетов. Большинство из них — это PDF‑файлы с описанием различных моделей зубных щеток.
Самый крупный файл тут — `Sonos_M9_rose` размером 7,8 МБ. Большинство PDF‑файлов описывает даже не всю зубную щётку, а только её ручку и кнопки.
Единственным файлом, который бросается в глаза, является `Comino.bundle` (15 МБ). Он содержит файлы типа `20class_seqlen26_6p5h_20 200 302–095 627_comino_android_production`. Что это? Возможно, параметры модели.
Пока одни удивлялись размеру приложения от Oral‑B, другие нашли ещё более «тяжёлое» приложение, которое разработано Colgate. Его размер составляет 378 МБ.
И если у Oral‑B основную часть занимают ассеты, то у Colgate — это просто бесполезно раздутый файл.
Colgate использует Unity, предположительно для своей функции «управляемой чистки зубов». Фреймворк Unity занимает 125 МБ, и это разумно, если разработчики уверены, что функция того стоит. Проблема в том, что Unity на 50 МБ «тяжелее», чем нужно, поскольку Colgate не удаляет двоичный код из своего приложения. Между тем, этот код совсем не обязателен для боевого приложения, если вы загружаете.dSYM в crash reporter. В общей сложности Colgate могла бы сэкномить ~60 МБ (15%).
Ещё одна проблема —дублирование. У приложения Colgate на дубли приходится 60 МБ ассетов и локализаций в основном пакете и его расширении для виджетов.
Красным цветом помечены дубли.
Получается, что примерно 120 МБ приложения совершенно бесполезны для пользователя.
А вы говорите, «оптимизация».
Заче
Читать на habr.com

