Командам разработчиков мобильных устройств необходимо изучать, что происходит на устройствах пользователей, включая скорость запуска приложения, длительность HTTP-запросов, количество медленных и замороженных кадров, скорость загрузки страниц и многое другое, пишет на портале eWeek Филипп Хофманн, инженер-программист компании Sentry.

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

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

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

1. Пользователи и сеансы без сбоев

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

Отслеживание и сравнение этих показателей от релиза к релизу также может выявить тенденции и дать ценную информацию о состоянии кода.

2. Время холодного и теплого запуска приложения

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

Apple рекомендует, чтобы приложениям для iOS требовалось не более 400 мс для отрисовки первого кадра. Консоль Google Play предупреждает разработчиков Android, если время запуска приложения слишком велико. Это относится к случаям, когда холодный запуск (определяется как запуск приложения в первый раз или после перезагрузки или обновления) занимает более 5 с или теплый запуск (приложение запускалось хотя бы один раз и частично находится в памяти) занимает более 2 с.

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

3. Медленные и замороженные кадры

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

На телефоне или планшете обычно выполняется рендеринг со скоростью 60 кадр./с, хотя частота кадров может достигать 120. Кадр считается медленным, если при частоте 60 кадр./с приложению требуется более 16,67 мс для его рендеринга. Замороженные кадры — это кадры пользовательского интерфейса, которые занимают более 700 мс. Приложение, которое работает плавно, не должно испытывать ни того, ни другого.

4. Разочарованные пользователи

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

Решение проблем с производительностью мобильных устройств

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

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

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