Специальные возможности
Отправка и работа над отказами
Когда вы готовы к отправке приложения в Магазин Windows, вы можете использовать меню Visual Studio Магазин (Store). Команда Создать пакеты приложения (Create App Package) позволит вам создать пакет, готовый для отправки в Магазин Windows (и для запуска в WACK). Команда Отправить пакеты приложения (Upload App Package) перенаправит вас в Информационную панель Магазина Windows для того, чтобы завершить этот процесс. И, если вам интересно, максимальный размер приложения для загрузки – 2 Гб (смотрите материал "Сборка пакета приложения" (http://msdn.microsoft.com/library/windows/apps/hh694075.aspx).
В процессе отправки приложения у вас запросят все рекламные материалы и сведения, которые мы обсудили выше, а так же URI технической поддержки и страницы с соглашением о конфиденциальности. Так же вы можете выбрать целевые рынки, установить цены, ввести подробности по покупкам из приложения, задать время действия пробного периода, задать дату выпуска, и предоставить примечания для тестировщиков Магазина Windows. (Обзор этого процесса представлен в материале "Контрольный список для подачи приложения" (http://msdn.microsoft.com/library/windows/apps/hh694062.aspx). Последнее очень важно, если что-либо может быть важным для реально существующего человека, который будет тестировать ваше приложение, например, учетные данные для тестовой учетной записи. И, да, реальные люди будут смотреть на ваше приложение (и читать ваши примечания, поэтому будьте вежливы)! Автоматизированные тесты могут сделать довольно много, но в конце кто-то должен запустить приложение и взглянуть на всё своими глазами.
Если вы проделали большую работу для того, чтобы обеспечить доступность приложения, кстати, есть специальное место для того, чтобы это указать. Смотрите материал "Объявление о специальных возможностях вашего приложения в Магазине Windows" (http://msdn.microsoft.com/library/windows/apps/Hh700322.aspx).
Как только ваше приложение пройдёт процесс тестирования, оно будет либо принято, либо отвергнуто. Принятие – это не проблема – это то, чего вы и ожидаете. А если ваше приложение не принято, с другой стороны, из Магазина Windows вам сообщать, почему, перечислив нарушения правил сертификации приложений для Windows 8. На самом деле, эти правила содержат причины, по которым приложение может быть не принято, поэтому каждый отказ в публикации должен содержать конкретное требование, которое не было удовлетворено. Магазин Windows так же предоставляет некоторые сведения об ошибках, о том, где именно приложение аварийно завершило работу (нарушение пункта требований 1.2.)
По большому счету, большая часть правил достаточно проста, поэтому если вы их нарушили, довольно понятно, почему это так. Некоторые, однако, выглядят запутаннее и субъективнее, и в первые дни существования предварительного релиза Windows 8 они были просто загадочными. Сейчас, к счастью, составлен обширный список причин того, почему приложение может нарушить эти правила, он содержится в материале "Устранение ошибок сертификации" (http://msdn.microsoft.com/library/windows/apps/hh921583.aspx), многие из этих ошибок пришли из опыта работы с реальными приложениями, отправленными в Магазин Windows. Тестировщики Магазина Windows так же могут предоставлять непосредственные отзывы относительно специфических ошибок, наподобие того, где и когда приложение может аварийно завершиться, что, конечно, принуждает их отказывать в сертификации.
Обновления приложения
У книг и приложений есть общая черта, когда в момент их выпуска вы находите ошибки, нестыковки, опечатки и сотни других вещей, которые вам хочется исправить. К счастью, обновить приложение легче, чем обновить книгу (даже несмотря на то, что исправить ошибку в приложении часто сложнее, чем исправить опечатку).
Вы можете решить выпустить обновление по многим причинам, помимо исправления очевидных проблем, которые вы увидели сами и реализации возможностей, которых нет в текущей версии. Вам может захотеться ответить на обзоры и вопросы пользователей, добавить больше продуктов для покупки из приложения, или добавить функции для достижения новых возможностей. Для почти всех этих целей, отчеты и данные (http://msdn.microsoft.com/library/windows/apps/jj193602.aspx), поступающие из Магазина Windows могут быть весьма ценными. Вы будете просматривать их как только ваше приложение окажется в Магазине Windows и лучше всего составить план по мониторингу наиболее интересных для вас отчетов.
Некоторые соображения по этому поводу можно найти в материале "Обновление вашего приложения для Магазина Windows" (http://msdn.microsoft.com/library/windows/apps/jj606115.aspx). На самом деле, запланируйте некоторое время в будущем прямо сейчас для того, чтобы проверять эти отчеты, чтобы не забыть об их существовании. И данные отчеты, действительно, это лучший способ связи с реальными пользователями.
Все подобные данные, конечно, попадают в ваши процессы планирования и разработки, в конечно мсчете, приводя вас к моменту загрузки вашего приложения с новыми рекламными материалами и новыми функциями. Когда вы готовы к загрузке нового пакета, не забудьте увеличить номер версии в манифесте, чтобы вы могли это учитывать. (Эти сведения доступны во время выполнения из Windows.ApplicationModel.Package.current.id.version (http://msdn.microsoft.com/library/windows/apps/windows.applicationmodel.packageid.version.aspx) ). Процесс отправки не отличается от отправки любого другого приложения – не важно, как малы изменения, приложение снова пройдёт полный процесс сертификации. По этой причине не планируйте мелких изменений – сделайте каждое из них значительным (исправка одной критической ошибки, безусловно, имеет значение)! Кроме того, знайте, что сертификационные требования могут время от времени изменяться, поэтому, если приложение однажды уже прошло сертификацию, это не означает, что оно снова её пройдёт. Возьмите себе за правило периодически пересматривать требования.
В обновленном приложении будьте готовы выполнить миграцию состояний, которые могут уже присутствовать на компьютере, если они меняются. Об этом вы можете посмотреть в Главе 2 курса "Пользовательский интерфейс приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript", где говорится о разнице между версиями приложений и версиями их состояний; множество версий приложения может использовать ту же самую версию состояния приложения. Однако, если приложение теперь использует новую версию состояния, старая версия должна мигрировать. Помните так же, что вы можете использовать для этого фоновую задачу servicingComplete, об этом говориться в Главе 2. И, наконец, как только вы представили новую версию состояния приложения, перемещаемые данные будут перемещаться между приложениями, работающими с одной и той же версией состояния – вы можете произвести миграцию старых состояний, когда новое приложение запущено, но как только версия будет увеличена, данные больше не будут перемещаться на устройства с более старой версией приложения.
Последнее, что стоит сказать об обновлениях, это то, что хотя новый пакет приложения может быть достаточно велик, существующим пользователям не придется загружать всё. Пакет приложения разбит на блоки размером по 64 Кб, и лишь те блоки, которые изменились между версиями необходимо загрузить для выполнения обновления. С практической точки зрения это означает, что вам не следует беспокоиться при создании критических обновлений к приложениям: они затронут только небольшую часть кода, и существующие пользователи приложения, в итоге, вполне могут загрузить лишь один блок размером в 64 Кб! Для того, чтобы этому помочь, постарайтесь, чтобы в вашем проекте лучше было бы больше файлов маленького размера, нежели несколько больших, и лучше вносить изменения в конце файлов, чем в начале или в середине.
Приобретение известности: маркетинг, лёгкость обнаружения и веб
Гэндальф Серый сказал Фродо, Сэму, Мерри и Пиппину в завершении фильма "Властелин колец": "Мой труд завершён. Здесь, на берегу моря, нашему братству приходит конец". И, мои друзья, я был счастлив совершить это путешествие вместе с вами! В этом последнем разделе я хочу рассказать вам об одном техническом вопросе – о связи приложения с вашим веб-сайтом – прежде чем поделюсь некоторыми итоговыми мыслями.
Связь с вашим веб-сайтом
Если у вас есть приложение, то почти наверняка у вас есть сайт, который предоставляет дополнительную информацию и поддержку (пункт 6.3. требований посвящен технической поддержке). Что, если потенциальный покупатель сначала попал на ваш сайт? Очевидно, вы хотели бы предоставить ему простой способ для получения вашего приложения, если он работает на Windows 8.
Для того, чтобы это сделать, вы можете просто предоставить ему ссылку на специальный URI, ведущий в Магазин Windows, начинающийся с ms-windows-store, как описано в материале "Ссылки на приложение" (http://msdn.microsoft.com/library/windows/apps/hh974767.aspx). Вы можете использовать форму ms-windows-store:REVIEW? для создания ссылки, ведущей непосредственно к оценкам и отзывам о вашем приложении. И, кроме того, помните, что вы можете включить ссылку на страницу вашего приложения в Магазине Windows в пакеты с данными, которые вы предоставляете для контракта Общий доступ, об этом можно узнать в Главе 1.
С помощью Internet Explorer, немного метаданных в теге <head> вашей веб-страницы упростят пользователю получение вашего приложения и даже его запуск после установки приложения. Например:
<meta name="msApplication-ID" content="ProgrammingWin8-JS-CH17-HereMyAm17"/> <meta name="msApplication-PackageFamilyName" content="ProgrammingWin8-JS-CH17-HereMyAm17_5xchamk3agtd6"/>
Здесь два значения content берутся из полей Имя пакета (Package Name) и Имя семейства пакетов (Package Family Name) на закладке Упаковка (Packaging) редактора манифеста. Если у пользователя нет вашего приложения, это упрощает процесс его получения. Если у пользователя уже есть приложение, у него появляется возможность запустить его, в таком случае приложение будет активировано с видом активации protocol.
Для того, чтобы узнать больше, посмотрите материал "Связывание приложений с ресурсами в Интернете" (http://blogs.msdn.com/b/windowsstore_ru/archive/2012/02/29/linking-to-your-apps.aspx) в блоге для разработчиков Магазина Windows и материал "Связывание вашего веб-сайта с вашим приложением для Windows 8" (http://blogs.msdn.com/b/ie/archive/2011/10/20/connect-your-web-site-to-your-windows-8-app.aspx) в блоге Interner Explorer). И, для того, чтобы увидеть рабочий пример, посетите сайт Inrix Traffic (http://www.inrixtraffic.com/), одного из первых партнёров, который реализовал эту функцию.
Еще одна возможность продвижения приложения, которая приходит здесь в голову: OEM-производителя может заинтересовать ваше приложение для предустановки на их устройства. Если это произойдёт – это настоящий подарок! – тогда OEM-производитель предоставит вам некоторые специальные инструкции о том, как подготовить приложение специально для его клиентов.
Финальные идеи: качества приложения-звезды
Само собой разумеется то, что Магазин Windows будет в какой-то момент содержать огромное количество приложений, в итоге, очень важно будет дифференцировать себя, как разработчика, и своё приложение. Опять же, здесь можно много говорить о маркетинге и приобретении известности вашим приложением, так же, как и о реагировании на нужды клиентов. Помимо этого, однако, что делает приложение по-настоящему особенным?
Ранее, задолго до того, как Microsoft стала использовать термин "Приложения для Магазина Windows", мы называли их "tailored apps" ("индивидуальные", "сшитые на заказ", "подогнанные"). Поэкспериментируем с этим старым термином, подумаем о том, что "подгонка" означает в контексте одежды: хорошо сшитая одежда весьма заметна. Она позволяет вам выглядеть по-настооящему хорошо. Она позволяет вам хорошо себя чувствовать. Это именно то, что должен чувствовать пользователь вашего приложения, когда он погружается во взаимодействие с ним. На самом деле, так же, как вы получаете море удовольствия и счастья от процесса разработки, пусть то же самое испытывают и пользователи ваших приложений. Если вы можете принести им радость с помощью вашего приложения, тогда, я думаю, вы добились этой цели!
Другое значение слова "tailored" подразумевает, что те программы, которыми мы здесь занимаемся – это приложения, которые запускаются на полном экране и полностью погружают пользователя в работу с ними, позволяют такому взаимодействию распространяться и на устройство, и на контекст пользователя. Датчики, речь о которых идет в Главе 3 курса "Пользовательский интерфейс приложений для Windows 8, созданных с использованием HTML, CSS и JavaScript", дают вам возможность знать о взаимоотношениях устройства с физическим миром, который является продолжением пользователя, который держит устройство. Спросите тогда: "Что я могу делать с подобной информацией? Как может вести себя приложение, когда у него есть более глубокое понимание того, где находится пользователь, как он перемещается? Если что-то большее, что может сделать приложение, чем спросить: "Рады ли вы, что взяли меня с собой?".
Для того, чтобы выделить ваше приложение, подумайте о том. как пользователь может использовать устройства разных форм-факторов в разных ситуациях, и выглядит ли приложение по-разному в разных ситуациях. Подобный вид персонализации подразумевает то, что приложение содержит наиболее подходящие возможности или содержимое для наиболее вероятных или подходящих вариантов использования. В соответствии с нижеприведенным рисунком, мне нравится думать о том, что одно и то же приложение может существовать на разных устройствах, и что у пользователя имеется более сильная связь именно с приложением, а не с устройством, на котором оно работает.
Чтение журналов, пометка интересных рецептов (Read magazines, mark recipes of interest)
Планирование меню с отмеченными рецептами, составление списка покупок (Plan menus with marked recipes, make shopping lists)
Просмотр списка покупок, поиск магазинов с лучшими ценами (И, да, здесь у Microsoft есть история с телефонами…) (See shopping lists, locate stores with best prices (And yes, Microsoft will eventually have a story with the phones here…))
Подготовка дневного рациона в соответствии с планом меню (а это – планшет, который можно мыть в посудомоечной машине!) (Prepare the day’s meals according to menu plan (this is a dishwasher-safe tablet too!))
Варианты использования приложения для планирования рациона
Приложение и лежащие в его основе возможности действуют последовательно, во всём диапазоне возможных ситуаций работы с приложением, когда устройство – это лишь транспортное средство. Чем больше ваше приложение соответствует этому и поддерживает это (очевидно, перемещаемые данные здесь очень важны), тем больше, мне кажется, приложение отличается в лучшую сторону от других приложений, которые, конечно, работают в новом окружении Windows, но предлагают те же модели использования, которые существуют уже многие годы
Так как же приложению стать звездой? Давайте будем честными. Вы в этой игре ради имени и славы, верно? И ради больших денег, которые с ними приходят? Какое приложение может дать вам всё это?
Итак, вот последний абзац (если не считать сводки в конце лекции). Я не могу, на самом деле, дать вам кучу конкретных идей (иначе я писал бы эти программы вместо того, чтобы писать книги, но кто-то должен делать и эту работу…). Но задумайтесь над этим: что способствует появлению рок-звезды в музыкальной индустрии? Обычно это не философская глубина лирики или виртуозное исполнение. Это – шоу, личность, ценность зрелищных мероприятий, полных счастья. Это – радость, которая превращает обычных людей в безумных фанатов, которые жаждут быть вашими горячими сторонниками. На самом деле, впечатления – это то, что позволяет людям сбежать из их повседневной реальности и стать частью чего-то большего на какое-то время, или даже частью фантазии. И, как в случае с великой музыкой или великими фильмами, позитивные впечатления от приложения, это то, что людям хочется повторять снова и снова, а не просто ставить галочку, как другие "был там, сделал это". Хотя это, конечно, вопросы времени и счастливой случайности, но все рок-звезды, вместе с великими спортсменами, фильмами, получившими Оскар, вроде "Властелина колец", и так далее, стремились, прежде всего, лишь к одному: к совершенству. Посвятите себя этому. Посвятите себя совершенству во всём, что вы делаете – не только в разработке приложений, но и во всех сферах собственной жизни. Подобное стремление, несомненно, принесет вам множество потрясающих результатов!
Что мы только что изучили
- Взаимодействия приложения с Магазином Windows очень тесно связаны с вашим бизнесом, как разработчика, так как он поддерживает множество возможностей – бесплатные приложения и приложения, финансируемые за счет рекламы, пробные версии, ограниченные во времени, платные приложения и покупки из приложения (если хотите, для последних вы можете использовать собственную коммерческую подсистему).
- Параллельная загрузка пакетов приложения поддерживается для разработчиков (на компьютерах с лицензией разработчика) и для предприятий. В противном случае все приложения поступают из Магазина Windows.
- API Магазина Windows имеет средства для управления лицензированием приложения, лицензирование м покупок из приложения и чеками. При разработке приложение использует объект-имитатор, данные которого берутся из локального XML-файла вместо реального Магазина Windows, что позволяет тестировать различные виды взаимодействия и условий лицензирования.
- Функции специальных возможностей используются большинством пользователей, даже тем, которые не имеют физических ограничений, а лишь находят эти возможности удобными в различных ситуациях. Приложения поддерживают специальные возможности с помощью атрибутов ARIA (для систем чтения с экрана), реализуя взаимодействие с помощью клавиатуры, поддерживая масштабирование разрешения и реагируя на применение высококонтрастных режимов.
- Глобализация – это процесс удаления языковых и культурных предположений из приложения, использование API глобализации для подходящей обработки языка пользователя, различных календарей, форматирования чисел, дат, времени и валют, для управления порядком сортировки, порядком комбинации строк, различными способами ввода данных. Кроме того, этот процесс вовлекает в себя управление тем, какие веб-сервисы будут использоваться из конкретного региона установки приложения.
- Для подготовки к локализации, нужно разыскать в приложении текст и изображения, которые нуждаются в переводе, выделить строки в ресурсные файлы и вставить вместо них ссылки, структурировать ресурсы в папках и файлах, которые используют в именах квалификаторы ресурсов.
- Для целей эффективной локализации Multilingual App Toolkit (Набор средств для многоязыковых приложений) для Visual Studio позволяет работать с ресурсами по умолчанию, создавать на их основе ресурсы для любого количества других языков, переводить эти ресурсы, использовать форматы файлов, с которыми работают профессиональные переводчики, которые могут проверить результат. Кроме того, данное средство создает перевод на основе Псевдо-языка для тестирования локализации.
- Процесс отправки приложения в Магазин Windows начинается с тестирования приложения – и вручную, и посредством Комплекта сертификации приложений для Windows (Windows App Certification Kit, WACK), что позволяет увеличить вероятность успешного лицензирования приложения в.
- Обновления приложения можно отправлять в Магазин Windows позже, с усовершенствованиями, основанными на отзывах пользователей и исследованиях, код обновлений должен быть готов к возможной необходимости миграции состояний приложения.
- Присутствие приложения в Магазине Windows не уменьшает необходимость в маркетинге. Чем больше приложений появляется в Магазине Windows, тем сложнее пользователям будет найти ваше приложение. Снабжайте ссылками друг на друга ваш веб-сайт и приложение – это серьезно повысит возможность нахождения вашего приложения потенциальными клиентами.