Про скорость работы мобильного приложения

Дисклеймер

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

Мы также исходим из того, что приложение разработано грамотно: с понятной архитектурой и стеком, кэшированием, асинхронной загрузкой, без костылей и тормозных сторонних компонентов (колхозных SDK или библиотек).

Так вот

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

В реальном мире мы не знаем:
— мощности железа в смартфоне пользователя;
— количества запущенных на нем приложений;
— качества интернет-соединения.

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

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

Для оптимизации непосредственно приложения — остатается смотреть на время с момента получения данных от сервера (загрузили и распарсили) до отправки на отображение, рендеринг.

Чем «тоньше» мобильный клиент, чем меньше логики и вычислений ему делигируется, тем лучше для его быстродействия. Поэтому решаюшую роль в скорости работы приложения играет поставщик данных, то есть API.

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

Также стараемся использовать 1 источник данных (один эндпоинт), чтобы исключать проблемы с API или упростостить их диагностику. Если, грубо говоря, вы открываете в приложении экран со списком товаров и приложение идет за товарами в эндпоинт X, который вернул данные за 150 мс, а за рейтингом этих же товаров приложение пошло в эндпоинт Y, который вернул данные за 100500 мс, то все это время приложение будет ждать данных о рейтинге, так как мы не можем показать список, пока у нас не будет всех обязательных данных.

И вот если с этим у вас все Ok, тогда можно перечитать дисклеймер и поискать проблему там.

Поделиться
Отправить
Запинить
Популярное