3 заметки с тегом

продуктовый дизайн

Улучшаем пользовательский опыт. Новый облик программного сканера штрих-кодов

Ситуация

Компания разрабатывает решения для управления мобильной торговлей: мобильное приложение для торговых агентов и товароведов (мерчендайзеров), а также модули подключения к учётным системам на платформе «1С: Предприятие».

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

Окно сканера штрих-кодов в момент чтения линейного кода EAN-13

Проблема

Пользоваться существующим решением неудобно:

  • низкая скорость запуска,
  • медленное чтение кодов,
  • одиночный режим чтения кодов: нет возможности сканировать несколько кодов подряд,
  • нельзя использовать вспышку мобильного устройства для подсветки объекта,
  • нет поддержки инвертированного кода DataMatrix, который используется системой маркировки «Честный знак».

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

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

Решение

Используемая библиотека сканирования не поддерживает инвертированный код DataMatrix, поэтому мы приняли решение её сменить. Это сразу решило часть проблем: сканер стал запускаться быстрее, полная поддержка кодов DataMatrix, высокая скорость чтения.

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

Пакетное сканирование — это возможность сканировать множество кодов без закрытия сканера. Позволяет нам экономить около трёх секунд на чтении каждого кода.

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

Реализация

Запишем требования к интерфейсу:

  • портретный режим,
  • кнопка «включить» / «выключить» фонарик,
  • пакетный режим сканирования кодов.

Мы решили запускать сканер сразу в пакетном режиме и не делать дополнительного переключателя режимов.

Всего получается три экрана:

  1. Сканирование кода.
  2. Сообщение об успешном сканировании и информация о добавленном в документ товаре.
  3. Сообщение об ошибке.

Сканирование кода

После запуска сканер сразу переходит в режим сканирования кодов.

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

Этот подход имел два недостатка:

  1. Возможна ситуация, когда два различных кода размещены рядом, например, блоки сигарет с маркировкой «Честный знак». В этом случае невозможно гарантировать чтение нужного кода.
  2. Автоматический выбор типа кода снижал скорость сканирования.

Ещё мы выяснили, что код в системе «Честный знак» содержит в себе и код EAN-13 (GS1-128), то есть для работы с маркированной продукцией достаточно чтения кодов DataMatrix. А там, где используется только код EAN-13 или GS1-128 кода маркировки нет. Поэтому мы решили сделать переключение режимов сканирования: 1D (EAN, GS1 и т.п) и 2D (QR-Code, DataMatrix и т. п.).

Во втором варианте в верхнюю часть экрана мы добавили переключатель режимов. Также режимы можно было переключать смахиванием (swipe).

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

Эволюция экрана сканирования кода

Успешное чтение кода

В первоначальном варианте сообщение выводится в нижней части экрана, размещено на полупрозрачной плашке и имеет кнопку «Отменить». Была задумка дать пользователю возможность отменить добавление последней позиции. Но при анализе путей реализации выяснили, что используемый в приложении инструментарий не даёт такой возможности, а внедрять его в приложение, с устоявшейся за 15 лет архитектурой дорого по времени.

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

Все эти нюансы мы учли во второй версии экрана: сообщение об успешном добавлении позиции стало всплывающим и переехало в верхнюю часть экрана. Кнопки «отмена» больше нет. Оно просто выводит информацию о добавленном товаре и не блокирует работу со сканером.

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

Код считан успешно, позиция добавлена в каталог

Сообщение об ошибке

Ошибки это важно. При ошибке мы блокируем работу со сканером и ждём от пользователя подтверждения о том, что он прочитал.

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

При чтении кода или добавлении позиции в каталог произошла ошибка
Дизайн-макет

Результат

Приложение

Заключение

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

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

Перейти на страницу продукта на сайте компании

Команда

Идея, концепт и прототип в Figma — Саша Дегтярев

Программисты:

  • Саша Лещёв
  • Максим Сёмин
  • Дима Макеев

Советы и тестирование — Серёжа Кузьменко

Продакт — Искандер Мильгизин

 17   11 мес   figma   ux   дизайн   мобильные приложения   продуктовый дизайн

Улучшаю настройки расписания с сохранением стиля приложения

В одном мобильном приложении есть настройки рабочего времени агента — это нагромождение текстовых надписей, полей ввода и переключателей.

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

Расписание до и после изменения

Было

Было. Много текста, дни недели занимают много места

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

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

Стало

Стало. Дни недели в строчку, время выбираем после них

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

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

Заключение

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

Дизайнер: Александр Дегтярев
Инструменты: Figma, GIMP

 26   2020   figma   gimp   ux   было → стало   дизайн   мобильные приложения   продуктовый дизайн

Делаем онбординг дружелюбным или каким должен быть экран приветствия

Экран приветствия, onboarding — это наш шанс заинтересовать пользователя, поэтому он должен быть:

  • понятным — пользователь не должен продираться через дебри чужого восприятия, все должно быть в его мире;
  • дружелюбным — проявлять заботу о пользователе и давать точные ответы на возникающие вопросы.
Итоговый результат. В свою версию я добавил слайдер, на котором демонстрируется интерфейс приложения. Сразу стало понятно, что пользователь может делать в приложении и зачем оно ему.

Как было

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

Проблем на экране много:

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

Как могло быть

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

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

Если пользователь имеет аккаунт в социальной сети, то он точно знает ее логотип — делаем кнопки круглыми и смещаем вниз. Сверху простая и лаконичная кнопка «Войти с помощью e-mail».

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

Простой вариант — сделать экран приветствия дружелюбным: подписать иконки, привести в порядок кнопки и ссылки.

Как стало

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

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

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

Второй вариант. Здесь еще до регистрации мы показываем пользователю с чем он будет иметь дело. Объясняем чем ему это будет полезно.

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

Заключение

С помощью простых приемов за 20 минут мы сделали онбординг приветливым и дружелюбным. Для этого потребовалось добавить немного пользы и убрать лишнее.

UX-редактура: Александр Дегтярев
Инструмент: Figma

Загрузить полные версии:

 37   2020   figma   ux   было → стало   дизайн   мобильные приложения   продуктовый дизайн   текст