Разработка приложения "Календарь" для Windows 8

Создание Windows 8

Взгляд изнутри от группы разработчиков Windows

Разработка приложения "Календарь" для Windows 8

  • Comments 8

Эта статья построена на материалах, изложенных в статьях о приложениях "Почта" и "Люди", и подробно рассказывает о приложении "Календарь". Мы проделали огромную работу, чтобы интегрировать эти приложения в единый взаимодополняющий коммуникационный набор, подключаемый к самым важным для вас облачным службам. В этой статье подробно рассказано об интеграции с Windows 8, о некоторых компонентах в нынешней предварительной версии, а также о функциях, разработка которых ведется в настоящее время. Мы также вкратце затронем историю разработки системы и немного поговорим об итерации. Автор этой стати — Колин Энтони (Colin Anthony), ведущий руководитель программы в рабочей группе Windows Live. --Стивен


Когда мы приступили к разработке приложения "Календарь" для Windows 8, то не испытывали недостатка идей при выборе возможных направлений для деятельности. Учитывая долгую историю календарей и их роль в обществе, а также многообразие ожиданий и требований пользователей Windows, мы задались вопросом: каковы основные атрибуты удобного календаря и как воплотить их в новом приложении с помощью уникальных и разнообразных возможностей Windows 8?

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

  • Давать четкую и наглядную картину текущих дел и событий. У вас должно быть абсолютно ясное представление о текущих событиях и делах, связанных с домом, работой или учебой.
  • Легко ориентироваться в текущей ситуации. Перемещение вперед и назад по времени должно совершаться быстро и эффективно. Открытие интересующих вас событий и встреч должно быть простым и удобным.
  • Просто и быстро добавлять новые элементы. В жизни всегда происходит что-то новое. Эффективный календарь позволяет легко планировать новые дела и события.
  • Успевать все вовремя сделать. Что толку от продуманных планов, если вы опаздываете! Smile
  • Быть готовым сделать больше за то же время. Чем больше у вас дел и событий, тем сложнее составлять расписание. Календарь должен помогать вам успешно корректировать свое расписание в случае изменения в планах.

Четкая и понятная картина текущих дел и событий

Одна из самых важных функций календаря состоит в том, чтобы дать ответы на вопросы "Что у меня запланировано на сегодня?" и "Что предстоит сделать в дальнейшем?" Разрабатывая приложение "Календарь", мы сосредоточились на том, чтобы ответы на эти вопросы были четкими и без лишних отвлекающих подробностей. Учитывая все потенциальные возможности цифрового календаря, реализация данного подхода может оказаться не такой уж простой задачей. Слишком велик соблазн добавить всевозможные дополнительные функции. В то же время, мы понимали, что следует опираться на такое неотъемлемое преимущество бумажных календарей, как наглядность: они просто отображают сетку календаря с датами и внесенные в нее пометки.

Приняв это к сведению и руководствуясь принципами составления эффективного приложения в стиле Metro, мы положили принцип наглядности представления в основу работы над календарем. В приложении главное внимание уделяется прежде всего самому календарю и вашему контенту.

Показан июнь 2012 г., в сетке отображены праздники и другие события.

Календарь без излишеств: все внимание сосредоточено на расписании.

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

Встреча с заказчиком и работа в общественной организации отмечены синим, а праздник выпускников и вечер в семейном кругу — зеленым

Встречи и события рабочего и личного характера отображаются в одном представлении

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

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

Параметры: календарь Колина (Colin) Показать/скрыть, синий; календарь дней рождения показать/скрыть, салатовый; семейный календарь показать/скрыть, сине-зеленый.

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

Упрощение ориентировки в текущей ситуации

Еще одна важная функция календаря — возможность перемещения в любом направлении по времени. Наши основные цели при реализации этой возможности состояли в следующем:

  • Сделать перемещение по времени в любом направлении простым и удобным
  • Добиться предсказуемости переключения представлений
  • Упростить открытие и просмотр текущих событий

Перемещение по времени в любом направлении

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

Но даже при таком простом решении возникает вопрос: насколько далеко вперед или назад должен перемещать вас каждый жест. Приходилось рассматривать компромиссные решения не только в плане взаимодействия с пользователем, но и с технической точки зрения.

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

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

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

Жест прокрутки, позволяющий перейти из июня в июль или август

Вперед по календарю: просто, быстро и точно

Переключение между представлениями

Работая с приложением, большинство пользователей хотят почти всегда оставаться в одном и том же представлении — с учетом насыщенности их расписания. Те, у кого намечено меньше встреч, обычно используют представление "Месяц". Пользователи же, живущие по насыщенному расписанию, как правило, предпочитают представление "День". Поэтому мы решили не делать переключение представлений всегда видимой командой верхнего уровня, а разместить этот элемент управления в панели приложения. В Windows 8 вы можете легко вытащить панель приложения с помощью щелчка правой кнопки мыши и жеста прокрутки вверх от нижнего края. Таким образом вы получаете доступ к средству переключения представлений только в том случае, когда вам это нужно, а в остальное время этот элемент управления вас не отвлекает.

Часть панели приложения, расположенная под календарем

Открытие панели приложения позволяет при необходимости легко переключаться между представлениями

Открытие отдельных событий

Упрощение открытия событий — задача интересная, поскольку приходится выбирать между двумя вариантами:

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

Диаграмма зависимости между точностью касания и наведения указателя мыши (ось X) и размером сегмента события (ось Y).

Нам требовалось найти решение, которое обеспечивало бы простой и точный выбор нужного события и одновременно позволяло бы отображать достаточно сведений о контенте в каждом представлении. Это было особенно важно в отношении представления "Месяц", имеющего самые жесткие пространственные ограничения для каждого отдельного дня. Стараясь совместить плюсы обоих вариантов, мы выбрали такой размер сегмента события, который позволяет в представлении "Месяц" отображать для каждого дня по 2 события (среднее число для большинства пользователей), а точность выбора соответствующего события с помощью мыши или касания пальцем близка к 100%. И, конечно, для особенно насыщенных дней (будь то дома, на работе, в университете или школе), переключение на представления "Неделя" или "День" позволит отобразить все необходимые события, обеспечивая при этом такую же высокую точность.

Упрощение добавления новых планов

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

Указатель мыши наведен на 12 июня в представлении "Месяц"

Щелкнуть для добавления — так же просто, как поднести ручку к бумаге

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

Своевременное выполнение всех важных дел

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

Уведомления и напоминания

На полной странице события вы можете задать любое желаемое время напоминания. В указанное время вы увидите простое всплывающее напоминание.

уведомление "Забрать детей в 5 вечера" появляется сверху веб-страницы в браузере

Уведомления сообщают вам о предстоящих событиях

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

Кроме того, как и в Windows Phone, вы можете видеть информацию о предстоящих событиях на экране блокировки и на плитке "Пуск":

надпись "Завтрак с Дебби, завтра: 8:00" появляется на плитке "Календарь" начального экрана.

Постоянное отображение "Календаря" посредством его прикрепления

Если в какой-то день вы чрезвычайно заняты, может потребоваться, чтобы постоянно отображалось полное расписание. Используя функцию прикрепления (Snap), вы сможете просматривать календарь, и работая с другими приложениями.

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

Но с представлениями "Неделя" и "Месяц" все гораздо сложнее. Полную неделю или полный месяц гораздо труднее вписать в столь ограниченное пространство так, чтобы название каждого события отображалось целиком. Кроме того, мы хотим сохранить систему предсказуемой, избегая таких ситуаций, когда в прикрепленном состоянии одни представления (например, "День") выглядят почти так же, как в исходной полноразмерной версии, а другие ("Месяц", "Неделя") — совсем иначе.

Учитывая все поставленные задачи и сопутствующие сложности, мы разработали простую и последовательную модель, в которой все представления в прикрепленном состоянии выглядят единообразно. Это единообразное представление поддерживает контекст и расположение, соответствующие исходной полноразмерной версии. (То есть, если в исходном полноразмерном представлении у вас открыта пятница, то и в прикрепленном представлении будет отображаться пятница.) Представление спроектировано таким образом, чтобы отображение событий было наглядным, а навигация — легкой: все события из ваших календарей доступны в простом списке. Жест прокрутки либо щелчок справа или слева позволяет перейти вперед или назад по календарю.

Календарь прикреплен справа, а основную часть экрана занимает браузер, на котором в данный момент открыт поиск Bing с запросом "restaurants downtown seattle"

Приложение "Календарь" в прикрепленном представлении позволяет одновременно планировать дела и события, а также просматривать веб-страницы

Готовность сделать больше за то же время

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

Представление "Неделя"

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

Неделя с 10 по 16 июня, с 1–3 встречами каждый день

Представление "Неделя" позволяет просмотреть дни с воскресенья по субботу

Двухдневное представление

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

Расписания на сегодня и завтра показаны рядом, события указываются в почасовой сетке

Двухдневное представление наилучшим образом отображает планы на сегодня и завтра

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

Дополнительные сведения о делах и событиях

И последнее. Нам известно, что многие уже используют календари для быстрых напоминаний (типа "Оплатить счет за телефон", "Родительское собрание в полдень"). Как уже отмечалось ранее, вы можете щелкнуть или коснуться любого места в календаре и просто ввести вкратце нужные сведения.

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

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

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

Список обязанностей по уборке для Колина и Лизы показан в основном поле страницы событий, а в области слева заданы дата и время

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

Мы надеемся, что вам понравится работать с приложением "Календарь" в Release Preview. Мы внимательно изучили все ваши отклики и предложения по Consumer Preview, и многие из них нам очень пригодились. Спасибо! Работая над окончательной версией Windows 8, мы надеемся, что вы также по достоинству оцените и наши новые усовершенствования.

— Колин

  • Loading...
Leave a Comment
  • Please add 3 and 4 and type the answer here:
  • Post