1. Главная
  2. Почему растут размеры мобильных приложений

Почему растут размеры мобильных приложений

2 июля 20263 минуты чтения
Иллюстрация материала

Мобильные приложения занимают все больше места. Уже простое обновление игры или мессенджера может весить сотни мегабайт, а общий объем установленных программ превышает десятки гигабайт. Разбираемся, почему так происходит и как развивается современная разработка.

Чем удобнее, тем объемнее

Главной причиной интенсивного использования ресурсов становится расширение функций программ: чаты, рекомендации, встроенные проигрыватели, инструменты на основе машинного обучения. При этом каждая новая опция требует не только основного кода, но и целого набора вспомогательных элементов.

Например, модуль обработки изображений подтягивает за собой библиотеки для сжатия, распознавания и отображения, а аналитические инструменты — компоненты для сбора данных. Новые элементы и команды включают резервные варианты для разных сценариев, инструменты отладки, чтобы приложение стабильно работало на всех возможных устройствах.

В итоге небольшое, но полезное улучшение приводит к заметному увеличению размера утилиты, а владельцы смартфонов испытывают неудобства: обновления расходуют мобильный трафик, приходится чаще освобождать память, удаляя ненужные приложения и файлы, или покупать гаджет с бо́льшим объемом ПЗУ.

Графика, языки и адаптация под экраны

Еще одна причина увеличения веса программ — их визуальная составляющая с качественными изображениями, анимацией, шрифтами, адаптированными под дисплеи разного размера и плотности пикселей.

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

Кроссплатформенные решения

Вносят свой вклад и платформы, которые постоянно повышают требования к безопасности, поддержке новых процессоров и экранов. Приложения должны соответствовать каждой новинке Apple или Google, что вновь добавляет фреймворки (англ. framework — происходит от frame, каркас и work, работа) и системные компоненты.

Иногда разработчики сразу выбирают инструменты, позволяющие создавать версии для Android и iOS одновременно, что ускоряет разработку и снижает затраты на поддержку. Но такие фреймворки содержат набор общих компонентов, которые загружаются целиком, даже если используется только часть их возможностей.

Тестовые версии и фоновые процессы

Не только технологии способствуют росту объемов мобильного ПО. Часто его размер увеличивается из-за особенностей процесса разработки. Например, новые функции добавляют через флаги, чтобы протестировать их на части аудитории. Для этого старые экраны и код отключают, но не удаляют полностью, а очистить в последующем забывают или откладывают.

При этом основной объем памяти занимают не строки кода, а статические библиотеки, модели данных, текстуры и медиафайлы, которые остаются в пакете даже после изменений в логике. Это особенно часто встречается в крупных проектах, где во главу угла ставят скорость и регулярность обновлений.

Сюда же можно отнести аналитические и рекламные инструменты, которые тоже заметно увеличивают объем, хотя их работа происходит в фоновом режиме и не заметна обывателю.

Можно ли сдержать рост

Полностью остановить увеличение размеров вряд ли удастся — ожидания пользователей растут, а гаджеты становятся все производительнее. Но современные подходы к разработке и внедрению мобильного ПО помогают контролировать ситуацию.

Модульная архитектура может загружать тяжелые компоненты только при необходимости. Например, системы вроде Android App Bundles и аналогичных решений для iOS оставляют в базовой версии минимум, а дополнительные ресурсы скачиваются позже. Помогают уменьшить объем умное сжатие, общие системные библиотеки и отказ от дублирования.

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

Текст: