Александр Сырков
неравнодушный пользователь

Скорость работы мобильных приложений

Продолжаем улучшать отзывчивость мобильного приложения 2ГИС. В этом выпуске расскажу о трёх ключевых изменениях, которые мы сделали в последних нескольких релизах.
В прошлых выпусках Доставили мы уже рассказывали, как улучшаем скорость запуска Android-версии, следим за метриками и обратной связью от пользователей. С учётом того количества фич, которые появляются в 2ГИС с каждой новой версией, эту работу мы не останавливаем. Вот несколько новых направлений, которые нам удалось подтянуть (и результат оказался очень заметным!).
Ускорение карты
С августа нам удалось ускорить отрисовку карты примерно на 15−20%. Для медленных устройств, особенно на Android, это позволило ускорить запуск примерно на 1 секунду.
Потребление памяти и фантомные замедления
Также изучили когорту устройств, которые сталкиваются с более медленным запуском, чем обычно.

И нашли сразу две проблемы:
  1. У некоторых пользователей, в основном с айфонами и несколькими базами городов в памяти, один из 10−15 запусков мог быть кратно медленнее, чем обычная скорость запуска.
  2. У этих же пользователей, но уже на обеих мобильных платформах, локальный кэш вместо ожидаемых 100−200 мегабайт вырастал до нескольких гигабайт.
В версии 6.44 мы исправили обе проблемы. Теперь приложение должно запускаться стабильно и не занимать чрезмерный объём памяти на устройствах — обязательно обновляйтесь!
Отзывчивый выход из Android-приложения
Также сделали небольшое, но важное изменение в том, как мы обрабатываем жест или системную кнопку «Назад» на Android.

Раньше при нажатии этой кнопки мы завершали работу приложения. Это приводило к следующим проблемам:
  1. Для корректного завершения работы приложения могло потребоваться некоторое время — вплоть до нескольких секунд в зависимости от устройства. Это приводило к тому, что после нажатия «Назад» приложение подвисало.
  2. Так как приложение не сворачивается, а «убивается», то при следующем запуске всё приложение приходилось инициализировать заново. Это замедляло запуск 2ГИС в целом и повышало потребление заряда, так как запуск с нуля — это довольно затратная по ресурсам операция.
Начиная с версии 6.44 мы изменили поведение кнопки «Назад» по умолчанию — теперь она мгновенно сворачивает приложение.

На видео ниже — сравнение поведения кнопки «Назад». Справа — версия 6.44, в которой проблема решена. Слева — то, как приложение вело себя в предыдущей версии.
В современных версиях Android система сама решает, нужно ли заморозить или выгрузить приложение в фоне — это снижает энергопотребление и ускоряет повторные запуски приложения.
Нажимая кнопку «Комментировать», вы принимаете условия Лицензионного соглашения и даёте ООО «ДубльГИС» согласие на обработку персональных данных на условиях и в целях, определённых «Политикой конфиденциальности».