Windows Phone 7 Mango был отдан «на растерзание» представителям прессы, и все отзывы от платформе получились исключительно положительными. Есть, однако, одна проблема, о которой сейчас говорят. В сети с подачи Джо Белфиора жарко обсуждается система Apple iMessage, якобы почти полностью скопированная у Microsoft. Сегодня речь пойдёт о проблемах в системе сообщений в Mango и возможных способах их решения.

21 июня на сайте Mobile-Review появилась статья Эльдара Муртазина «Бирюльки №123. Каков современный IM-клиент для телефона – подход Microsoft против Apple». Комментарии к ней очень интересные. Чтобы не утомлять вас полным текстом, вот наиболее важные цитаты из статьи:

Меня несколько зацепила фраза о том, что в Microsoft считают iMessage полной копией того варианта чата, который мы видим в Windows Phone 7 Mango. Безусловно, идеологически они в чем-то похожи, но назвать их одинаковыми нельзя.

В Windows Phone 7 Mango центром коммуникации становится контакт, то есть человек. Не важно, чем вы пользуетесь, важно, что отправить вам сообщение можно с помощью любого IM-мессенджера, например, Facebook Chat, а также SMS. Все ваши сообщения при этом будут представлены в виде чата.

Но в чем коренное отличие этого сервиса от SMS? Пожалуй, оно заключается в том, что доставка SMS-сообщения гарантирована оператором, а вы можете получить статус о состоянии сообщения. В то же время, доставка сообщений в современных IM-клиентах не гарантирована, но предполагается, что человек их получит. Огромная идеологическая разница, которая и позволяет говорить о том, что идея, положенная в основу сообщений на Microsoft Windows Phone 7, пока имеет один, но большой изъян. В одном пакете услуг смешали сервис по гарантированной доставке сообщений (SMS) и сервисы, в которых доставка сообщения отнюдь не гарантирована.


Очень странное рассуждение: из-за объединения SMS и других сервисов пользователи не знают, отправлено их сообщение или нет, а фундаментальное различие в двух подходах лежит лишь в наличии нотификации. Эльдар уже высказывал подобные мысли в прошлом, и это настолько бестолковый аргумент, что он портит всю статью. Эльдар делает интересное заключение, не до конца понимая суть вопроса. Система оповещений это очень незначительная проблема для системы сообщений, предложенной Microsoft. В системе есть куда более важные проблемы, и решать их нужно незамедлительно, ещё до того, как пользователи начнут пользоваться Mango. Или Apollo.

Помните, когда Microsoft анонсировал Mango, он говорил о возможности общения людей с помощью разных сервисов: MNS, Facebook, SMS? На видео показано, как всё это должно работать:

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

При переходе в интерфейс пользователь видит сообщения с различных платформ (MSN, Facebook, SMS). Но все сообщения находятся на одной странице. Это неправильно по нескольким причинам:

  1. Неразбериха.
    Сам интерфейс представляет собой неразбериху, и Эльдар прав в том, что группирование различных систем – плохая идея, но дело не в системе оповещений (которая заключается только в информировании, отправлено сообщение или нет). С эстетической точки зрения, интерфейс SMS, в котором объединены различные сервисы, выглядит запутанным. В нём есть индикатор, который показывает, что пользователь пишет вам сообщение, это отличная идея, но в целом интерфейс смотрится слишком разобщённым.
  2. Размер сообщений
    Стоит смотреть на вещи реально. Пользователи пишут очень много. В NoDo баги наблюдаются после тысячи написанных сообщений, что же будет после введения чата, когда в ветках появятся тысячи сообщений? У многих устройств лаги начинаются даже при приёме и просмотре одного SMS. По всей вероятности, сама система SMS содержит много ошибок.
  3. Уведомления
    Эльдар рассуждает о методах нотификации, используемых в Windows Phone, но не вдаётся в их подробности. Там используется вот какая схема. Когда пользователю приходит сообщение, информация об этом посылается на живую плитку (как в случае с SMS), и после того, как он нажмёт на иконку, открывается ветка беседы. Когда приходит новое сообщение, под именем собеседника появляется текст. Вот и всё. В Mango использован тот же способ нотификации, что и в NoDo или в предыдущей сборке, и ожидается, что пользователь знает, откуда ему отправлено сообщение. Он основан просто на выделении текста. Пользователю не сообщается, как ему было отправлено это сообщение, по SMS, через Facebook или вообще MSN.

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

Посмотрите на живую плитку. В настоящий момент Mango информирует вас только о том, что получены сообщения. Что если бы плитка выглядела вот так?

Плитка с уведомлениями о сообщениях
Плитка с уведомлениями о сообщениях

Это фотошоп.

Пользователь смотрит на плитку, и ему сразу понятно, откуда пришли сообщения. Чтобы всё поместилось, иконки можно уменьшить до размера 20х20 пикселей, а шрифт – до 12-14. Эту же систему нотификации можно применить и на странице блокировки. Так было бы намного понятнее и удобнее.

Далее о системе нотификации. Как нам узнать, что контакт нам прислал – SMS или сообщение из MSN? Решить эту проблему можно на удивление просто:

Беседы
Беседы

Можно поместить иконку сервиса в начало или конец сообщения.

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

И в чате, и на живой плитке должна отображаться информация об источниках сообщений. Пользователю будет понятно, какой сервис использовать, особенно если контакт находится онлайн во всех сервисах. Теперь относительно интерфейса сообщений. Сейчас в нём путаница. Но что если бы для сообщений каждого вида сервиса была своя страница? К примеру, пользователь выбирает имя или номер контакта и выбирает любое из трёх окон, в зависимости от того, откуда контакт присылал сообщения. Одно для SMS, другое для Facebook, третье для MSN, если контакт пользовался всеми ими. Звучит дико? Посмотрите на картинку:

Чат
Чат

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

А что до проблемы Эльдара, то она решается очень просто. Если всё сделать так, как описано выше, проблема решится сама. Пользователь не знает, отправлено его сообщение или нет? Всё просто. Пусть появляется полупрозрачное уведомление о доставке. Пользователь увидит, отправилось ли его сообщение. Эльдар говорит о том, что пользователь не знает точно, отправилось ли его сообщение, н его придирки несостоятельны. Точно так же нельзя говорить, что идея Apple относительно системы сообщений уникальна. Или хорошая, или совсем другая. Это неправда. В системе сообщений, воплощённой компанией Microsoft, есть недоработки, но все они решаемы в Mango или в последующих редакциях платформы. Суть в том, что они делают хаб сообщений, больше похожим именно на хаб (то есть концентратор, центр). Всё очень просто.

Система Orphus