Насколько оправдан размер приложений для зубных щёток:

Помните, мы рассказывали о взломе умной щётки? Вот ещё одна история. Пользователи обнаружили, что приложение 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 секунд больше времени, чем обычно. Хотите купить новые щетинки для вашей зубной щетки?»

  • «Мы заметили, что вы давно не пользовались вашей зубной щеткой. Хотите купить новую зубную щетку?»

  • «Мы заметили, что вы начали чистить зубы раньше обычного. Вероятно, вы сменили работу и можете позволить себе нашу новую зубную щетку премиум‑класса».

  • «Мы заметили, что вы чистите зубы быстро нерегулярно. Вероятно, у вас есть ребенок. Купите нашу новую детскую зубную щетку!».

А ещё можно заставлять вас покупать сменные щётки после определённого времени или количества использований (как картриджи в принтерах) или продавать премиум‑подписку с функцией сверхбыстрой чистки зубов или очистки языка, например.

Стоит учесть, что приложение также собирает данные, накапливаемые устройствами и приложениями, относящимися к категории «Здоровье и фитнес». Это означает, что производитель в теории знает всё о вашем здоровье. И может использовать эту информацию для таргетирования рекламы.