Это заключительная статья в серии про принципы дизайна для Windows 8. Сегодня мы поговорим об экосистеме и важности интеграции.

Сегодня, как никогда раньше, важно постоянно помнить о том, что ваше приложение не живет одиноко в вакууме, в котором нет никого и ничего, кроме него. Да, конечно, оно монопольно занимает весь экран, но это немного другая история.

Ваше приложение, отправляясь в Windows Store, сразу попадает в большую экосистему, в которой важно уметь интегрироваться и конкурировать.

Экосистема

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

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

На втором уровне лежит операционная система, вернее, две ее версии: Windows 8 и Windows RT. Для большинства WinRT-приложений, поставляемых из Windows Store, разница будет незначительной, но важно помнить, что производительность ARM-процессоров и Intel/AMD-процессоров может заметно отличаться (хотя должен отметить, что отрисовка интерфейса в значительной степени лежит на GPU, а не CPU), что в свою очередь может сказаться на отзывчивости вашего приложения.

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

Наконец, на третьем уровне лежит постоянно растущая экосистема приложений, с которыми вам придется конкурировать за внимание пользователей. Часть из этих приложений может оказаться вам полезной.

Интеграция

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

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

Общий доступ

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

Эта функциональность и потребность настолько важна, что в Windows 8 она обобщена и встроена на уровне операционной системы через чудо-кнопку «Общий доступ». Чтобы сработала магия общего доступа, нужны два игрока: приложение, которое делится информацией, и приложение, которое ее принимает. Ваше приложение может быть выступать как отправителем или получателем информации, так и сразу с обеих сторон.

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

Поиск

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

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

Люди и файлы

Другой пример. Если вы откроете приложение «Почта» (Mail), создадите новое письмо и попробуете добавить адресатов, нажав на плюсик, вы увидите перед собой специальный интерфейс другого приложения – «Люди» (People), которое в данном случае выступает поставщиком контактов. Почтовое приложение собственной адресной книги не имеет. Если вы поставите, например, приложение "Почта Mail.ru", то оно также сможет использовать в качестве адресной книги приложение "Люди", а также само выставить список контактов для других приложений.

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

 

Есть и много других сценариев интеграции с операционной системой и приложениями в ней.

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

Инструменты

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

Пользуйтесь шаблонами (как в Visual Studio, так и дизайнерскими для Adobe Photoshop), изучайте примеры и руководства по проектированию (ключевой сайт — design.windows.com) и научитесь работать с Expression Blend (для XAML или HTML) — это ваш главный инструмент для реализации интерфейса приложения.

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

Итоги

Подводя итоги, напомню еще раз базовые принципы проектирования современных приложений для Windows:

  1. Будьте искусными в деталях. Помните о сетке и правильном использовании шрифтов, делайте удобным и безопасным. Приложение должно быть вкусным.
  2. Достигайте большего меньшими средствами. Ставьте на первое место контент, расставляйте приоритеты и избавляйтесь от лишнего, скрывая или убирая вовсе.
  3. Делайте по-настоящему цифровым. Пользуйтесь возможностями цифрового мира, не бойтесь вырваться за рамки физических ограничений, расширяйтесь с облаком.
  4. Делайте быстрым и подвижным. Делайте приложение отзывчивым и динамичным, вдохните в него жизнь и актуальность, адаптивность к контексту.
  5. Выигрывайте вместе. Windows и приложения для Windows – огромная экосистема, интернируясь с ней вы можете приобрести дополнительные преимущества.