Motivity

Провели аудит производительности мобильного приложения для Motivity

  • #Аудит
  • #Ionic
Изображение

Motivity — единая HR-платформа для адаптации, обучения, коммуникации, мотивации и развития сотрудников. Важная часть этой платформы — мобильное приложение

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

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

Задачи

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

Медленный запуск приложения

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

Выявленные технические проблемы:

  • Приложение использовало SecureLS для хранения данных и все данные шифровались и расшифровывались при каждом обращении, это происходило последовательно и тормозило запуск приложения.
  • При старте загружались сразу 15+ модулей и выполнялось множество последовательных операций, каждая из которых ждала завершения предыдущей. Это блокировало отображение интерфейса приложения.

Вектор решения проблем:

  • Разделить все загружаемые данные на критические и некритические, сначала загружать только самые важные. По мере захода в разделы приложения пользователем — подгружать все остальные разделы.
  • Использовать localForage с асинхронной загрузкой данных, чтобы данные загружались фоново и не мешали загрузке других разделов приложения.

Долгая загрузка контента

Пользователи сталкивались с задержками при отображении картинок и текста. В основном это было обусловлено ограничениями производительности в Capacitor и системном WebView Android, а также проблемами с обработкой анимаций в Ionic (их в приложении было слишком много).

Для решения этих проблем было необходимо сократить количество анимаций в интерфейсе и изменить конфигурацию параметров Android-версии приложения для увеличения доступной памяти.

Переполнение localStorage

Был высокий риск переполнения из-за хранения больших объемов данных в localStorage, тогда как максимальный объем — около 5 МБ. Также дополнительное место занимало кодирование данных в формат base64.

Основным «узким местом» оказалась библиотека SecureLS из-за синхронности и затрат на base64-сериализацию.

Вектор решения проблем:

  • Перейти на хранение данных в localForage. Эта система использует другие механизмы хранения.
  • Минимизировать применение base64-кодирования и использовать его только для действительно необходимых данных.

Результат

Команда Spectr провела аудит производительности приложения, выявила ключевые узкие места, провела замеры прироста производительности при внедрении возможных улучшений и предложила наиболее оптимальные решения.

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

В результате мы получили не только детальный анализ текущего состояния, но и несколько ценных гипотез для улучшения работы приложения. Вместе с гипотезами компания сделала предварительные замеры и показала на цифрах возможный прирост производительности, что помогло нам лучше понять потенциальные выгоды от внедрения предложенных изменений. Также с разработчиками этой компании мы провели несколько встреч, где детально разобрали проделанную работу и обсудили дальнейшие шаги по оптимизации. Мы очень довольны работой с компанией Spectr. Команда провела аудит рабочего состояния нашего приложения быстро и профессионально. Рекомендуем их как надежного и компетентного партнера.

Борис КозубТехнический директор Motivity

Оставить заявку

Оставьте заявку, мы с вами свяжемся и обсудим решение вашей задачи

Оставляя заявку, Вы соглашаетесь с политикой обработки персональных данных