Разработка iPhone/iPod touch приложений: Mobile Human Interface Guidelines aka HIG (Избранное)

Появилось немного свободного времени, и, наконец-то до меня добралась книга с названием iPhone Human Interface Guidelines.

Как известно, Apple довольно часто имеет склонность к отказам принятия приложений в AppStore. Мотивации бывают разные – дублирование функционала (Apple не любит программы, которые дублируют функционал программ, установленных по умолчанию), “запрещенный содержимое”, не соответсвие iPhone Human Interface Guidelines, сокращенно HIG. О последнем и пойдет речь. Чтобы уменьшить количество отказов от Apple (хотя бы в пределах нашей компании), я буду отмечать особенности из HIG, которые посчитаю “не вполне очевидными”, но на которых Apple заостряет внимание. То есть, в конце концов пост должен превратиться в краткую выдержку из HIG. Он будет дополняться по мере чтения книги, и по мере осознания дзен Apple. Все, кому лень читать книгу из 300 с лишним страниц – можете отслеживать прогресс ;)
Но, как бы там ни было, прийдется начинать с вещей более-менее очевидных, но о которых все же, иногда забывают. Иногда я буду отмечать вещи, требующие особого внимания и не совсем очевидные.

iPhone

Как это не удивительно, но iPhone – это все-таки мобильное устройство, с относительно небольшим (480х320) экраном, и не каждое десктопное приложение может быть успешно портировано на него в том виде, в каком оно выглядит на PC или Mac.

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

HIG

HIG нужен для того, чтобы разработчики не забывали о том, что iPhone  все-таки для пользователей. И им должно быть удобно. Apple заинтересован в том, чтобы приложения под iPhone были понятными и доступными. Эта “сюжетная линия” плавно проходит через весь HIG.

Приложение

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

Alert

Если влючить здравый смысл, то можно понять, что чем больше Alert’ов используется, тем чаще пользователь просто их не читает. Не стоит использовать AlertView для уведомления пользователя о чем-то ( с одной кнопоко ОК).

  • Правая кнопка в AlertView должна быть “по-умолчанию”, и представлять собой наименее разрушительное действие.
  • Прежде чем использовать AlertView с тремя и более кнопками – подумайте семь раз – может, стоит все-таки использовать ActionSheet ( настойчиво предлагается использовать ActionSheet, в случае более двух кнопок)
  • Ни в коем случае не используйте слово Error в AlertView. Это не критично и не смертельно, но иногда за такое возвращают приложение на доработку.
  • Не стоит использовать AlertView для сообщения пользователю о чем-то, на что пользователь не может повлиять.

(Будет обновляться)

Комментарии

Илья Кулаков

в 12:31, 20.08.2009

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

Павел Тайкало

в 15:19, 20.08.2009

Предположительно, вариант будет такой:

“Сервер временно недоступен. Попробовать снова?”
(Да/Нет)

Если программа может работать в Оффлайн режиме, то возможно, показать где-то в интерфейсе.

Сегодня/завтра более подробно просмотрю эту часть.

Илья Кулаков

в 18:47, 20.08.2009

Вот (Да/Нет) смущает. Обычно окно с такой ошибкой появляется в месте, где пользователь начал синхронизацию. Если же пользователь уже вышел из раздела, то окно еще больше может смутить его.

На данный момент у меня реализовано так — если пользователь сам начал синхронизацию и место откуда он это сделал еще на экране, то показывается Alert. Если пользователь уже находится в другом меню, то индикатор в navigation bar’e и самостоятельные попытки приложения произвести синхонизацию через n промежутки времени.

Павел Тайкало

в 19:09, 20.08.2009

Тоже правильно. Вообще нужно поставить себя на место юзверя.(Иногда это очень сложно сделать ;)
Две вещи такого плана, которые обычно раздражают – это
1) _Неожиданный_ выход из программы в Safari/GoogleMaps/Mail
2) Алерты чаще одного раза в минуту

Самое интересное, что Crash’ы меньше разражают ;)

Илья Кулаков

в 19:55, 20.08.2009

Еще интересно — когда вы рисуете свои Cell для таблицы, какие параметры отступа слева/сверху используете?

Павел Тайкало

в 22:26, 20.08.2009

Все зависит от дизайна Cell и прыгает от проекта к проекту.
Точных данных нету ;)

Илья Кулаков

в 21:13, 21.08.2009

А за слишком большие Cell apple не карает?

Павел Тайкало

в 11:02, 25.08.2009

Такого не находил ;) Не слышал о таком, чтобы за сильно большие Cell Apple “карал” ;) Другой вопрос, нужны ли они такие?

Оставить комментарий