Как облегчить приложение на андроид
Одним из немаловажных аспектов разработки мобильных приложений является оптимизация размера. Мы все по личному опыту знаем, что чем меньше весит приложение, тем охотнее его скачивают, особенно если под рукой нет точки доступа Wi-Fi, а скорость и/или трафик мобильного интернета оставляют желать лучшего. К тому же, нельзя забывать и о том, что некоторые маркеты ставят ограничение на размер выпускаемого приложения. Например, в App Store продукты размером до 100 МБ доступны для скачивания по мобильному интернету, если же вес приложения превышает этот порог, то скачать его можно только через Wi-Fi. На Play Market же приложение, которое вытягивает больше 100 МБ, нельзя загрузить в принципе. В данной статье мы опишем, к каким методам и хитростям прибегали наши разработчики нативных приложений на iOS для того, чтобы уменьшить вес продукта, и добавим к этому несколько дельных советов, найденных в сети.
Основные способы уменьшения размера приложения
Графический контент
Сейчас дизайн играет ключевую роль в любом хорошем приложении. Если интерфейс минималистичен или продукт имеет небольшой набор функций, то этот этап можно пропустить. Если же проект отличается богатым функционалом или поддерживает некоторое количество цветовых схем, то здесь уже не обойтись без большого количества изображений со всеми вытекающими последствиями для веса. Кроме того, зачастую в проекты по умолчанию добавляются наборы изображений под различные форм-факторы мобильных устройств, как например @1x, @2x, @3x для iOS приложений. Ниже мы приведем методы, которые использовали в своих приложениях, чтобы разрешить проблему с обилием графического контента. Возможно, какие-то из них вы применяете и сами.
Один из простейших путей — использовать вместо трех масштабов только 3x изображение. Этот способ не назовешь оптимальным, так как на устройствах, ориентированных под 1x и 2x масштабы, такие изображения не всегда будут смотреться приемлемо. Однако за неимением лучшего этим приемом можно неплохо уменьшить размер проекта при огромном количестве графики.
Другой способ завязан на добавлениеи векторных изображений вместо растровых. На iOS мы экспортировали изображения в формат PDF. Зачастую такой файл действительно весит меньше, однако это работает не со всеми изображениями. Загвоздка здесь в том, что в векторная графика может некорректно отображать некоторые маски изображения, делая их абсолютно черными или искажая цвета.
Теперь рассмотрим пример с приложением, имеющим несколько цветовых схем (в простонародье «скин»). Чем больше цветовых схем в приложении, тем сильнее возрастает количество необходимых изображений. Если в изображении используется более одного цвета, то приходится хранить несколько вариантов на каждый скин. Однако, в случае когда изображение однотонное, его можно сделать шаблонным и уже в самом коде менять цвет оттенка (tint color). На iOS создать подобный шаблон можно двумя способами:
Рис.1. Выставление шаблонного режима изображения в XCode.
— где UIImageRenderingModeAlwaysTemplate и является шаблонным режимом изображения.
Замена анимационных изображений
Добавление анимации — обычное дело в приложениях. Она привлекает внимание пользователя к нужным объектам интерфейса и делает его менее статичным, обеспечивая более приятный опыт взаимодействия. Некоторые простые анимации, наподобие перемещения объекта из одной части экрана в другую или появления снизу нового окна, можно сделать программно. Другие же, более сложные, требуют отрисовки каждого кадра анимации. Когда мы впервые столкнулись с добавлением анимационного изображения в ходе разработки, то использовали для его реализации один из распространенных способов, а именно анимирование через массив изображений. Выглядело это так:
Сначала создается массив с названиями изображений, затем — массив который поочередно пополняется изображениями из названий. Потом у переменной типа UIImageView задаются массив изображений для анимации, продолжительность анимации и количество повторений. После чего запускается сама анимация. Однако если кадров много и при этом на каждый из них приходится по три масштаба, то для размера приложения это не сулит ничего хорошего. Придя к такому печальному итогу, мы задались поиском способа добавления gif-файла вместо массива картинок. К счастью, на просторах интернета нам попалась категория UIImage+animatedGIF, которая все это уже умеет. Данная категория добавляет классу UIImage два метода:
Первый метод загружает gif, сохраненный в виде данных, а второй метод берет его прямо из ссылки на ресурс, например, из бандла приложения. Сам gif-файл можно сделать из тех же кадров на каком-нибудь сервисе для создания таких файлов, где задается количество кадров в секунду, сжатие и разрешение. Правильно выставленные параметры дадут на выходе гифку приемлемого веса. Теперь остается только добавить ее в бандл и использовать один из методов указанных выше.
Однако gif-файл тоже занимает пространство, поэтому мы старались выполнить все анимации программно. В Audio Editor Tool на стартовом экране у нас проигрывается анимация появления логотипа AUDIO EDITOR побуквенно. Раньше данная анимация была реализована с помощью гифки, но из-за большого разрешения изображения весила она многовато. Поэтому мы решили реализовать ее с помощью CABasicAnimation.
Чтобы логотип у нас появлялся побуквенно, как на гифке, мы использовали градиентную маску, которая со временем смещала начальную позицию прозрачности. Для начала мы создали слой градиента, у которого прозрачный цвет идет практически с самого начала. Потом задали градиент как маску слоя текста логотипа, тем самым делая его прозрачным. Следующим шагом создали группу анимаций, в которую добавили две анимации. Первая из них смещала начальную позицию градиента, а вторая — конечную, тем самым делая его непрозрачным. Отметим один нюанс: важным шагом было указать в свойстве removeOnCompletion отрицательное значение, иначе анимация была бы удалена по завершению и слой вернулся бы к начальному значению.
Конвертирование аудио
В наших приложениях часто используются аудиофайлы формата WAV. В силу своей структуры этот формат занимает много места в проекте. По этой причине было решено сначала полностью заменить в бандле все файлы этого формата на более легковесный M4A, а потом, уже в самом приложении, конвертировать их в WAV. Почему бы просто не использовать M4A? Потому, что при цикличном воспроизведении файла этого формата происходит задержка при начале каждого цикла, будто там присутствует некая пустота. Завершающий шаг — сохранить уже конвертированный файл в директории приложения после первого запуска.
В данном методе берется файл из бандла по url и сохраняется в директорию по convertedUrl. Считываемый файл загружается в буфер и уже оттуда записывается в новый с требуемыми настройками записи. Таким образом, мы используем более стабильный и тяжеловесный WAV после первого запуска, но при этом размер приложения существенно уменьшается на этапе загрузки и установки.
Подгрузка файлов с сервера
Подгрузка файлов с сервера — это то что нужно для приложений со значительным объемом контента. Большое количество пресетов музыки, наборы изображений и многое другое, что сильно увеличивает размер приложения, можно загрузить и позднее. Конечно, загрузка каждого отдельного файла потребовала бы много времени и трафика, поэтому с сервера подгружаются архивы со всем необходимым, а уже в самом приложении они распаковываются и сохраняются в директории приложения. Для разархивирования используется библиотека SSZipArchive (репозиторий библиотеки вы найдете по ссылке). Эта библиотека способна как упаковывать файлы в архив, так и распаковывать архивы. Но нас интересует только один метод из основного класса библиотеки:
Данный метод распаковывает файл из пути path в путь destination, а пока он распаковывается в progressHandler можно совершать какие-либо действия (например, отображение прогресса распаковки), после чего в completionHandler показать, что распаковка благополучно завершилась, либо вывести ошибку при неудаче.
Заключение
В конечном счете, если судить по приложению Mix Wave, которое до установки весит
41 МБ, а после загрузки всех пресетов — 281 МБ, то описанные методы смогли уменьшить размер приложения примерно в семь раз. Результат неплохой, хотя, возможно, существуют и более актуальные способы. Если вы знаете о таких, предлагаем поделиться в комментариях.
UPD: Спасибо Dim0v за дельные замечания о графическом контенте. Приводим их ниже:
«Во-первых, для устройств с iOS 9 и выше работает App slicing. iTunes Connect пересобирает загруженный архив в несколько вариантов для разных устройств. Таким образом, например, iPhone 6 при установке из апп стора будет тянуть только @2x ресурсы, а iPad mini 1 — только @1x. Поэтому если продукт поддерживает iOS 9+, то прислушивание к совету об оставлении только 3x ресурсов будет иметь строго обратный эффект — для айфонов+ ничего не изменится, а вот устройства с меньшим разрешением будут вынуждены тянуть себе 3x ресурсы, тогда как могли обойтись 2x или 1x.
Во-вторых — совет о переводе растровых изображений в вектор также не имеет смысла. Единственное, что вы таким образом можете сэкономить — это место на компьютере разработчиков. Xcode растеризирует векторные изображения при сборке билда, в чем несложно убедиться, к примеру, отмасштабировав «векторную» картинку на устройстве и увидев дико пикселизированное растровое изображение. Я не спорю, векторные ресурсы — это удобно: проще экспортировать дизайнерам, не нужно следить чтобы при изменении ресурса остались «синхронизированными» все его версии разных разрешений и т.п. Но перевод существующих растровых картинок в вектор именно с целью уменьшения размера билда не имеет никакого смысла».
Парадоксально: несмотря на развитие технологий и возросшие объёмы памяти смартфонов, на современный гаджет вы можете установить приложений меньше, чем несколько лет назад. Хватит это терпеть! Разбираемся в причинах и ищем методы борьбы с раздутыми программами.
Размер десяти самых популярных приложений на iOS за 5 лет вырос в 9 раз
Согласно статистике, собранной компанией Sensor Tower, пять лет назад набор из 10 наиболее популярных приложений для платформы iOS занимал всего 200 МБ. Сегодня они же весят уже больше 1,8 ГБ. Их аппетит вырос в невероятные девять раз, в то время как минимальный объём внутренней памяти новых iPhone — всего в четыре раза (с 16 до 64 ГБ). Программы увеличились по-разному: если Spotify «растолстела» всего в шесть раз, то Snapchat — в рекордные 51. И дело не только в гигабайтах. Разросшиеся приложения начинают тормозить. Почему так происходит? Есть несколько причин.
Причина 1. Метрики и трекинг
Казалось бы, новые функции — это всегда хорошо. Так и есть, когда речь идёт о новых возможностях для пользователей. Но с каждым днём в приложениях появляется всё больше кода, реализующего сомнительную функциональность. Любая программа для заказа бургеров отслеживает, сколько времени вы провели в том или ином разделе, сколько раз нажали на определённую кнопку, и даже записывает экран во время работы. За желание разработчиков знать о нас всё мы с вами расплачиваемся не только снижением приватности и мобильным трафиком, но и сокращением свободного места в памяти смартфона.
График времени, проведённого пользователем в разных разделах приложения, построенный на основе внутренних метрик
Причина 2. Лишние ресурсы
С предыдущим пунктом тесно связано дублирование ресурсов: в крупных фирмах над разными частями приложения трудятся разные люди, использующие одни и те же файлы для модулей. При подготовке релизных версий об этом просто-напросто забывают. Как результат — 40 МБ «избыточного веса» в клиенте Facebook. Компания время от времени чистит установочные пакеты от мусорных файлов, но эта музыка будет вечной, а батареек у них хватит надолго.
Внутренняя структура приложения Facebook в апреле 2017 года с указанием дублированных ресурсов
На удивление нерационально реализована работа с ресурсами в приложениях для iOS: в файлы программ (.ipa) попадают иконки сразу для всех устройств, начиная от iPod Touch и заканчивая iPad Pro. В то же время в Android принято добавлять всего один набор графики для всех аппаратов, который затем будет отмасштабирован для разных разрешений и размеров экранов. Чтобы улучшить ситуацию, Apple пару лет назад представила технологию App Thinning — она позволяет гаджетам скачивать только необходимый набор графики. Однако описанная ситуация нередко встречается и сейчас.
Сравнение размеров универсального приложения для iOS (серый столбец) и программ, собранных под конкретные устройства
Причина 3. Неоптимальный код
Существует распространённое выражение, известное во множестве вариаций: «железо стоит дешевле времени разработчика». К сожалению, это действительно так. Пользователь рано или поздно купит новый смартфон, куда установят ещё более мощный процессор и ещё больше памяти. Так зачем вкладывать усилия в качество кода, когда «и так схавают»?
Главный бич современной разработки прикладного ПО — сторонние повторно используемые подпрограммы и «костяки» приложений (библиотеки и фреймворки). Само собой, в них как в инструментах, облегчающих написание кода, нет ничего плохого. Но нередко бывает, что программа тянет библиотеку весом несколько мегабайт ради единственной функции. А если таких функций и, соответственно, библиотек много? Это разработчикам для iPhone хорошо — у них новые релизы iOS приходят разом на все аппараты, вышедшие за последние годы. А в Android актуальных версий системы всегда по нескольку штук, и приложения должны уметь работать со всем этим зоопарком. Код, обеспечивающий совместимость, отнюдь не добавляет программе «лёгкости».
Диаграмма распределения версий Android на конец октября 2018 года
В мире iOS тоже не всё гладко: переход на язык программирования Swift увеличил объём тех же программ в три-четыре раза. Виноваты не только внутренние особенности языка (большие типы данных по умолчанию, увеличенный размер стандартных библиотек, дополнительные тесты и проверки, попадающие в финальную версию). Сыграла злую шутку и лень разработчиков, которые не хотят задумываться о выборе правильных типов данных и других методах оптимизации.
Сравнение размеров шаблонных приложений для iOS на языках Swift и Objective-C
Причина 4. Бесполезные функции
Неприятная тенденция последних лет — появление огромного количества «велосипедов». Вместо стандартных возможностей, предоставляемых системой, разработчики добавляют такие же, но собственные — например, браузеры или фотогалереи. И если есть настройка «Открывать ссылки в браузере», то спрятана она далеко в меню. А стоит в каждый мессенджер встроить по веб-просмотрщику или камере — и никакой памяти в смартфоне не хватит.
Ещё один популярный тренд: производители стремятся сделать из программ комбайны и добавляют в них новые функции, которые почему-то считают очень полезными. Пользователи-то думают иначе: зачем, скажем, файловому менеджеру «ES Проводник» диспетчер задач, анализатор SD-карты и аудиоплеер? Или вот бенчмарк AnTuTu: он не только получил целый набор дополнительных тестов, которыми почти никто не пользуется, но ещё и надоедает виджетом в панели уведомлений, пока не отключишь его вручную.
Слева — «ES Проводник», справа — AnTuTu
Причина 5. Рост требований к приложениям
Технический прогресс стремителен. Уже свершился переход на 64-битные чипсеты, а рост разрешений экранов и не думает останавливаться — куда-то же нужно девать возросшие процессорные мощности? И если с переходом на архитектуры большей разрядности размер программ изменился единовременно и сравнительно немного, то дальнейшее увеличение ppi в смартфонах сделает приложения заметно крупнее. Проблема не возникла бы при рациональном использовании ресурсов, но это, как мы уже выяснили, не всегда бывает так.
Все размеры иконок, необходимые для поддержки iOS-устройств
Как усмирить разжиревшие приложения
Увы, мы не в силах заставить разработчиков писать качественный код и тратить время на оптимизацию. Однако пара способов увеличить объём свободной памяти всё-таки есть.
Перенос приложений на карту памяти. Если ваш смартфон оснащён специальным слотом, вы можете установить карточку microSD и использовать её для хранения программ. Процесс переноса приложений в Android не изменялся с незапамятных времён. Достаточно найти нужное в настройках и нажать кнопку «Перенести на карту памяти» или «Изменить место хранения» (в зависимости от модели гаджета).
Несмотря на то, что карты памяти бывают весьма вместительными, у способа есть ряд недостатков. Некоторые программы в принципе не могут быть перенесены (за это отвечают их создатели), а какие-то после переноса теряют часть функциональности или начинают работать нестабильно. Можно обойти ограничения, применив опцию объединения внутренней и внешней памяти в Android, но тогда не получится использовать карту в других устройствах, а её извлечение запросто лишит вас части установленных приложений.
Использование веб-версий. Изрядная часть привычных нам приложений — не более чем веб-клиенты сайтов. Сюда относятся среди прочего клиенты социальных сетей и приложения вроде YouTube. Понятно, что нативные программы обычно имеют большую функциональность. Но если вы готовы от неё отказаться (предположим, вам не нужны мгновенные уведомления из соцсети), то браузер станет вполне неплохим вариантом.
Использование облегчённых приложений. «Ожирение» некоторых программ уже настолько велико, что владельцы бюджетных смартфонов попросту не могут ими нормально пользоваться — не только из-за большого объёма, но и медленной работы. Поразительно, но многие разработчики решили не оптимизировать существующие программы, а сделать их облегчённые версии. Сначала речь шла только о собственных инициативах создателей (так появилось приложение Facebook Lite), но затем Google представила Android Go — сборку операционной системы для недорогих устройств. Помимо общей оптимизации Android Go открывает в Google Play доступ к облегчённым версиям более чем полусотни популярных программ как от самой Google, так и от сторонних компаний.
Google Maps Go почти не отличается от обычного приложения, но занимает в памяти смартфона считаные килобайты и использует Chrome в качестве движка
Если же на вашем гаджете установлена обычная версия Android, то загрузить Go-версии приложений можно вручную из apk-файлов. Найти их удастся, например, на нашем форуме.
Всем известно, что Android Market накладывает ограничение на размер публикуемых программ. Сегодня в магазине можно разместить приложение, размер которого не превосходит 50 Мб, но что же делать, если Вы вылезли за это ограничение?Дэвид Карлссон, архитектор приложений из Sony Ericsson, дает несколько советов, которые помогут уменьшить размер вашего apk файла.
Что такое APK формат?
APK- аббревиатура от Android application package (файл архива Android программы). Каждое Android приложение упаковывается в apk архив, содержащий исполняемый код (.dex файлы), ресурсы, активы и файл манифеста. Фактически apk представляет собой обычный zip архив, поэтому не имеет смысла предварительно сжимать файлы ресурсов каким-нибудь архиватором.
Ниже приводится несколько полезных советов, которые помогут вам уменьшить размер ваших Android программ.
Используйте ProGuard
ProGuard- это обфускатор, попутно сжимающий размер кода. Как известно, Java приложения компилируются в байт-код, из которого довольно просто восстановить java исходник. Для усложнения жизни любителям реверс-инженерии придумали обфускаторы. Обфускатор служит для запутывания исходного кода программы, при сохранении исходной функциональности. Получается рабочий исходник, мало пригодный для чтения человеком. Программа ProGuard помимо собственно обфускации сжимает исходный код, делает его более быстрым и менее требовательным к памяти. Очень важно после использования ProGuard провести тщательное тестирование полученного приложения. Возможны ситуации, когда в ходе оптимизации и обфускации кода изменяется его функциональность. В таких случаях важно позаботиться о сохранении symbol mapping, чтобы можно было восстановить из обфусцированного кода исходный и попытаться выявить источник проблем.
Удаляйте отладочную информацию
Дэвид рекомендует перед компиляцией финальной версии программы убрать из нее все связанные с отладкой конструкции, поскольку они не несут для пользователя ничего полезного.
Часто начинающие разработчики оформляют отладочный код в виде отдельных методов
Это не лучшее решение, поскольку на этапе сборки релиза будет удален блок if (Debug) , но сам методmyDebugPrint() и его вызов останутся нетронутыми и будут занимать место.
Удаляйте отладочные символы из нативных библиотек
Использование символов отладки имеет смысл, когда ваше приложение находится в стадии разработки. Если Вы решили собрать релиз, Дэвид рекомендует удалить символы отладки из нативных библиотек (.so файлы). Это можно сделать, вызвав команду arm-eabi-strip из Android NDK.
Используйте рекомендуемые медиа форматы
Если ваше приложение содержит графику, видео и аудио данные, использование "правильных" форматов может положительно сказаться на размере приложения. Дэвид рекомендует использовать следующие форматы:
- Рисунки: PNG и JPEG. Формат PNG позволяет добиваться хорошей компрессии при отсутствии ухудшения качества картинки. JPEG хорош для больших по разрешению картинок.
- Аудио: Используйте ACC Audio. Этот формат обеспечивает лучшую компрессию, чем широко распространенные mp3 и Ogg Vorbis. Никогда не используйте wav. Это формат для профессиональных музыкантов. В нем не используется компрессия и содержится много избыточной информации. Часто wav используется для декодирования сжатого аудио потока. Обычно такой подход сопровождается заметными временными задержками. Android имеет средства для воспроизведения сжатого аудио потока лишенные этого недостатка (Sound Pool API).
- Видео: Используйте формат H264 AVC. Если видеофайл имеет большое разрешение, обязательно перекодируйте его под разрешение экрана целевого устройства.
Компрессируйте PNG файлы
Довольно часто получаемые в результате работы графических редакторов PNG файлы плохо скомпрессированы и их размер может быть дополнительно уменьшен с помощью специальных утилит:OptiPNGилиPNGCrush. Обе эти программы пересжимают PNG файл, сохраняя качество картинки. Программы перебирают параметры PNG фильтров и настроек алгоритма сжатия и создают на выходе файл с оптимальными параметрами.
Используйте 9patch PNG для масштабируемых изображений
9patch PNG- специальный формат, который может быть использован для создания растягиваемых подложек. Наиболее часто этот формат используется для создания кнопок и других элементов пользовательского интерфейса. В рамках 9patch картинка разбивается на 9 сегментов - четыре угла, четыре грани и центральная часть. На основе такой картинки можно создавать подложки произвольного размера, при этом угловые сегменты никак не масштабируются; ребра и центральный сегмент растягиваются (многократно повторяются), заполняя промежутки между углами. Ниже показана 9patch картинка и две сгенерированные на ее основе кнопки. Применение этого формата позволяет существенно уменьшить размер графики, необходимой для создания интерфейса.
Удаляйте неиспользуемые ресурсы
Как правило, папка res содержит несколько неиспользуемых ресурсов. Для их удаления можно использовать специальную утилитуandroid-unused-resources, которая сканирует Ваш исходный код и удаляет из проекта неиспользуемые ресурсы.
Избегайте дублирования
Убедитесь, что в вашем приложении не дублируется функциональность и активы (строки, рисунки и т.п.). Важно понимать, какие Android API вы используете, и знать их функциональность. Может получиться, что в вашей программе для решения задачи, которую можно решить средствами уже подключенных API, подключается новый API. Дублирование кода, например, включение в программу функций делающих одно и то же, также ведет к разбуханию APK файлов.
С выходом Android Go (лёгкой версии Android для слабых устройств) в 2017 году Google представила облегчённые версии своих сервисов. Затем подтянулись и остальные компании, такие как Facebook или Spotify, выпустив Lite-версии своих приложений. При этом почти все из них можно установить и на обычный смартфон, сэкономив немало места на его накопителе. Но зачастую такие приложения имеют урезанный функционал и упрощённый интерфейс, так как предназначены для слабых смартфонов, из-за чего может показаться, что пользоваться ими будет не так комфортно, как стандартными версиями. Так ли это на самом деле? Давайте разбираться.
Содержание
Облегчённые версии сервисов Google
Google, как и следовало ожидать, выпустила облегчённые аналоги почти для всех своих сервисов. Многими из них будет комфортно пользоваться на повседневной основе, но, увы, всё же не всеми.
- Вес Go-версии приложения: 32 МБ против 185 МБ.
- Потребление оперативной памяти: 52 МБ против 290 МБ.
Лёгкая версия YouTube значительно отличается от её полноценной вариации. Так, YouTube Go предлагает пользователю всего лишь две вкладки: «Главная» и «Скачанные». Также из верхней части первой можно попасть в раздел «Подписки», где, соответственно, отображается лента видео тех авторов, на которых вы подписаны. Неудобство заключается в том, что в этой версии приложения недоступна смена аккаунта. Я, например, пользуюсь YouTube с другого аккаунта, который привязан к основному. Помимо этого, в YouTube Go отсутствует тёмная тема, а на странице воспроизведения видео недоступны жесты для экранов 18:9, комментарии, воспроизведение в фоне и плавающем окне, а также настройка качества воспроизведения.
- Вес Go-версии приложения: 53 МБ против 97 МБ.
- Потребление оперативной памяти: 115 МБ против 136 МБ.
В приложении почты от Google ситуация уже другая — Gmail Go почти ничем не отличается от «старшего брата». Своим интерфейсом Go-версия напоминает более старые версии Gmail, а вот по функционалу они практически идентичны, за исключением отсутствия в составе Gmail Go сервиса Google Meet. Не могу не отметить тот факт, что в облегчённой версии почты анимация работает рывками, хотя в старшей версии такой проблемы нет.
- Вес Go-версии приложения: 7 МБ против 115 МБ.
- Потребление оперативной памяти: 14 МБ против 232 МБ.
Maps Go — это PWA-версия обычных карт от Google, которая всё ещё позволяет просматривать карту, прокладывать маршруты, отслеживать своё местоположение и так далее. Однако, совершать все эти действия будет менее комфортно, чем в обычной версии, так как приложение работает не очень стабильно и обладает рядом ограничений. Например, вы не можете скачать карту вашего города на смартфон для использования приложения без сети, либо отслеживать поездку с расчётом времени прибытия в реальном времени. К тому же, Maps Go требует установленного WebView или Google Chrome, так как работает на их основе.
- Вес Go-версии приложения: 26 МБ против 338 МБ.
- Потребление оперативной памяти: 97 МБ против 98 МБ.
Данная версия стандартного приложения Google значительно отличается от основной. Вместо привычной ленты новостей на главной странице вас встретит множество кнопок, которые отвечают за те или иные функции либо же являются неким подобием ярлыков из Google Chrome. Некоторые из них запускают приложение, если оно установлено на вашем смартфоне. Функционал примерно схож с основной версией, пользователю всё также доступна лента, погода, голосовой поиск и Google Lens.
- Вес Go-версии приложения: 21 МБ против 108 МБ.
- Потребление оперативной памяти: 103 МБ против 287 МБ.
Приложение представляет из себя самую стандартную галерею с минимальным набором функций. По большому счёту, оно позволяет только провести простейшее редактирование фото и видео, а также сортирует фотографии в автоматическом режиме по категориям. Увы, функции синхронизации в Gallery Go нет, посему приложение не может являться полноценной заменой Google Фото.
- Вес Go-версии приложения: 38 МБ против 118 МБ.
К сожалению, стандартная версия Camera Go очень сильно урезана по функционалу и не может похвастаться теми возможностями, которые предоставляет Google Camera, хотя и копирует её интерфейс. В приложении даже нельзя настроить разрешение фото, видео, а также остальные немаловажные параметры. Однако, на просторах интернета существуют модификации с поддержкой HDR+ и ночной съёмки. В конце 2020 года Google заявила, что Go-версия получила поддержку этих двух режимов, но, судя по всему, официально они доступны только конкретным смартфонам на базе Android Go. Из стандартного функционала Camera Go может похвастаться режимами «Портрет» и «Перевод».
Облегчённые версии приложений Facebook
Facebook также решили не отставать и выпустили аналоги своих основных сервисов. В отличие от некоторых приложений Google, Lite-версии сервисов Facebook в полной мере подходят для использования на повседневной основе.
- Вес Lite-версии приложения: 2,5 МБ против 160 МБ.
- Потребление оперативной памяти: 140 МБ против 65 МБ.
В отличие от Google, Facebook решил предоставить пользователю тот же опыт, что и в полноценных версиях своих приложений. Facebook Lite обладает всем функционалом, который есть в его обычной версии, при этом интерфейс приложения в некоторых местах упрощён, а анимации почти отсутствуют. Также, на отображение таких разделов, как «Уведомления» или «Группы», требуется некоторое время, в то время как в обычной версии переключение осуществляется мгновенно.
- Вес Lite-версии приложения: 3 МБ против 152 МБ.
- Потребление оперативной памяти: 184 МБ против 418 МБ.
Ситуация здесь аналогична Facebook Lite. Большинство функций на месте, при этом на загрузку разделов требуется время, а интерфейс упрощён. К тому же, во время загрузки фото или видео недоступны привычные инструменты редактирования, на данный момент из них доступны только фильтры. Редактирование историй также ограничено, хотя самые основные инструменты наподобие рисования и добавления текста остались.
Облегчённые версии остальных приложений
Помимо Facebook и Google наличием аналогов своих сервисов могут похвастаться и другие компании. Так, Lite-версии получили приложения Twitter, Spotify и TikTok.
- Вес Lite-версии приложения: 3,7 МБ против 93,5 МБ.
- Потребление оперативной памяти: 294 МБ против 218 МБ.
Twitter Lite обладает упрощённым интерфейсом и анимациями, но, в отличие от приложений Facebook, здесь нет загрузок во время переключения разделов. Большая часть функций также присутствует, однако, Lite-версия почему-то не переведена и предлагает пользователю взаимодействовать с приложением на английском языке.
- Вес Lite-версии приложения: 19 МБ против 93 МБ.
- Потребление оперативной памяти: 45 МБ против 236 МБ.
Lite-версия Spotify отличается от обычной слегка изменённым интерфейсом, отсутствием некоторых функций и мелочей, а также упрощёнными анимациями. В частности, если нажать на исполнителя во вкладке «Исполнители», вам отобразится список наиболее популярных песен, в то время как в обычной версии приложения будет отображён список из лайкнутых песен и альбомов. Помимо этого в Spotify Lite упрощены настройки, нельзя посмотреть свой профиль. Однако, есть и новый функционал: пользователь может установить месячное ограничение трафика для приложения.
- Вес Lite-версии приложения: 69 МБ против 292 МБ.
- Потребление оперативной памяти: 268 МБ против 369 МБ.
По аналогии с Gmail, TikTok Lite практически ничем не отличается от обычного TikTok. Интерфейс практически полностью идентичен в обеих версиях, а из функционала пострадало разве что редактирование видео. Отлично подойдёт тем, кто не занимается съёмкой контента и просто листает ленту.
Выводы: много достойных вариантов
На данный момент существует немало «лёгких» версий приложений, которые вполне способны предоставить пользователю большинство нужной функциональности. В это число входят:
- Gmail Go.
- Google Go.
- Facebook Lite.
- Instagram Lite.
- Twitter Lite.
- Spotify Lite.
- TikTok Lite.
Остальные приложения так или иначе уступают своим старшим версиям и не могут заменить их в полной мере. Однако, радует, что для обладателей слабых смартфонов есть хотя бы какая-то альтернатива, причём количество подобных версий приложений только растёт.
Читайте также: