Push Notification. Необходимость

Добрый день, Сегодня мы поговорим о Push Notifications(PN) для Windows Phone 7.

Немного истории

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

Теперь теория

Что бы лучше понять PN необходимо вспомнить, что при разработке дизайна приложения очень важно учитывать, как пользователь будет работать с приложением. Хорошее впечатление у пользователя — это задача номер один. Итак, PN это средство вашего общения с пользователем даже тогда, когда ваше приложение не запущено. Следующим логическим вопросом является вопрос о необходимости этих сервисов. Ответ на него рассмотрим ниже.

В Windows Phone(WP) приложении мы не имеем возможности писать код, который выполняется в фоне, пока пользователь работает с другим приложением. А количество приложений, которые всегда "в Онлайн" - растет. Все они требуют возможности "прослушивать" каналы и события. Задумайтесь, большинство приложений сегодня имеют что-то связанное с деятельностью в сети: погода, результаты соревнований, RSS каналы, и т.п.

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

  1. Пока ваше приложение запущено, вы можете обращаться к облаку и тянуть данные из него.
  2. Когда ваше приложение запущено в фоне, вы можете обратиться к какому-то фоновому сервису, который будет продолжать общаться с облаком. А при возникновении чего-то интересного, будет запускать ваше приложение.

Оба сценария достаточно энергоемкие просто из-за того, что вы постоянно используете передатчик (3G, Wi-Fi) для общения с облаком. Используется много энергии на устройстве, которое по определению не может иметь большой ее запас. Первый сценарий еще как-то допустим, потому как воздействует на батарею ограниченное количество времени. Проблема второго сценария в том, что он круглосуточно (даже 24x7) запущен и при этом медленно, но уверенно разряжает батарею, оставляя пользователя с "мертвым" телефоном среди рабочего дня. Вывод: пользователь не всегда ассоциирует приложение со скорость разрядки батареи. Пользователь просто подумает, что телефон отстой плохой.

А помните, в начале поста мы говорили, что впечатление пользователя - это самое важное? Так вот именно из-за проблемы расхода энергии, в WP нет многозадачности (Я не утверждаю, что она одна или является главной), что значит, что разработчик не может написать никаких фоновых приложений.

Но если нельзя запускать что-то в фоне, как же облачные сервисы будут обновлять данные в приложениях? Для этого был создан альтернативный механизм, который позволяет облачным сервисам общаться с WP приложениями все время. PN сервисы позволяют нам общаться с конечным пользователем даже тогда, когда приложение не запущено.

Что такое Push Notification?

Для разработчика PN сообщение — средство для достижения цели. А главная цель - что бы приложение запускали. PN дает возможность отправлять сообщения приложению и даже тогда, когда приложение не запущено, когда ваше сообщение придет, оно будет обработано Windows Phone-ом за вас и показано пользователю. PN это часть Windows Phone и они интегрированы с главным экраном (стартовым) и могут быть отображены поверх любого приложения.

Для конечного пользователя PN — визуальный способ приложения пнуть похлопать пользователя по плечу со словами — "Эй, смотри, что-то интересное случилось. Может, посмотришь?". Пользователь не задумывается как и откуда эти сообщения. Он всего лишь видит сообщение поверх всех окон, или изменившуюся иконку приложения.

Toast Notifications

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

Следующее изображение показывает пример сообщения, которое отображается поверх Стартового экрана.

Tile Notifications

Tile — это визуальное динамическое отображение приложения в области Быстрого Запуска приложений на Главном Экране. На изображении мы видим множество "ярлыков"(tile). Важно помнить, что каждый tile имеет иконку и две строки, ассоциированные с ним. Если ваше приложение прикреплено к Стартовому Экрану, то это значит, что вы можете отправлять PN сообщение для изменения содержимого.

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

Прочитать о том как можно создать и модифицировать свой tile можно тут (ссылка на MSDN).

Немного о том, как правильно оформить свой tile читайте тут.

В следующий раз мы поговорим о механизме работы Push Notification и разберемся как правильно их отправлять и принимать.

Понятие Push Notification для Windows Phone 7. Часть 2 — Как это работает