ДонНТУ   Портал магистров

Разработка приложений для устройств с операционной системой Windows Phone.
Практический опыт.

Знакомство с Windows Phone


Windows Phone – мобильная операционная система, разработанная Microsoft, вышла 11 октября 2010 года. 21 октября начались поставки первых устройств на базе новой платформы. В России телефоны с Windows Phone начали продаваться 16 сентября 2011 года, первым из которых стал HTC 7 Mozart. В Украине официально устройства на данной платформе начали продаваться немного позднее – с декабря 2012 года. Операционная система является преемником Windows Mobile, хотя и несовместима с ней, с полностью новым интерфейсом и интеграцией сервисов Microsoft: игрового Xbox Live и медиаплеера Zune. Презентация системы состоялась в рамках мероприятия Mobile World Congress 2010, прошедшего в Барселоне. Microsoft переработала начальный экран: здесь больше нет статичных иконок – все они заменены на так называемые «живые плитки» (англ. Live Tiles) (или «иконки», «тайлы»), которые отражают информацию в режиме реального времени без участия пользователя. «Живые плитки» прокручиваются по вертикали и могут служить как обычным ярлыком для приложения, так и ярлыком для контакта, заметки, веб-страницы, медиаконтента и прочего. Большинство «плиток» имеют квадратную форму, но наряду с ними интерфейс операционной системы содержит и прямоугольные (фото, календарь). Одно из нововведений интерфейса – «хабы» (англ. hubs) или, как описано на официальном сайте, «разделы». Всего в системе предустановлено 6 таких разделов, но производители телефонов могут создавать свои, например, HTC Hub, соответственно от компании HTC.[1]

Ниже представлены скриншоты главного меню данной операционной системы.


Главные экран ОС Windows Phone

Рисунок 1 - Главное меню ОС Windows Phone

Инструментарий


Для разработки приложений под мобильные устройства на базе Windows Phone необходимо иметь среду разработки MS Visual Studio версии не ниже 2010. На сегодняшний день самой последней версией данной ОС, а также наиболее широко распространенной среди пользователей, является Windows Phone 8. Для разработки именно под эту версию операционной системы, необходимо иметь MS Visual Studio 2012 и установленную к ней Windows Phone SDK 8.0. Если у вас нет устройства на данной платформе, то в процессе разработки приложения можно тестировать на эмуляторе. Он распространяется вместе с SDK совершенно бесплатно. Для полноценной установки и работы данных инструментов необходимо иметь на компьютере операционную систему Windows 8 x64.

Итак, установив Visual Studio 2012 любой редакции, а затем установив Windows Phone SDK 8.0 мы можем приступить к процессу разработки приложений для Windows Phone 8.

Некоторые факты, которые необходимо знать перед началом разработки


Все приложения для Windows Phone разрабатываются на основе архитектурного паттерна MVVM. Тем, кто уже имеет опыт программирования с использованием Silverlight или WPF, будет очень легко научиться программировать для данной мобильной ОС. Суть данного паттерна заключается в разделении модели данных и ее представления. Это необходимо для того, чтобы можно было разорвать зависимость между дизайнером и программистом. При создании пользовательского интерфейса используется XAML. Данный язык разметки напоминает HTML5. А вся логика приложения пишется на языке C# и хранится в CS-файлах, которые связаны с XAML-файлами. Таким образом программист может писать логику обработки данных и поведения системы на привычном ему языке программирования C#, в то время, как дизайнер прорабатывает пользовательский интерфейс, расположение элементов управления, их цвета, размеры и формы на языке разметки XAML. Затем программист связывает модели данных с элементами управления, и приложение «оживает».

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

Создание первого приложения


Запускаем Visual Studio и создаем новый проект Windows Phone. Языком программирования будет C#.


Создание нового проекта в Visual Studio

Рисунок 2 - Создание нового проекта в Visual Studio

Далее в диалоговом окне выбираем целевую версию операционной системы, под которую будем разрабатывать приложение. Выбираем Windows Phone OS 8.0.


Выбор целевой версии ОС для создаваемого приложения

Рисунок 3 - Выбор целевой версии ОС для создаваемого приложения

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


Главное окно Visual Studio

Рисунок 4 - Главное окно Visual Studio

В левой части окна представлен пользовательский интерфейс нашего приложения таким, каким его увидят пользователи. В правой части – редактор кода XAML. Редактирование разметки XAML сразу же отображается в левой части на экране дизайнера. При построении пользовательского интерфейса поддерживается перемещение элементов управления по средствам drag and drop, но это не самый удобный способ. Редактирование кода XAML намного удобней, и дает более ожидаемые результаты.

Добавим внутрь корневого элемента Grid следующий код:

