Михаил Черномордиков (Microsoft) о Windows Phone 7
АрхивИнтерактивЭксперт по архитектуре информационных систем Microsoft рассказывает о нюансах работы WP7, перспективах платформы, о разработке и продаже приложений.
В октябре 2010 года "Компьютерра" уже публиковала материал о Windows Phone 7 - тогда первые телефоны на этой системе поступили в продажу и многие нюансы реализации WP7 оставались неизвестными. Хотя до сих пор не ясно, когда телефоны на WP7 появятся в России, но они уже продаются в США и для них делают приложения - так что тайн с тех пор стало куда меньше. Эксперт по архитектуре информационных систем Microsoft Михаил Черномордиков, пребывающий в данный момент в Редмонде и имеющий возможность опробовать американские телефоны с Windows Phone 7, поделился своими соображениями и некоторыми планами компании в телефонном интервью "Компьютерре".
- C выхода первых телефонов на Windows Phone 7 уже прошло некоторое время. Появилась ли информация о том, насколько он популярен? Возможно, известно, какие изменения произойдут в платформе в ближайшем будущем?
- Да, прошло порядка двух месяцев с момента выпуска Windows Phone 7 на рынок, и за это время произошли обе вещи, о которых вы спрашиваете. Во-первых, пользователям этой платформы доступно уже более шести тысяч приложений, а во-вторых, средства разработки были скачаны более полумиллиона раз. Что касается обновлений, как было заявлено еще в ноябре, в начале 2011 года выйдет ближайший апдейт, в котором появятся новые возможности, в частности работа с буфером обмена. В дальнейшем ожидается, что эти обновления будут выходить на регулярной основе и, что важно, они будут доступны всем пользователям.
- На ISDEF вы говорили о том, что Windows Phone 7 был переписан с нуля - якобы необходимость этого назрела. Хотелось бы подробнее узнать о причинах. Почему потребовалось полностью переделывать систему, почему нельзя было использовать какие-то наработки от Windows Mobile и ограничиться, скажем, переделкой интерфейса?
- Это был непростой, но важный шаг, который сделал Microsoft несколько лет назад (наверное, около трёх лет, когда, собственно, стартовала разработка Windows Phone 7). Был проведён большой анализ, который показал, что дальнейшее эволюционное развитие ветки Windows Mobile не принесет тех результатов, которых мы ожидаем от данного подразделения, поэтому было принято решение, что нужно сделать большой шаг в сторону и шаг вперёд, таким образом отказавшись от того, что у нас было до этого, в пользу свободы действия, которая у нас таким образом появляется. И действительно, седьмая версия, несмотря на свой номер, сильно отличается от всех шести предыдущих - это новая платформа. Она новая и с точки зрения технологий и процесса разработки, она новая и с точки зрения тех телефонов, на которых она запускается, она новая для сторонних разработчиков. И она новая для конечных пользователей этих телефонов. Весь user experience этого телефона абсолютно другой: он интегрированный, он включает в себя не только локальные возможности телефонов, но и огромное количество облачных возможностей, различные сервисы - поиск, карты, игры, контакты, социальные сети и так далее.
- Что для этого нужно было изменить внутри операционной системы? Ведь понадобилось менять всю платформу, включая ядро...
- Да, дело в том, что для разработчиков у нас есть специальный слой управляемого кода. Сторонние разработчики сейчас могут писать приложения на C#. При этом производителям телефонов и операторам сотовой связи у нас предоставляются специальные возможности по разработке нативных приложений.
- То есть не управляемый код, а что-то более низкоуровневое?
- Это специализированный набор разработчика, который позволяет писать все эти вещи нашим партнерам, которых я назвал выше. Таким образом, мы решаем несколько задач. С одной стороны, производители и операторы могут в разумных пределах оптимизировать телефон для себя, а с другой - авторы программ получают быструю среду разработки, доступ к магазину предложений Marketplace.
- От производителей железа требуется соблюдение определённых правил и стандартов. Но для них всегда было важно делать модели достаточно разными. Не считаете ли вы, что Windows Phone 7 их в этом плане ограничивает?
- Когда мы делали новую платформу, у нас была хорошая возможность использовать богатый опыт создания предыдущих версий. Во времена Windows Mobile было слишком много разных телефонов и слишком много разных приложений. С одной стороны, конечному пользователю не всегда было понятно, как работает телефон и приложения. Почему в журнале или рекламе он видел одно, а в реальности это оказывалось другим. Или почему приложение полностью меняет внешний вид телефона и ведёт себя совершенно по-другому. Используя этот опыт, мы решили задать нижнюю планку, которой должны соответствовать все телефоны - неважно, где и кем они сделаны. Но при этом верхняя планка не ограничена. На данный момент есть производители: Samsung, LG, HTC и Dell. Недавно прошел сертификацию аппарат от компании ASUS.
Если посмотреть на эти телефоны (у меня здесь есть такая возможность), выясняется, что, несмотря на то что они все подходят под одинаковые требования, они все абсолютно разные. У одного больше экран, у другого он ярче, третий аппарат легче, у четвёртого есть клавиатура и так далее. Внутри тоже есть различия: многие производители сделали свою секцию в магазине приложений, некоторые в партнёрстве с операторами сделали свой набор предустановленных приложений. Таким образом, есть и общность платформы, и свобода действия.
- Среди телефонов, которые демонстрировались во время запуска, была модель HTC с собственной оболочкой - HTC Hub. К сожалению, она тогда не работала. Может быть уже видели подробнее, что это такое и зачем оно нужно?
- Я думаю, вы запускали HTC Hub, когда не было соединения с сетью, поэтому ничего не работало. На самом деле в HTC Hub содержится разная информация: погода, котировки, текущее время...
У меня здесь есть AT&T самого популярного американского оператора. Это аппарат Samsung, я сейчас включу и расскажу, что в нём есть. В центре экрана находится AT&T U-Verse - мобильное телевидение для абонентов AT&T. Здесь же есть встроенный навигатор AT&T GPS, предназначенный для использования в машине, и HD-радио AT&T. Есть приложение Now ("Сейчас"), идеологически оно схоже с тем, что я видел в HTC Hub: это погода, новости и котировки акций. Таким образом, если я являюсь абонентом AT&T и покупаю телефон, я в нём сразу вижу те сервисы, на которые я был подписан, или могу сейчас же подписаться на них.
- Вы говорите, что телефоны могут быть самыми разными, но стандартизирована даже такая вещь, как разрешение экрана. Это временное ограничение, или набор разрешений всегда будет жёстко задан?
- На самом деле разрешение - это та область, в которой минимальное количество сторон хотят большей свободы. То есть если мы слышим разные отзывы о других ограничениях, то ограничения на разрешение экрана практически всеми встречаются очень положительно. Дело в том, что разнообразие разрешения экрана до этого было большой проблемой как для разработчиков, так и для пользователей. Основная проблема заключалась в том, и мы это сейчас видим на примере других платформ, что если свобода разрешения экрана очень большая, то разработчик вынужден тестировать свое приложение на всём разнообразном оборудовании. Хотя второе разрешение экрана действительно появится; это было анонсировано еще в марте. Второе разрешение будет поменьше. Но это скорее заделы на будущее - пока непонятно, когда это будет реализовано.
- Давайте вернёмся к разговору о платформе и об управляемом коде. Не оказывается ли так, что он замедляет работу телефона?
- Это самый первый вопрос, который задает любой разработчик, который знакомится с платформой Windows Phone 7. Он вполне понятен, поскольку исторически любая виртуальная машина является пусть и небольшим, но замедлением. Windows Phone 7 в этом плане сильно отличается от всего того, что было раньше - к примеру, в настольных операционных системах. В данном случае сама ОС разрабатывалась уже после создания виртуальной машины и именно для неё. Поэтому Silverlight и XNA не являются надстройкой над операционной системой, а скорее, частью ОС. Она спроектирована таким образом, чтобы для самой системы эти фреймворки и платформы были родными. Поэтому производительность остаётся на максимальном уровне, к тому же работает аппаратное ускорение графики. Например, в Silverlight она полностью аппаратно ускорена на всех телефонах Windows Phone 7.
- Windows Phone 7 не единственная платформа, и не доминирующая. Разработчики наверняка захотят писать кроссплатформенные приложения. Какие у них есть варианты? Насколько легко портировать приложения? Насколько сложно портировать на Windows Phone 7, скажем, игру, которая уже сделана для iPhone?
- Да, это хороший вопрос, и все мы прекрасно знаем, что рынок мобильных платформ сейчас максимально конкурентен. Мне кажется, что для разработчиков это такое золотое время, когда стоит обратить отдельное внимание на данную область. При этом интересно наблюдать, что в этой области по сути каждый вендор, каждый производитель платформы предлагает особенный путь разработчика, и поэтому сегодня нет практической возможности писать один раз для нескольких платформ. Скорее наоборот, платформы потихоньку расходятся в разных направлениях. Об этом сейчас много говорят. В чистом виде портирование невозможно, но сделать версию приложения для другой платформы сравнительно несложно.
У нас есть хороший пример: успешная компания, делающая приложения для iOS, портировала за три дня свою популярную игру на Windows Phone 7, после чего та прошла сертификацию в нашем магазине и её уже продают в разных странах, и очень успешно. Портировать игру не так сложно, как приложение. В случае с приложением нужно не только переписать код с учётом особенностей платформы, но и привести интерфейс в соответствие со стилем платформы.
- Переходить с Windows Mobile, наверное, легче?
- Это зависит от того опыта, который есть у разработчиков. Разработчики, уже имеющие опыт работы с нашей платформой, знакомы со средой разработки - Visual Studio, да язык может быть знакомым - это C#. На рынке мобильных разработок можно выделить две условные категории: "простые" и "серьёзные" приложения. Простых больше, и простые приложения здесь делаются очень быстро. Главное - иметь идею, и если она есть, то написать приложение можно достаточно просто и быстро. Поэтому сам процесс портирования в любом случае не такой сложный.
- На телефонах Nokia, как я знаю, тоже установлен Silverlight. Значит ли это, что там можно запускать те же самые приложения и разработчикам будет как-то легче их портировать и выпустить на двух разных платформах?
- Да, действительно на платформе Symbian на телефонах Nokia есть версия Silverlight, однако там она реализована как плагин для браузера. А в Windows Phone 7 это платформа для настольных приложений, ну в данном случае не настольных, а "нателефонных". Поэтому код, естественно, можно использовать...
- Но при этом на Symbian ещё придется использовать и браузер для этого?
- Да, и на самом деле возможности могут различаться. На Windows Phone 7 Silverlight позволяет не только обрабатывать графику и анимацию; там есть доступ к разным сенсорам и функциям телефона. В Silverlight для Nokia этих функций нет. Там это просто фреймворк для выполнения кода в браузере. Если это приложение не использует телефонных функций, тогда портировать легко. Если использует, тогда всё сложнее.
- Раз мы заговорили о браузерах и плагинах, давайте затронем и тему Flash для Windows Phone 7. Может быть, он уже предустанавливается в какие-либо телефоны? Или известно, когда можно будет сразу установить плагин?
- На данный момент в Windows Phone 7 в браузере нет поддержки технологии Flash, хотя компания Adobe с нами активно работает над поддержкой этой технологии. В WP7 есть, к примеру, возможность установки Adobe Reader - то есть компания Adobe успешно пишет приложения для Windows Phone 7.
Во-вторых, самый популярный сценарий использования Flash в телефоне - это ролики с Youtube, и для Windows Phone 7 есть специальное бесплатное приложение. Это сейчас самое популярное бесплатное приложение для Windows Phone 7. Работает оно просто: если человек открывает сайт, на котором есть ролик Youtube, и нажимает кнопку "play", то автоматически вызывается соответствующее приложение и ролик проигрывается.
- Но вторая популярная вещь, для которой используют Flаsh, - это разработка игр. Есть масса браузерных игр, и разработчикам наверняка захочется использовать Flash при их переносе на мобильные устройства. Либо просто для создания игры для мобильного устройства. Известно, что в Adobe прислушиваются к этим желаниям разработчиков и для iPhone, по крайней мере, выпускали компилятор, который делает из роликов Flаsh нативный код платформы Apple. Может быть, что-то такое возможно и с Windows Phone 7?
- Пока об этом говорить преждевременно. Сейчас такая возможность недоступна, и не очень понятно, когда будет доступной, насколько это сейчас технически готово и т.д. К тому же большинство наиболее популярных игр для iOS написано не на Flash, а как "родные" приложения. Что касается Windows Phone 7, то здесь у нас есть в наличии готовая удобная платформа XNA, которая имеет встроенную поддержку, в частности, трёхмерной графики. Компания Electronic Arts написала прекрасные игры, такие как Need for Speed и Sims. Это очень популярные тайтлы, которые сейчас доступны во всех телефонах Windows Phone 7, и их там целая линейка. У нас очень большой опыт работы с играми через наши продукты Xbox, в частности, Kinect, который стал самым продаваемым гаджетом в истории. Поэтому мы стараемся объединить наш опыт с Xbox Live и Xbox 360 с Windows Phone 7. И там доступны те же игры от тех же производителей, что и на игровой приставке.
- Я бы хотел поговорить ещё и о другой особенности Windows Phone 7: невозможности установки программ не из магазина. Вообще платформа кажется куда более закрытой, чем Windows Mobile. Тем не менее недавно появилась новость о том, что разработано какое-то средство, которое позволяет взламывать телефоны и получать доступ к различным функциям, которые до этого были закрыты. В том числе возможен запуск сторонних приложений и их установка с компьютера. И, по слухам, в Miсrosoft не против такой ситуации. Не могли бы Вы подробнее об этом рассказать?
- Для Windows Mobile разработчики, к сожалению, часто писали приложения, по каким-то причинам плохо работающие на телефоне. В результате пользователи были недовольны этим и говорили, что Windows Mobile не удовлетворяет их, поскольку работает плохо, хотя плохо работали приложения. Это было одной из причин, по которой мы приняли решение, что приложения должны распространяться через Marketplace. Таким образом, они проходят предварительную сертификацию, мы убеждаемся, что они корректно работают и безопасны для пользователя. То есть первая задача для Marketplace - убедиться, что приложение хорошее, не нарушает ничьих прав, не нарушает закон. Вторая вещь, которая приходит с Marketplace, - это дистрибуция. То есть если разработчик написал хорошее приложение, оно тут же будет доступно всем пользователям Windows Phone 7 во всех странах мира, если он выбрал эту опцию. И он может его не только распространять, но и продавать, получая 70 процентов дохода от цены, которую он установил в Marketplace, что действительно здорово. Что касается установщиков не через Marketplace, то Microsoft никоим образом не поддерживает эти инициативы, они являются нелегальным использованием нашей платформы, и мы никогда, я думаю, не будем их поддерживать. При этом есть особые случаи, когда мы это разрешаем, более того, предоставляем для этого специальные средства. Это предлагается только разработчикам приложений. Они могут загружать свои программы на телефон в обход Marketplace для тестирования. И мы работаем над тем, чтобы предоставить дополнительные возможности разработчикам, в частности упростить процесс тестирования их приложений среди ограниченного круга лиц.
- То есть пользователи, которые взламывают телефоны, делают это на свой страх и риск, а компания не рекомендует ничего такого делать?
- Конечно.
- Какими могут быть негативные последствия?
- Негативные последствия могут быть самыми разными: некорректная работа телефона, выход его из строя ну и вообще всё, что угодно: рассылка какой-то личной информации человека непонятно куда и так далее. Всё то же самое, что может произойти, если вы на обычный компьютер поставите нехорошее приложение. Не обязательно всё это случится, но такая возможность не исключена.
- Ещё одна сторона Windows Phone 7, заметная как пользователю, так и разработчику, - это многозадачность. Как я понимаю, запустить какое-то приложение, чтобы оно продолжало работать в фоне на Windows Phone 7, сейчас нельзя?
- На Windows Phone 7 реализована вытесняющая многозадачность, которая, с одной стороны, даёт приложениям в фоновом режиме получать сообщения об изменениях в тех или иных состояниях, а с другой, не нагружает сам телефон. Таким образом, срок его действия от батареи увеличивается, а работа не замедляется. При этом он может выполнять параллельно те вещи, которые мы привыкли делать параллельно; например, слушать музыку и выполнять другие задачи на телефоне вполне возможно. Или, например, загружать почту в фоновом режиме тоже можно.
- Ну, музыка и почта - это встроенные приложения. Сторонний разработчик может создать приложение, которое будет продолжать работать в телефоне после того, как пользователь перешёл к другому приложению?
- Да, для этого есть механизм push-уведомлений и push-сервер, расположенный на стороне Microsoft. То есть мы его предоставляем разработчикам бесплатно и разработчик в своем приложении реализует интерфейс работы с этим push-сервером. Когда происходит какое-то событие, то это событие обрабатывается самим приложением: оно может что-то сделать или изменить значок в главном меню. Классический пример - это количество непрочитанных писем в почте, но так же можно сделать всё, что угодно: "тайл" на главном экране может полностью видоизменяться. Ещё один тип - это так называемое тост-уведомление, которое появляется в верхней части экрана телефона. Классический пример - это появление сетей Wi-Fi вокруг: появляется табличка вверху, сообщающая, что обнаружена новая сеть. То же самое можно реализовать и в своём приложении, чтобы уведомлять пользователя о каком-то событии.
- Это полезно для клиентов всяких социальных сетей и прочих похожих приложений. Но есть и другая сторона. Вы упомянули два примера с появлением Wi-Fi и уведомлением из приложения. А нельзя ли связать, скажем так, эти два события: приложение реагирует на появление Wi-Fi или ещё какие-то изменившиеся условия?
- Для этого необходимо, чтобы был программный доступ к уведомителю Wi-Fi. Соответственно сейчас такой функции нет.
- С многозадачностью есть ещё такой аспект, как восстановление состояния приложения. То есть человек вышел из приложения, перешёл в другое, может быть, давно забыл о первом. К примеру, у него было что-то написано в текстовом редакторе, и он возвращается к этому текстовому редактору. Всё будет на том же месте, где он всё это оставил?
- Это зависит от того, как разработчик реализует приложение, но действительно, такая возможность есть - м ыговорим о так называемом изолированном хранилище, в котором можно сохранять те или иные данные со своего приложения. Это та же возможность, которая есть в Silverlight на десктопе, ею можно пользоваться или не пользоваться - на усмотрение разработчика.
- То есть в тот момент, когда пользователь выходит из приложения, оно получает какой-то сигнал и может сохранить данные в этот момент?
- Да, это происходит. В английском языке есть хорошее слово "tombstoning", которое на русский не очень хорошо переводят как "захоронение". В процессе выхода из приложения происходит его сохранение, и прежнее состояние может быть полностью восстановлено.
- Но реализовать это должен разработчик?
- Разработчику доступны методы, которыми он может воспользоваться, чтобы это реализовать. А что касается выхода и перехода из разных приложений, я думаю, вы знаете, что в телефонах Windows Phone 7 есть три аппаратные кнопки: это "назад", "пуск" и "поиск". И если реализация локального хранилища опциональна, то правильная обработка команды "назад" необходима. Например, если я читал письмо в почтовом клиенте и нажимаю кнопку "назад", то я должен вернуться к списку папок, а не выйти из приложения.
- Работает ли кнопка "назад" между приложениями?
- Она работает и между приложениями. Если я, например, запустил приложение для фотографий, а потом открыл почтовый клиент, а там выбрал письмо, то после нажатия кнопки "назад" один раз я должен вернуться к списку писем, а при нажатии второй раз я вернусь к приложению с фотографиями. То есть это сквозная навигация между приложениями. Если стороннее приложение имеет разные составные части, разработчик должен правильно реализовать переходы между ними.
- Как я понимаю, разработчики не могут пока создать что-нибудь вроде собственного плеера, который будет играть музыку, даже когда пользователь перешёл в другое приложение?
- В фоновом режиме реализовать свой собственный плеер не получится, соответственно не в фоновом это можно сделать.
- Я рад, что мы разобрались со всеми нюансами. И последняя часть вопросов - про Windows Phone 7 в России. Отечественные разработчики уже могут создавать для него программы, а вот конечным потребителям телефон пока недоступен. Есть ли новости на этом фронте?
- Да, для разработчиков действительно платформа полностью доступна. Нам удалось включить российских разработчиков в первую волну, и соответственно они могут полноценно участвовать в процессе разработки, публикации приложений и зарабатывать деньги прямо из России, с российскими карточками, с российскими банками.
- Заметен ли интерес к Windows Phone 7 среди разработчиков в России?
- В России средства разработки загрузили десятки тысяч раз, то есть интерес здесь очень большой. Мы его видим не только по цифрам, но и по отзывам, по участию в мероприятиях, по количеству вопросов. Система интересна как тем людям, которые традиционно разрабатывают под платформы Microsoft, так и тем, которые пишут для других мобильных платформ. Сейчас в Marketplace присутствует более пятидесяти российских приложений.
Пользователям телефон действительно доступен пока лишь в некоторых странах. Это связано с тем, что процесс локализации не ограничивается переводом интерфейса телефона. Это также целый набор дополнительных сервисов, без которых работа телефона не является, по сути, полноценной. Как я уже говорил, в телефоне доступны такие функции, как игры через Xbox Live, покупка музыки через Marketplace, социальные сети... Также это публикация приложений, работа с почтовыми клиентами и с почтовыми сервисами, поиск, карты. Все те возможности, которыми мы привыкли пользоваться каждый день. Но когда мы говорим про поиск, карты и социальные сети в контексте России, мы вряд ли говорим об иностранных сервисах, скорее о локальных. Поэтому кажется правильным перед выводом телефона на локальный рынок сначала добиться его интеграции с локальными сервисами. Это не является российской спецификой; такая же позиция сейчас у нас и в отношении других стран, где сейчас телефона нет. Локализация идет активно, и, когда процесс будет закончен, мы об этом обязательно сообщим.
- То есть пока точные сроки неизвестны? Может, хотя бы примерные? Скажем, этот год или начало следующего?
- Пока мы никаких сроков не называем. В России телефон точно будет запущен - здесь нет никаких вопросов. В отличие, к примеру, от плеера Zune, который был только в США и больше нигде не продавался. Понятно, что телефон - глобальный продукт, и рано или поздно он появится, может, не во всех странах, но по крайней мере в тех, где много пользователей интернета и мобильных телефонов. Россия является в этом плане очень большим игроком.
- А известно, будут ли это те же самые телефоны, которые мы видели на открытии, или это могут оказаться другие модели?
- Обычно здесь всё остается на усмотрение производителей и операторов, то есть это их решение, какие аппараты продавать, по какой цене, в какой стране и т.д. Это стандартная ситуация не только для нашей платформы.
- Что насчёт "серых" телефонов? Я имею в виду, купленных где-то за границей? Может, кто-то захочет приобрести себе Windows Phone 7, привезти сюда и пользоваться им здесь. Ждут ли этих людей какие-либо неприятности или неожиданности с локальными операторами или с отсутствием поддержки русского языка?
- Думаю, в первую очередь их ждёт отказ от гарантии, и подозреваю, что также неполное соответствие документам. Но с технической точки зрения, действительно, сейчас поддержки русского языка и русской клавиатуры нет. На этом, собственно, технические ограничения могут закончиться, если мы говорим про телефон, не привязанный к конкретному оператору.
- Такие за рубежом продаются?
- За рубежом продаются как заблокированные телефоны, так и нет. Это зависит, по сути, от культуры страны. Например, В США практически все телефоны заблокированы под конкретного оператора, в Европе это выражено меньше, в некоторых странах этого нет вообще.
- Ну вот вы, прилетая в Россию, используете тестовые телефоны и знаете наверняка, есть ли какие-то ограничения, кроме отсутствия русской клавиатуры.
- В России у нас есть несколько специальных тестовых образцов, которые мы предоставляем разработчикам. У нас есть соответствующее предложение: например, если у разработчика есть некое приложение, мы даём телефон на несколько дней, чтобы он мог его протестировать на аппарате, соответственно когда возможность есть. Что касается этих тестовых телефонов, то да, они полностью работают, но только в смысле непосредственно телефонных функций. Как я уже говорил, многие онлайновые сервисы либо недоступны, либо доступны, но только как часть некого глобального приложения - то есть они не релевантны для конечного пользователя. Например, карты других стран или ещё что-то в этой области.
- Но картографический сервис глобален. Или нет?
- Да, это карты Bing, но так как он официально в России не запущен, точность карт в России не на таком же уровне, как, например, в США, где можно посмотреть детали каждого города.
- То есть можно ожидать, что этот сервис запустится и в России, если телефоны начнут продавать?
- Пока об этом говорить преждевременно. Естественно, наша цель - включить в телефон самые лучшие карты в той или иной стране, а какие это будут карты, вопрос пока ещё открытый.