[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "disable": true, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "create", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-158433683", "adfox_url": "//ads.adfox.ru/228129/getCode?p1=bxbwd&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid21=&puid22=&puid31=&fmt=1&pr=" } } ]
{ "author_name": "Daria Khokhlova", "author_type": "self", "tags": ["\u043a\u0435\u0439\u0441\u044b"], "comments": 9, "likes": 20, "favorites": 30, "is_advertisement": false, "section_name": "default" }
Daria Khokhlova
2 078

Обработка ошибок, контент, аналитика: что проверить перед запуском мобильного приложения

Список от руководителя проектов компании-разработчика MobileUp Олега Широкова.

Поделиться

В избранное

В избранном

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

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

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

Обработка ошибок и особых случаев

Нужно проверить, как приложение ведёт себя в проблемных ситуациях. Детально это изучают тестировщики, поэтому здесь речь идет о быстром smoke-тесте самых популярных кейсов.

1. Проблемы с геолокацией

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

Первая ситуация: пользователь запретил приложению доступ к геолокации

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

Как проверить: в настройках запретить приложению доступ к геоданным и запустить приложение.

iOS-приложение Maps.me показывает детальную инструкцию по включению геолокации. iOS-приложение «Яндекс.Карты» вообще ничего вам не сообщит, пока вы не нажмете кнопку определения местоположения.

Вторая ситуация: приложению не удаётся быстро определить координаты пользователя. Например, если он находится в помещении или выключил Wi-Fi и мобильный интернет.

Как должно быть: показать последнее определённое местоположение пользователя, а если его нет — показать какую-то точку по умолчанию или заглушку, но не карту в море.

Как проверять: включить авиарежим и запустить приложение.

Приложения Google Maps, «Яндекс.Карты», Maps.me (iOS-версии) показывают последнее определенное местоположение. Android-приложение Waze показывает пользователю карту в море.

2.Проблемы с интернетом

Первая ситуация: пользователь совершает действие, для которого нужен доступ к интернету. Например, нажимает на кнопку «Загрузить». А интернета в этот момент нет.

Как должно быть: пользователь остаётся на том же экране и видит сообщение об отсутствии интернета на понятном человеческом языке.

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

При попытке найти ближайшие велостанции iOS-приложение «Велогород» подсказывает, что доступа к интернету нет. В iOS-версии TaxFree4U при тапе на кнопку «Восстановить» ничего не происходит.

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

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

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

iOS-приложение Telegram оставляет уже загруженные сообщения всегда доступными. В iOS-приложении Avito переписка загружается каждый раз по новой, даже если мы были на этом экране два нажатия назад.

Третья ситуация: интернет есть, но нестабильный — и он пропал в процессе загрузки экрана.

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

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

iOS-приложение «ВКонтакте» при разрыве связи с интернетом оставляет ленту в том состоянии, в котором успело её загрузить. iOS-версия HeadHunter при разрыве соединения вместо уже найденных и показанных на экране вакансий раньше показывала заглушку. Достаточно было немного поскроллить экран с результатами поиска.

Четвёртая ситуация: при открытии экрана не было интернета, он появился уже после.

Обработка такой ситуации нужна не в каждом приложении и не на каждом экране. Но она очень актуальна для чатов, соцсетей и приложений, работающих с картой.

Как должно быть: приложение периодически проверяет, не появился ли интернет снова. Если появился — загружает нужные данные автоматически без дополнительных действий со стороны пользователя.

Как проверить: запустить приложение, включить авиарежим, выключить авиарежим.

iOS-приложение Uber при появлении интернета автоматически возобновляет загрузку данных. iOS-версия «Яндекс.Такси» ждёт, пока пользователь сдвинет карту.

3. Проблемы с сервером

Сервер может возвращать различные виды ошибок. При этом пользователь не должен видеть непонятные сообщения вроде «401 Token is invalid» или неопределенное «Internal server error». Нужно объяснить ему, что делать: попробовать совершить действие ещё раз через некоторое время или обратиться в службу технической поддержки.

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

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

Android-приложение Gusli в случае проблем с сервером показывает понятное сообщение об ошибке. Android-приложение Facebook после обновления одной из версий не давало авторизоваться в системе. При этом появлялось непонятное для простого пользователя сообщение.

Проработка контента

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

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

Названия кнопок

В продуманных приложениях названия кнопок соответствуют тому, что произойдёт при их нажатии, и побуждают к действию. Например: «Выбрать» и «Подтвердить» вместо «ОК», «Отказаться» вместо «Отмена», «Найти мастера» вместо «Поиск мастеров».

В iOS-приложении DMV Genie заказчик уделил много времени всем текстам и названиям кнопок, чтобы всё было максимально понятно для пользователя. В iOS-приложении Profi.ru кнопка «Заказать» в «Избранном» не подходит по смыслу. При нажатии на неё открывается форма для отправки сообщения специалистам. Заказ при этом не оформляется. Здесь больше подойдёт кнопка «Оставить заявку».

Сообщения и диалоги

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

iOS-приложение «Эриус» просто объясняет, что нужно сделать пользователю. А инструкция по оплате в iOS-приложении «Метро Москвы» написана сложным канцелярским языком, в котором тяжело разобраться.

Подтверждения для важных действий

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

iOS-приложение «ВКонтакте» при выходе из учётной записи запрашивает подтверждение. iOS-приложение PlayStation разлогинивает сразу.

Заглушки

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

В продуманном приложении помимо текста будет кнопка. Например, «Создать первый заказ».

iOS-версия WhatsApp вместо пустого экрана показывает полноценную инструкцию, как добавить сообщение в избранные. Раздел «Избранное» в iOS-приложении Visit Petersburg показывает пустой экран.

Связь с техподдержкой

В продуманных приложениях на видном месте (например, в боковом меню или в профиле) есть контакты технической поддержки. Это позволяет уменьшить количество гневных отзывов в App Store и Google Play.

В iOS-версии Aladdin телефон и email техподдержки расположены на видном месте. А в iOS-приложении iTunesConnect есть только ссылка на веб-страницу с FAQ, при переходе на которую возникает ошибка: «Page not found».

Аналитика

Перед релизом в приложения обычно интегрируют один или несколько сервисов по сбору аналитики: Google Analytics, Mixpanel, Fabric.io, Flurry, Appsee. Собранные данные можно удобно просматривать в веб-интерфейсе.

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

Крэшлог

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

Статистика самых распространенных крэшей в Crashlytics для приложения DMV Genie

Базовые показатели аналитики

Часть этой информации можно посмотреть в iTunesConnect или Google Developer Console и без интеграции отдельного сервиса. Полный набор: количество установок, количество активных пользователей, среднее время, проводимое в приложении и прочее, — доступен только в специализированных сервисах аналитики.

Эта информация даст понять, востребовано ли ваше приложение и помог ли бюджет на продвижение.

Главный экран в Google Analytics

Просмотры экранов

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

Раздел статистики просмотров экранов в Google Analytics

Ключевые бизнес-показатели

Если в приложении пользователи что-то заказывают или покупают, смотреть количество этих действий и считать конверсию удобно в аналитике. Для этого нужно настроить специальные «кастомные события». В приложении «Туту ЖД» список таких событий занимает четыре полных листа А4.

Если у вас не такой масштабный проект, то вам будет достаточно одного-трёх событий. Например, «Заказ оплачен» или «Лайк новости».

Раздел статистики по событиям в Google Analytics для приложения Aerostat iOS

Технические моменты

На ранних этапах разработчик обычно настраивает взаимодействие с внешними сервисами через тестовые аккаунты. Например:

  • отправку тестовых сборок (HockeyApp, TestFlight и так далее);
  • крэшлог и сбор аналитики (Crashlytics, Google Analytics, Firebase и так далее);
  • карты (Google Maps, «Яндекс.Карты», OSM и так далее);
  • push-уведомления (Firebase и другие).

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

#Кейсы

Популярные материалы
Показать еще
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

Прямой эфир

Голосовой помощник выкупил
компанию-создателя
Подписаться на push-уведомления