Найти в Дзене
Ginger_Boy

Обработка ошибок в non-geek интерфейсе

Оглавление

Перевод статьи из блога "Злых Марсиан". Автор оригинала: Anton Lovchikov (Twitter)

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

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

Существует четыре основных способа сообщить об ошибке:

  • Блокирующее интерфейс сообщение;
  • Сообщение о блокировке раздела, оставляющее другие разделы разблокированными;
  • Неблокирующее сообщение;
  • Рядом с неисправным элементом отображается встроенное сообщение.

Блокирующее интерфейс сообщение

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

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

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

Использовать: "сеанс истек" в банковских приложениях. Дальнейшее взаимодействие недоступно или потенциально небезопасно.

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

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

Сообщение о блокировке раздела

Этот способ сообщения об ошибке более сложен в создании, но он, очевидно, является более тонким.

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

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

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

Использовать: "невозможно загрузить курсы валют". Данные не загружались, дальнейшее взаимодействие с виджетом бессмысленно.

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

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

Неблокирующее сообщение

Такими сообщениями являются snackbars (системные уведомления), всплывающие статусы и Toasts на Android. Этот тип уведомляет пользователя об ошибке, не блокируя какие-либо части интерфейса. Используйте его в тех случаях, когда дальнейшая работа с загруженными данными имеет смысл для пользователя и системы.

Использовать: "невозможно загрузить фрагмент карты". Пользователь может продолжать использовать загруженные детали, но должен быть уведомлен о невозможности обновления.

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

-3
Используйте неблокирующие сообщения для серьезных ошибок, которые не делают дальнейшую работу с приложением бесполезной.

Встроенные сообщения

Эти самые трудные в создании. Встроенные сообщения появляются рядом с неисправным объектом, т. е. с недопустимыми формами.

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

Использовать: "имя пользователя уже занято". Выберите имя пользователя, которое является бесплатным.

Использовать: "неверный адрес электронной почты".

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

-4
Используйте встроенные сообщения для локальных ошибок проверки формы.

Используйте этот постер себе в помощь

-5