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

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. Команда провела аудит рабочего состояния нашего приложения быстро и профессионально. Рекомендуем их как надежного и компетентного партнера.
Оставить заявку
Оставьте заявку, мы с вами свяжемся и обсудим решение вашей задачи