Помните, мы рассказывали о взломе умной щётки? Вот ещё одна история. Пользователи обнаружили, что приложение 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 МБ приложения совершенно бесполезны для пользователя.
А вы говорите, «оптимизация».
Зачем вообще требуется приложение для зубной щётки и как производитель может монетизировать данные о том, что человек чистит зубы? Например, так:
«Мы заметили, что чистка зубов занимает у вас на X секунд больше времени, чем обычно. Хотите купить новые щетинки для вашей зубной щетки?»
«Мы заметили, что вы давно не пользовались вашей зубной щеткой. Хотите купить новую зубную щетку?»
«Мы заметили, что вы начали чистить зубы раньше обычного. Вероятно, вы сменили работу и можете позволить себе нашу новую зубную щетку премиум‑класса».
«Мы заметили, что вы чистите зубы быстро нерегулярно. Вероятно, у вас есть ребенок. Купите нашу новую детскую зубную щетку!».
А ещё можно заставлять вас покупать сменные щётки после определённого времени или количества использований (как картриджи в принтерах) или продавать премиум‑подписку с функцией сверхбыстрой чистки зубов или очистки языка, например.
Стоит учесть, что приложение также собирает данные, накапливаемые устройствами и приложениями, относящимися к категории «Здоровье и фитнес». Это означает, что производитель в теории знает всё о вашем здоровье. И может использовать эту информацию для таргетирования рекламы.
Источник: habr.com