понедельник, 2 августа 2010 г.

Проектирование UI

Сегодня хочу поговорить о проектировании пользовательского интерфейса (User Interface - UI). Так как из статистики блога за июль, которую я опубликовал еще вчера – видно, что меня посещают и программисты (что вполне логично) – я предлагаю вам поговорить о одном из самых главных аспектов в программировании.

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

Как я уже сказал – меня этому делу никто не учил. Так что надо как-то это дело изучать. Как я понимаю, проектирвоание пользовательского интерфейса – это создание картинки. Эту картинку можно создать и в Visual Studio. Расположить кнопки, списки и тд так, как это вам надо – и идти показывать заказчику.

Но лучше проектировать интерфейс не наобум – а обдуманно. Мне надо будет подумать о том, кто именно будет пользоваться моим приложением (правда – я это уже сделал и грубо выделил три роли). Вам тоже обязательно надо будет это сделать, так как вы найдете те функции, который нужно будет отобразить в интерфейсе. Кроме того, можно разбить приложение не по ролям, а по модулям. Один модуль отвечает только за ограниченное число функций. И эти функции надо будет пытаться обернуть в интерфейс.

 

На следующем шаге мне нужно будет выбрать какую-нибудь одну роль, для которой буду пробовать спроектировать интерфейс. Для начала (для тех, кто только начинает проектирвоать интерфейсы) лучше выбрать самую простую роль (либо – самый простой модуль). Я выбрал себе простенький модуль, в котором будет не очень много функций. 

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


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

Но, как я уже сказал – можно и в любом визуальном редакторе форм это сделать. В любом случае – вы должны соблюдать некоторые требования (это те требования, которые я сформировал для себя, так что не бейте меня сильно):

•    Интерфейс должен быть простым (до каждой функции должно быть, максимум, два счелчка мышью);
•    Проектируйте интерфейс так, будто вы его проектируете для профессионального программиста (который все сумеет сделать);
•    Не задумывайтесь о том, сможете ли вы реализовать все это.

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

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

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

Что-то мне его лицо знакомо:


2 комментария:

  1. Ни в коем случае не проектируйте GUI до завершения написания функциональной части. Уверяю вас, что придётся обязательно что-либо менять. Вот мой блог: http://2k9software.blog.ru/80481795.html

    ОтветитьУдалить
  2. Это я уже сам понял, опыт со временем приходит.

    ОтветитьУдалить