< StackPanel Orientation="vertical" Gгid.RC''="1" Margin="12,0,12,0" >
< StackPanel Orientation="ноrizontаl" >
< TextВlock HorizontalAlignment="Left" TextWгapping="Wгap" Text="value of X:" VегticalAlignmеnt="Center" />
< TехtBox x:Name="valueOfX" HorizontаAlignment="Left" Weight="72" Width="100" TextWrapping="Wrap" VerticalAlignmепt="Top" InputScope="Number"/>
< TеxtBloсk HorizontalА1ignmеnt="left" TextWrapping="Wrap" Text="value of v:" VerticalAlignment="Center" />
< TextBox x:Name="valueOfY" HorizontalAlignment="Left" Weight="72" Width="100" TextWrapping="Wrap" VerticalAlignment="Top" InputScope="Number"/>
< TextBlоck х:Name="Result Block" HorizontalAlignment="Left" TeхtWгаpping="Wгap" VerticalAlignment="Center"/>
< /StackPanel>
< Button x:Name="MessаgeboxUpdate" Content="Messagebox" />
< Button x:Name="TextBlockUpdаte" Content="Tеxt Block" />
< /StackPanel>

TextBlock – это текстовые поля, поля для ввода – TextBox. Параметр InputScope у полей для ввода имеет значение Number. Это сделано для того, чтобы пользователю была доступна только цифровая клавиатура, и он мог вводить только цифры. Button – обычная кнопка. StackPanel – элемент управления, который располагает все вложенные в него элементы либо строго друг за другом по вертикали, либо по горизонтали.

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


Скриншот созданного приложения

Рисунок 5 - Скриншот созданного приложения

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

В обработке нажатий на кнопку «MessageboxUpdate» добавьте следующий код:

private void MessageboxUpdate_C1ick(object sender, RoutedEventArgs e)
{
    MessageBox.Show(ValueOfX.Text + "X" + ValuеОfУ.Text + " = " + (double.Parse(VdlueOfX.Text) * double.Parse(ValueOfУ.Text)).ToString());
}

Данный код выводит окно с сообщением, в котором отображается результат умножения двух чисел, которые пользователь ввел в поля для ввода.

В функции обработки нажатия на кнопку «TextBlockUpdate» добавьте следующий код:

private void Textвlockоpdate_C1ick(object sender, RoutedEventArgs e)
{
    ResultBlock.Text = (dоuble.Рагse(VаluеОfХ.Tехt) * double.Рагse(ValuеOfY.Text)).ToString();
}

Данная функция присваивает элементу ResultBlock текст, который является результатом умножения двух чисел, введенных пользователем ранее.

Для того, чтобы протестировать созданное приложение, достаточно запустить его (нажав F5), при этом сначала загрузится эмулятор Windows Phone, затем на нем загрузится наше приложение. После загрузки можно ввести значения для X и Y и нажать на любую из кнопок. Результат работы приложения должен быть достаточно ожидаем.

Для остановки процесса тестирования можно нажать кнопку «Stop» в Visual Studio.

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

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

Выводы


Windows Phone – достаточно молодая платформа, она пришла на смену всем известной операционной системы Windows Mobile, но при этом она кардинально отличается от нее. Процесс разработки приложений для данной платформы очень интересен, а главное, что Microsoft обеспечивает разработчиков всей необходимой информацией и всем необходимым программным обеспечением для того, чтобы сделать разработку приложений для устройств под управлением ОС Windows Phone максимально комфортной. Я имею опыт создания приложений для iOS, Android, Symbian, а также Windows Phone. И процесс разработки именно под платформу Windows Phone мне понравился больше всего. Visual Studio является отличным инструментом разработки программного обеспечения, она имеет понятный и богатый пользовательский интерфейс, в ее инструментах разработчик найдет все, что может быть необходимо. Работать с отладчиком в Visual Studio – одно удовольствие, все максимально понятно и достаточно информативно. Наличие качественного эмулятора, который практически полностью копирует функциональность физического устройства, облегчает процесс разработки на первых этапах, когда необходимо набраться опыта, создать достаточно простой программный продукт. А также процесс дальнейшего тестирования и отладка приложения непосредственно на смартфоне очень прост. Даже начинающий программист, имея желание, может достаточно быстро изучить основы программирования под Windows Phone и начать создавать достаточно качественные программные продукты.

Для тех, кто заинтересован в разработке приложений для Windows Phone, могу порекомендовать следующую литературу к прочтению:

Данные книги, на мой взгляд, будут полезны не только начинающим, но и тем, кто уже имеет опыт разработки приложения для данной ОС.

Список использованных источников


  1. Windows Phone. Материал из Википедии. [Электронный ресурс]. – Режим доступа : http://ru.wikipedia.org/wiki/Windows_Phone
  2. Начало Windows Phone 8 Development: урок 1. Макет приложения и обработчик событий. [Электронный ресурс]. – Режим доступа : http://habrahabr.ru/post/180301/