Никто не любит сырой продукт и, при возникновении любых проблем с мобильным приложением, гневно вспоминает криворуких разработчиков. Заказчику и пользователям не важно, сколько сил было потрачено на реализацию хитрого алгоритма кэширования приложения в фоновом режиме. В большинстве случаев, они по-настоящему оценят только визуальную часть и работу с интерфейсом.
Для своих сотрудников мы создали чек-лист распространенных ошибок в юзабилити мобильного приложения. Этот список стал удобным инструментом для тест-драйва очередного продукта перед сдачей. Мои коллеги-разработчики проверяют по нему самих себя, а тестировщики - принимают работу программистов.
Итак, приступим.
Работа с экранами
-
Все навигационные элементы на дисплее обязаны иметь достаточный размер и быть расположенными на оптимальном расстоянии друг от друга (таком, чтобы пользователь однозначно попадал по нужным);
-
Приложение не должно падать при быстром многократном нажатии одной и нескольких кнопок одновременно;
-
Никаких пустых экранов. Важно, чтобы пользователь, на каждом этапе работы с приложением, понимал, что ему делать дальше, и что происходит прямо сейчас.
Ресурсы памяти
-
Утечка памяти может возникать во время продолжительной работы внутри приложения, и на окнах со значительным количеством изображений. Часто проявляется, если кэширование картинок работает некорректно;
-
Ошибки приложения могут появляться в ответ на недостаток памяти для функционирования ОС смартфона - тестируйте как во время работы в фоновом, так и в активном режиме;
-
Системные ошибки при переносе или установке приложения на SD-карту - очевидная, но распространенная проблема;
Технические особенности дисплеев и ОС мобильных устройств
-
На ретина-дисплеях текст и другие элементы интерфейса показываются мельче, чем на обычных. Соответственно, если изображения для ретина-экрана попадут в неретина версию - они могут отобразится просто огромными;
-
Должна быть предусмотрена адаптация приложения к ландшафтному и портретному режиму смартфона;
-
Проверка версии ОС при установке обязана исключить возможность установки приложения на не поддерживаемое мобильное устройство;
-
Важно, чтобы визуальные компоненты приложения соответствовали своему назначению по смыслу и концепциям платформы (решения,оптимальные для одной платформы, запросто могут стать неуместными в другой);
Реакция на внешние раздражители
-
Оповещения других приложений, звонки, SMS, MMS;
-
Зарядка устройства.
-
Разрядка, выключение или изъятие аккумулятора устройства;
-
Время и условия перехода устройства в режим ожидания, включая защиту паролем;
-
Отключение и включение сотовой сети, режима в самолете, Bluetooth, GPS.
-
Подключение и отключение USB-кабеля, SD-карты и других внешних устройств;
-
Утеря связи с прокси или сервером;
Локализация
-
Проверка правильности и корректности перевода;
-
Уточнение соответствия всех надписей формам и кнопкам, к которым они относятся;
-
Проверка специфических особенностей интернационализации, разделителей в числах, форматов дат. Например, мы привыкли к дате в формате ДД.ММ.РР, в то время, как для американцев общепринятая ММ.ДД.РР.
Обратная связь
-
Кнопки и ссылки должны иметь выраженный отклик на действие - “нажатое состояние”, которое позволит пользователю убедиться, что нажатие случилось;
-
Скорость отклика элементов интерфейса должна быть достаточно большая, даже на самых слабых устройствах из всех, которые поддерживает ваше приложение;
-
Индикатор загрузки контента или соответствующее сообщение о требуемом времени должно показываться в каждый момент ожидания;
-
Оповещения с ошибкой доступа к сотовой сети, Bluetooth, GPS должны отображаться корректно;
-
Сообщения-предостережения должны быть очевидны для пользователя, если он пытается удалить важную информацию;
-
Уведомления об окончании игры или процесса должны отображаться всегда и корректно;
-
Важна синхронность уведомлений (звуков и вибраций приложения) с другими событиями, которые отображаются на экране.
Обновления
-
Должна поддерживаться та же версия операционной системы, что и у предыдущей версии приложения - если обновленная версия приложения использует новый функционал операционной системы, то нужно сделать урезанную версию приложения для предыдущих поддерживаемых версий ОС.
-
Все данные пользователя внутри приложения обязаны сохраняться после установки обновленной версии.
Приведем простой пример из практики компании Mauris - Lifestyle приложение TRENDMEON. В изначальной версии приложения, при первом запуске приложения скачивалась сразу вся база скидок, и потом отображалась локально.
Но вскоре обнаружилась проблема - если у пользователя был медленный интернет, база скидок подгружалась медленно. Пользователи воспринимали это как глюк. Они считали, что приложение зависло и выходили из него. После первых нескольких негативных отзывов мы изменили алгоритм отображения скидок (теперь подгружается не вся база сразу), чем уменьшили время ожидания при первом заходе до 1 секунды. Дополнительно мы уведомляем пользователя о возможных задержках при первом заходе в приложение.
Таким образом, загрузка обновленной базы происходит незаметно для самого пользователя. Ниже вы можете увидеть скриншоты “до” и “после”.
Примеров мелочей, которые оказывались ключевыми, было немало в нашей практике. Мы будем рады, если наш обобщенный список основных из них поможет и другим компаниям в разработке их собственных мобильных приложений. Приглашаем обменяться опытом в комментариях.