`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Универсальные приложения для Windows: кроссплатформенность от Microsoft

+44
голоса

Разработчики порой наивны как дети и верят в то, что рано или поздно появится некое волшебное средство, позволяющее однажды созданные приложения запускать без изменений на разных платформах. Именно поэтому миф о Святом Граале кроссплатформенности — пожалуй, одна из самых успешных маркетинговых уловок на рынке средств разработки программного обеспечения. Очередную попытку сыграть проверенными методами предприняла Microsoft, объявив о появлении Universal Apps — универсальных приложений для Windows 8.1 и Windows Phone 8.1.

Свой взгляд на кроссплатформенность

Обилие конкурирующих платформ всегда наводило ужас на разработчиков, а потому легко понять их стремление использовать инструментальные средства, позволяющие создавать решения по принципу «написано однажды — работает везде». Несмотря на то, что этот принцип положен в основу, пожалуй, наиболее успешного кроссплатформенного языка — Java, даже его использование не освобождает разработчика от решения различных проблем с совместимостью. Когда же Microsoft создавала среду .NET Framework, не без оглядки на Java, то кроссплатформенность также называлась в качестве одного из главных ее козырей. При этом, к сожалению, Microsoft в первую очередь подразумевала собственные платформы, которых, следует признать, немалое количество в самых различных сегментах рынка — настольном, серверном, мобильном. Но даже «свое поле» не является гарантией успеха.

Универсальные приложения для Windows: кроссплатформенность от Microsoft

С точки зрения архитектуры универсальные приложения становятся доступны за счет переноса API Windows Runtime на платформу Windows Phone 8

Еще с выходом первых устройств на Windows Phone 7 от Microsoft звучали утверждения, что смартфонная платформа практически идентична плагину для браузеров Silverlight, а потому позволит исполнять общие приложения. Реальность, впрочем, оказалась несколько иной: запустить приложения, созданные для одной платформы, под управлением другой не было никакой возможности. Оставались надежды, что кроссплатформенность будет работать хотя бы «в одну сторону», но ирония ситуации проявилась в том, что встроенный браузер смартфона Silverlight напрочь не поддерживал.

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

Общий знаменатель

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

Универсальные приложения для Windows: кроссплатформенность от Microsoft

С установкой второго обновления для VS 2013 появляется новый тип приложений — Universal Apps

В любом случае, следует признать, что в кроссплатформенности приложения будет мало толку, если у платформ, под управлением которых оно должно работать, не будет некоего «общего знаменателя» в обеспечении взаимодействия с пользователем. Поэтому неудивительно, что последние несколько лет Microsoft посвятила именно тому, чтобы реализовать в составе своих новейших платформ этот самый «общий знаменатель». И пусть спорным остается вопрос о том, действительно ли настольной ОС необходимы планшетные возможности, благодатная почва для кроссплатформенности, была подготовлена.

Обещанного три года ждут

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

Поэтому для многих стали полной неожиданностью прозвучавшие на конференции BUILD в апреле этого года очередные, но гораздо более конкретные заявления о возможности создания приложений, способных исполняться на различных платформах Microsoft. Возможность эта появилась со вторым обновлением Visual Studio 2013 и с обновлением смартфонной платформы до версии 8.1.

Принципиальное изменение на этот раз заключается в том, что приложениям для Windows Phone стала доступна среда исполнения Windows Runtime (WinRT), пришедшая из «более взрослых» версий Windows. Напомним, что ранее приложения для новой смартфонной платформы создавались на основе технологий, унаследованных от Windows Phone 7 и обладающих значительным родством с Silverlight. Несмотря на то, что у Silverlight и Windows Runtime много общего, к примеру, язык программирования C# и язык разметки XAML, существует и очень много различий в деталях, в том числе и недоступных элементов управления, не позволяющих создавать общий код, отвечающий за пользовательский интерфейс. Теперь эти различия устранены, хотя и с некоторыми оговорками.

Универсальные приложения для Windows: кроссплатформенность от Microsoft

Для универсального приложения IDE создает три проекта: по одному для каждой платформы и еще один с общим кодом

Впрочем, говорить о полной идентичности API смартфонной и настольной-планшетной платформ пока еще рано — на текущий момент соответствие оценивается в порядка 90%, и решение отдельных задач потребует создание платформенно-зависимого кода, либо может оказаться совсем недоступным в Windows Runtime для Windows Phone, и тогда придется использовать прежние технологии — как минимум до обновления SDK.

Для пользователей выгода от универсальных приложений состоит не только в выросшей доступности, но и в модели их приобретения и использования: заплатив один раз, они получают возможность исполнять их на различных устройствах. К тому же Microsoft пришлось подравнять минимальную цену на приложения в Windows Store и Windows Phone Store. Раньше она составляла 1,25 и 0,99 долл. США соответственно, отныне равна 0,99 в обоих магазинах. Для того, чтобы у пользователей была возможность отличать подобные приложения, они имеют специальную отметку.

Под капотом универсальных приложений

С технической точки зрения, обновленная смартфонная платформа Windows Phone 8.1 получает дополнительную виртуальную машину Windows Runtime, работающую поверх ядра Windows Kernel Services. Эта виртуальная машина максимально близка к таковой у Windows 8.1/RT, но не идентична ей. К примеру, в число отличий следует внести различный диапазон поддерживаемых размеров и разрешений экранов, в целом исчисляемый десятками возможных комбинаций. Отдельно следует отметить поддержку универсальными приложениями стека веб-технологий, работающих поверх API Windows Runtime — HTML/CSS/JavaScript. В этом случае «универсальность» приобретает особый смысл, поскольку многочисленной армии веб-разработчиков открываются двери в мир экосистемы Microsoft.

Универсальные приложения для Windows: кроссплатформенность от Microsoft

Страница интерфейса с идентичным кодом, использующая элементы управления выбора даты и времени выглядит по-разному на устройствах под управлением Windows Phone 8.1 и Windows 8.1

Для создания универсальных приложений необходимо установить второе обновление для Visual Studio 2013, которое уже доступно в финальной версии, после чего в IDE появится новый тип проекта — Universal Apps, для которого существует несколько шаблонов с определенным макетом интерфейса. После того, как разработчик выберет один из них, будет сгенерировано решение, состоящее из трех проектов (в терминологии Visual Studio): одного для Windows 8.1, второго для Windows Phone 8.1 и третьего, содержащего разделяемый код. Таким образом, несмотря на термин «универсальное приложение», на самом деле сгенерировано будет не одно приложение, обладающее идентичным бинарным кодом для двух платформ, а два — по одному под каждую. Поскольку именно таким образом приложения с разделяемым кодом для смартфонной и настольной-планшетной Windows создавались и ранее, то может возникнуть вопрос — в чем же заключается принципиальная новизна? Ответ, однако, прост — если ранее разделяемый код не мог включать элементы интерфейса и соответствующие вызовы API, вследствие чего, объем специфичного для каждой платформы кода мог быть весьма значительным, то теперь это стало возможным, причем, вплоть до того, что весь исходный код будет общим.

При этом, показательно, что общий исходный код не означает абсолютно идентичное поведение и внешний вид приложения — отдельные элементы интерфейса адаптированы под конкретную платформу и учитывают особенности ее использования. К примеру, элементы управления для выбора даты и времени — DatePicker и TimePicker — выглядят и функционируют по-разному на Windows Phone 8.1 и Windows 8.1. С одной стороны, это облегчает жизнь разработчику, поскольку не вынуждает создавать платформенно-зависимые вставки кода, но с другой — требует гораздо более тщательного тестирования и подгонки пользовательского интерфейса под общие требования.

Что дальше?

Желание Microsoft облегчить жизнь разработчикам при помощи универсальных приложений — это, без сомнения, движение в правильном направлении, от которого выигрывают сразу три стороны: собственно, разработчики, пользователи устройств и, в конечном итоге, сама компания. Уже сейчас идет речь о том, что следующим шагом будет поддержка универсальных приложений на платформе Xbox One, что, с одной стороны, будет способствовать расширению аудитории за счет потребителей игр, а с другой — откроет двери множеству изначально неигровых приложений на игровой платформе, превращая ее из «убийцы времени» в нечто большее.

Разработчикам, использующим для Windows Phone технологии Silverlight, самое время подумать о том, чтобы начать преобразование своих приложения в универсальные, компенсировав потраченные усилия расширением аудитории в лице пользователей Windows 8 и, потенциально, Xbox One. Но это не единственный аргумент. Есть все основания полагать, что Silverlight будет вытеснена со смартфонов в следующем крупном обновлении Windows Phone, поскольку особых причин поддерживать ее у компании больше не останется. Для тех же, кому чужды проприетарные технологии Microsoft, очень привлекательной является поддержка в универсальных приложениях JavaScript/HTML/CSS.

В общем итоге следует признать: универсальные приложения позволяют по-новому оценивать привлекательность платформ Microsoft с точки зрения разработки приложений для них. Если, рассматривать платформы по-отдельности, то ни Windows 8/RT на рынке планшетов, ни Windows Phone 8 на рынке смартфонов не могут сегодня похвастать значительной долей, но их общая пользовательская база, да еще с перспективой присоединения к ней пользователей Xbox One, в корне меняют оценки.

+44
голоса

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT