Обзор актуальных версий Windows Phone, устройств, применимых API
Цель лекции: Ознакомиться с существующими версиями ОС Windows Phone, с особенностями устройств и API, которые можно использовать при разработке
Операционные системы семейства Windows Phone
В настоящее время, то есть, в 2013-м году, существуют два поколения операционных систем семейства Windows Phone. К первому поколению относятся ОС Windows Phone 7, ко второму – Windows Phone 8.
Релиз Windows Phone 7 соответствует операционной системе Windows Phone OS 7.0, релизы Windows Phone 7.5 и 7.8 соответствуют Windows Phone OS 7.1. Таким образом, когда говорят об устройстве Windows Phone 7.8, а на сегодняшний день актуально именно этот релиз системы, имеют в виду устройство, работающее под управлением Windows Phone OS 7.1.
Релиз Windows Phone 8 соответствует ОС Windows Phone 8.0.
До появления семейства ОС Windows Phone, у Microsoft была мобильная ОС, Windows Mobile. Последняя версия имеет нумерацию 6, иногда последние версии этой ОС называют Windows Phone, однако, это не должно вводить вас в заблуждение относительно совместимости Windows Mobile 6.x и Windows Phone 7. Windows Phone OS 7 – это полностью новая операционная система, рассчитанная на современные требования к мобильным ОС. Windows Mobile-устройства не совместимы с Windows Phone 7. Windows Phone 8 поддерживает совместимость с Windows Phone 7.
Microsoft, при разработке Windows Phone 7, пошла по пути унификации характеристик устройств, которые могут работать под управлением новой мобильной ОС. В её лице была представлена единая версия ОС и для обычных пользователей, и для бизнес-целей. Windows Phone 8 продолжает развитие мобильной платформы, с одной стороны, поддерживая приложения, которые были созданы для Windows Phone 7, с другой, расширяя возможности по разработке приложений, сближая разработку для устройств различных форм-факторов.
Если Windows Phone 7, в силу присущих ей особенностей, была ориентирована на смартфоны, она, фактически, используется на устройствах с разрешением экрана 800х480, то Windows Phone 8, наряду с поддержкой данного разрешения, поддерживает и разрешения 1280х768 и 1280х720. Кроме того, с выходом Windows Phone 8 произошли изменения и в наборе API, которые можно использовать при разработке.
В Windows Phone 7 можно было создавать приложения двух основных типов. Во-первых, это были, Silverlight-приложения, интерфейс которых был основан на XAML-разметке, для написания программного кода можно было использовать C# или VB. Во-вторых, это были XNA-приложения, построенные с использованием XNA Framework, с использованием всё тех же C# и VB. Существовали и гибридные приложения, которые предусматривали использование Silverlight для создания пользовательского интерфейса, и XNA – для тех частей приложения, которые требовали интенсивной работы с графикой. Собственно говоря, основное направление использования XNA заключалось в разработке игр, Silverlight – в разработке всех остальных приложений.
Макеты приложений для Windows Phone 8 могут быть построены на основе XAML, на основе HTML5, в качестве языков программирования при разработке используются C#, Visual Basic и C++. Нужно отметить, что, хотя на Windows Phone 8-устройствах могут выполняться XNA-игры, разработанные для Windows Phone 7-устройств, создавать приложения на XNA, ориентированные исключительно на Windows Phone 8, нельзя. Windows Phone 8, фактически, отказывается от XNA, как от игровой платформы, в пользу DirectX.
При разработке приложений для Windows Phone 8 можно использовать следующие технологии:
- DirectX. Подробности можно найти в материалах "Direct 3D для Windows Phone 8" (http://msdn.microsoft.com/en-US/library/windowsphone/develop/jj207062%28v=vs.105%29.aspx), "API Direct3D, поддерживаемые Windows Phone 8" (http://msdn.microsoft.com/en-US/library/windowsphone/develop/jj207010%28v=vs.105%29.aspx)
- API Win32. Подробности можно найти в материале "API Win32, поддерживаемые Windows Phone 8" (http://msdn.microsoft.com/en-US/library/windowsphone/develop/jj662956%28v=vs.105%29.aspx)
- API Windows Phone Runtime, подробности о которых можно найти в материале "API Windows Phone Runtime" (http://msdn.microsoft.com/en-US/library/windowsphone/develop/jj207212%28v=vs.105%29.aspx).
- API .NET для Windows Phone, подробности об этом можно найти в материале "API .NET для Windows Phone" (http://msdn.microsoft.com/en-US/library/windowsphone/develop/jj207211%28v=vs.105%29.aspx)
Когда речь идёт об API, которые традиционно используются для разработки приложений, рассчитанных на настольные системы, их мобильные версии переработаны в соответствии с особенностями и нуждами мобильной разработки. Так, например, из общего обзора API, поддерживаемых Windows Phone 8 (http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff626516%28v=vs.105%29.aspx), можно узнать, что при адаптации API Windows Runtime, используемого при разработке приложений для Windows 8, которое включает в себя порядка 11000 членов, использовано около 2800 членов, при этом добавлено около 600 новых – уникальных для Windows Phone.
Поддержка дополнительных API в Windows Phone 8, ведет к расширению возможностей разработки, облегчению создания приложений, рассчитанных на несколько платформ (например, на Windows 8 и Windows Phone 8), делает возможной перенос наработок, сделанных для других платформ (например, игр, которые используют Direct3D) на Windows Phone 8.
Нужно отметить, что несмотря на то, что приложения, написанные для Windows Phone 7, в общем случае, будут работать и в Windows Phone 8, один и тот же код может исполняться на этих платформах по-разному.
Обращения к некоторым API, которые работают в Windows Phone 7, в Windows Phone 8 могут приводить к вызову исключений. Например, в Windows Phone 8 использование класса Microsoft.Devices.Radio.FMRadio (http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.devices.radio.fmradio%28v=vs.105%29.aspx), предназначенного для работы с встроенным в устройство FM-радиоприемником, приводит к выдаче исключения Microsoft.Devices.Radio.RadioDisabledException, так как данная функция в Windows Phone 8 не поддерживается.
Некоторые механизмы работают по-разному в различных версиях платформы. Так, в Windows Phone 8 двойное нажатие на аппаратную кнопку Назад приводит к выходу из приложения, независимо от наличия возможности перемещения по страницам приложения, в Windows Phone 7 это действие пользователя не воспринимается как команда выхода, являясь обычной последовательностью навигации по приложению.
Некоторые механизмы, которые работают, на первый взгляд, одинаково, на самом деле, имеют различия. Так, при работе со структурой Microsoft.Devices.Sensors.CompassReading (http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.devices.sensors.compassreading%28v=vs.105%29.aspx) и в Windows Phone 7, и в Windows Phone 8 её свойства TrueHeading (направление относительно географического северного полюса Земли) и MagneticHeading (направление относительно магнитного северного полюса) имеют один и тот же тип – double, но возвращаются с различной фактической точностью.
В материале: "Совместимость платформ Windows Phone" (http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206947%28v=vs.105%29.aspx) можно найти списки расхождений между платформами и варианты решения проблем, вызываемых этими расхождениями.
Естественно, код, написанный в расчёте только на Windows Phone 8, не будет исполняться на Windows Phone 7. Учитывая то, что в настоящий момент ОС Windows Phone 7 всё еще используется на множестве устройств, то, что поддержка эта ОС всё еще поддерживается, разработчику, даже создающему приложения для Windows Phone 8 имеет смысл подумать о создании версий приложений для Windows Phone 7. В настоящее время это означает расширение рынка для каждого конкретного приложения.
Многие существующие приложения для Windows Phone 7, при условии достаточно удачно сложившихся обстоятельств, касающихся использования программных механизмов, которые одинаково работают в обеих версиях ОС, работают в Windows Phone 8 без каких-либо усилий со стороны разработчика. Подобная ситуация может привести к мысли о том, что для охвата обеих платформ достаточно приложить усилия к разработке приложений для Windows Phone 7, и, тем самым, охватить весь спектр существующих устройств. Она, в числе прочих, рассматривается в материале о разработке приложений, рассчитанных на несколько версий платформы Windows Phone (http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206997%28v=vs.105%29.aspx). Однако, такая возможность, хотя и реализуема, не позволяет использовать в приложении все те нововведения и преимущества, которыми обладают приложения для Windows Phone 8. Поэтому, если приложение способно извлечь выгоду из этих преимуществ, лучше всего воспользоваться иными подходами, позволяющими охватить существующие целевые мобильные платформы. Фактически, это сводится к разработке двух версий приложения, рассчитанных на разные версии платформы.
Кроме того, для того, чтобы обеспечить максимальный охват платформ и устройств, нужно учитывать то, что под управлением Windows Phone 7 могут работать устройства, несущие на борту 512 Мб или 256 Мб оперативной памяти. При этом другие характеристики устройств существенно не различаются. В общем случае на них могут исполняться одни и те же приложения, однако, приложения, требовательные к размеру оперативной памяти, нуждаются в оптимизации.
Устройства на Windows Phone 8, присутствующее в настоящее время на рынке (рис. 1.1), имеют дисплеи с разрешение 800х480, 1280х768 или 1280х720, 512 Мб оперативной памяти (что является необходимым минимумом), или 1 Гб. На всех этих устройствах могут исполняться одни и те же приложения, при условии достаточности для их выполнения объема доступной памяти. Если же речь идёт о приложениях, особенно требовательных к объему оперативной памяти, на 1Гб-устройствах могут исполняться полные версии таких приложений, а на 512-Мб версиях – облегчённые, при условии, конечно, что подобные версии приложений будут созданы разработчиком.
Что касается иных аппаратных возможностей устройств, то в них могут присутствовать небольшие различия (например, наличие или отсутствие NFC-сенсора, наличие или отсутствие фронтальной камеры), которые нужно учитывать при разработке. Более существенные различия устройств, таким образом, заключаются в возможности разработки для устройств, обладающих разрешениями дисплея 1280х768 и 1280х720, минимальные требования по оперативной памяти для них составляют 1 Гб.
Среда разработки в виде Visual Studio 2012 для Windows Phone поддерживает создание и тестирование (с использованием соответствующих эмуляторов) приложений, рассчитанных для всех актуальных на сегодняшний день платформ Windows Phone, позволяя охватить весь спектр существующих устройств.
Устройства, работающие под управлением Windows Phone
Устройства, которые работают под управлением Windows Phone, в первом приближении, можно разделить на две группы. Первая – это устройства, на которых установлена Windows Phone 7, вторая – те которые работают под управлением Windows Phone 8.
Windows Phone 7-устройства, в свою очередь, делятся на два класса.
К первому относятся устройства, имеющие, как минимум, 512 МБ оперативной памяти. Среди них – такие устройства, как Nokia Lumia 710, 800, 900, Samsung Omnia W (эти аппараты оснащены процессорами частотой 1,4 ГГц), Alcatel One Touch View, Samsung Omnia 7, LG Optimus 7, HTC 7 Mozart (эти смартфоны имеют процессор с частотой 1 ГГц).
Ко второму – устройства, имеющие, как минимум, 256 Мб оперативной памяти. Это, например, Nokia Lumia 610, 510 (они имеют процессор с частотой 0,8 ГГц), Samsung Omnia M (он оснащён процессором с частотой 1 ГГц и 384 Мб ОЗУ).
Все эти аппараты имеют сенсорные емкостные дисплеи с разрешением 480х800, поддерживающие, как минимум, 4 точки касания, которые различаются технологией изготовления и диагональю. Они оснащены встроенной флэш-памятью, имеют камеры со вспышкой для съемки фотографий и записи видео (как минимум – 5-мегапиксельные), обязательный набор кнопок, положение которых регламентировано требованиями Microsoft. За счёт подхода к стандартизации устройств, применяемого Microsoft, все устройства выглядят узнаваемо, органы управления устройствами расположены единообразно, в них применяются одни и те же интерфейсные механизмы системы, системные цвета. Восприятие устройств пользователем различается лишь на уровне восприятия различных подходов к дизайну (здесь тоже, однако, всё достаточно единообразно), использования производителем различных материалов корпуса.
Основное различие, касающееся разработки для двух классов устройств, выделенных выше, заключается в необходимости учёта меньшего размера оперативной памяти на устройствах с 256 Мб ОЗУ и в соответствующей оптимизации приложений.
Для Windows Phone 7 выпущено обновление, Windows Phone 7.8. Возможность установки его на конкретное устройство зависит от устройства. Это обновление расширяет возможности Windows Phone 7, в частности, обновлен стартовый экран системы, улучшены некоторые внутренние механизмы. Это сближает устройства, использующие Windows Phone 7.8. с устройствами, рассчитанными на Windows Phone 8, однако, обновление устройств, работающих под управлением Windows Phone 7, до Windows Phone 8, не предусмотрено.
Если говорить о Windows Phone 8-устройствах, то их так же можно разделить на два класса. Это разделение произведено по тому же принципу, что и вышеописанное разделение устройств, работающих на предыдущей платформе. Однако, в данном случае устройства различаются не только минимальным объемом памяти, но и разрешением экрана. Устройства с разрешением экрана 800х480 имеют, как минимум, 512 МБ оперативной памяти (иногда – 1 Гб), на устройствах с большими разрешениями экранов всегда устанавливается 1 Гб ОЗУ.
Физические размеры экранов колеблются вокруг 4 дюймов, то есть, увеличение разрешения, фактически, приводит к увеличению плотности пикселей и возможности отображения на экране более качественного изображения (хотя, нужно отметить, что и стандартное для Windows Phone-устройств разрешение 800х480 позволяет получать качественное изображение). Все устройства оснащают двухъядерными процессорами, частота которых колеблется в пределах 1 – 1,5 ГГц. Разрешение экрана в 1280х768 или 1280х720 – это уже то разрешение, которого вполне можно ожидать от планшетного компьютера, однако, все существующие в данный момент на рынке Windows Phone 8-устройства, даже такие, как Samsung Ativ S с дисплеем, имеющим диагональ 4,8 дюйма и разрешение 1280х720, это, всё же, смартфоны
К Windows Phone 8-устройствам с разрешением экрана 800х480 и объемом оперативной памяти, как минимум, 512 Мб, относятся, например, следующие: Nokia Lumia 520, 620 и 720, Huawei Ascend W1, HTC Windows Phone 8S. Сюда же можно отнести и Nokia Lumia 820, объем ОЗУ которого составляет 1 Гб.
Устройства, имеющие разрешение экрана, превышающее 800х480, это, например, Nokia Lumia 920 (экран 1280x768), Samsung Ativ S (экран 1280х720), HTC Windows Phone 8X (1280x720).
Выводы
В данной лекции мы ознакомились с основными особенностями платформы Windows Phone 8, с API, применимыми при разработке, рассмотрели устройства, которые работают под управлением ОС Windows Phone различных версий. В настоящее время (середина 2013 года) наиболее актуальна именно Windows Phone 8, однако, достаточно большой парк устройств, работающих под управлением Windows Phone 7, продолжающиеся продажи таких устройств, указывают на то, что создателям приложений не стоит забывать и о разработке для Windows Phone 7.
И к той и к другой платформе применимы схожие принципы дизайна, приложения для них распространяются с помощью единой площадки – Магазина Windows Phone, для размещения на которой приложения должны соответствовать определенным требованиям. Дизайн приложений и сертификационные требования к ним – это наша следующая тема.
Задания
Подготовьте доклад на тему "Технические характеристики Windows Phone 8-устройств и ситуация на рынке". Сделайте в нём подробный обзор 1-2 устройств (по материалам веб-сайтов производителей) и сделайте обзор стоимости этих устройств в различных розничных и интернет-магазинах. Выясните, кроме того, какие условия гарантии предлагают те или иные магазины, а именно – если в устройстве обнаружен брак, который явно относится к производственному, как скоро вы сможете получить взамен неисправного такой же телефон.
Дополнительные материалы
К данной лекции подготовлено видеоприложение.