4
Научно-технические ведомости СПбГПУ 4' 2012 Информатика. Телекоммуникации. Управление
5. Григорьев, Д.А. Реализация и практическое применение аспектно-ориентированной среды программирования для Microsoft .NET [Текст] / Д.А. Григорьев // Научно-технические ведомости СПбГПУ. Сер. Информатика. Телекоммуникации. Управление. -2009. -№ 3. -С. 225-232.
6. Сайт проекта PostSharp [Электронный ре-
сурс] / Режим доступа: http://www.sharpcrafters. com
7. Сайт проекта Code Contracts [Электронный ресурс] / Режим доступа: http://msdn.microsoft. com/en-us/devlabs/dd491992
8. Сайт проекта Aspect.NET [Электронный ресурс] / Режим доступа: http://aspectdotnet.org
УДК 681.3.068
Н.В. Воинов, Л.П. Котлярова, И.Е. Поддубный
МЕТОДИКА РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ ДЛЯ ПЛАТФОРМЫ WINDOWS PHONE 7
Современный рынок мобильных устройств требует подготовки специалистов, способных быстро осваивать и создавать новые приложения под новые платформы. Среди них мобильная платформа Windows Phone 7 [1] в настоящее время считается наиболее перспективной. Именно поэтому она использована в новом курсе для обучения специалистов по направлению «Программная инженерия» на факультете технической кибернетики СПбГПУ.
В курсе разработана новая методика создания приложений (рис. 1), включающая следующее:
1) подготовку окружения, в т. ч. установку средств разработки приложений - Visual Studio 2010, Service Pack 1 и Windows Phone SDK [3];
2) создание проекта лабораторной или курсовой работы;
3) анализ интерфейса и макета внешнего вида приложения;
4) анализ архитектуры проекта, который предполагает проектирование схемы классов будущего приложения;
5) разработку кода разметки интерфейса на языке разметки xaml;
6) разработку программной логики на языках C#, Java и Visual Basic) с использованием технологий .NET Framework 4, Silverlight и XNA;
7) отладку на симуляторе и реальном устройстве;
8) дальнейшее совершенствование проекта.
Методика демонстрирует студентам основные принципы разработки приложений и учит использованию важных возможностей платформы.
Основная задача при разработке нового приложения заключается в создании пользовательского интерфейса на языке разметки xaml (eXtensible Application Markup Language) и логики на языках программирования. xaml - это расширяемый язык разметки приложений, разработанный компанией Microsoft. Он основан на XML, содержит интуитивно понятные онтологические структуры, прост в освоении. Тесное взаимодействие объектов xaml и программной логики позволяет без труда работать с элементами управления в коде приложения.
Разработанная методика включает три группы лабораторных работ и курсовую работу, в рамках которой студенты создают собственные приложения. Каждая из групп лабораторных работ объясняет и демонстрирует на практике следующие возможности:
1) варианты разметки (Grid, StackPanel, Canvas), основные элементы управления, контекст ввода, навигацию между страницами и передачу данных, элементы Pivot и Panorama, меню приложения;
2) задачи запуска и выбора, элемент управления WebBrowser, элемент управления Map и определение местоположения, работа с акселерометром, работа с HTTP, работа с изолированным
Рис. 1. Структура методики создания мобильных приложений
хранилищем и локальной базой, привязка данных, основы Linq;
3) восстановление приложений из состояний Dormant и Tombstoned, работа с фоновыми службами, фоновая загрузка файлов, воспроизведение музыки, работа с будильником, живые плитки (Live Tiles), некоторые элементы управления расширения Microsoft.Phone.Controls.Toolkit.
Каждая работа включает описание задачи и методику решения. Структура описания включает: 1) формулировку задания; 2) определение осваиваемых тем; 3) описание типового решения; 4) возможные способы совершенствования.
В первом пункте определяется, какое приложение требуется разработать и какими функциями оно должно обладать.
Второй пункт содержит список изучаемых тем, что позволяет студентам, предпочитающим самостоятельно во всем разбираться, узнать, какие конкретно вопросы им необходимо изучить.
Третий пункт содержит полное описание методики разработки приложения. Описание включает пошаговые инструкции, примеры кода и снимки экрана. Создание каждой страницы разбивается на три этапа: разработку кода разметки страницы; подключение необходимых библиотек; разработку кода программы.
Четвертый пункт описания лабораторной работы содержит список возможных совершенствований приложения. После выполнения задания студентам необходимо самостоятельно внести некоторые изменения в код или добавить дополнительную функциональность, что позволяет контролировать процесс изучения материала и определять уровень способностей и заинтересо-
ванности каждого студента.
Работы рассчитаны на студентов, имеющих опыт разработки Windows-приложений на языках C#, Visual Basic, Java. Предполагаемое время выполнения одной лабораторной работы составляет два академических часа.
Курсовые работы предполагают использование полученных навыков при разработке игрового приложения средствами технологий Silverlight и XNA. Каждая из них рассчитана на выполнение в течение 12 академических часов. Методика включает пять курсовых работ на использование обеих технологий, что, в частности, позволяет освоить работу с событийной машиной, графикой, звуком и обработкой жестов.
Наиболее интересные приложения могут быть размещены в магазине Marketplace [2].
Предлагаемая методика позволит студентам без особых трудностей научиться разрабатывать приложения для Windows Phone 7 разного уровня сложности. По методике для учебного курса разработаны 21 лабораторная и 10 курсовых работ.
Для иллюстрации применения методики приведено описание курсовой работы «Тетрис».
Задание. Используя технологию XNA, написать игру «Тетрис» для Windows Phone 7. Допускается использование технологии Silverlight + XNA, если основная логика игры будет написана на XNA Framework.
Требования. В работе необходимо обеспечить:
управление уровнями сложности (изменение скорости игры);
подсчет очков и сохранение лучшего результата;
4
Научно-технические ведомости СПбГПУ 4' 2012 Информатика. Телекоммуникации. Управление
реализацию меню игры (при использовании технологии Silverlight + XNA) и звуковых эффектов;
вывод на экран набранных очков и уровня сложности;
создание собственного тайла. По технологии Silverlight + XNA необходимо создать новый проект XNA Game Studio 4.0 - Windows Phone Silverlight and XNA Application
[4].
Поскольку курсовые работы подразумевают создание полноценных игровых приложений с большим числом строк кода, в статье далее приведен только порядок действий без детализации программной логики:
«Создадим абстрактный класс Figure, который будет содержать основные методы для будущих классов фигур».
Перейдем к работе с библиотеками XNA: «В классе игры определим глобальные переменные типа Texture2D, SpriteFont и SoundEffect (для этого нужно использовать пространство имен Microsoft.Xna.Framework.Audio). Внутри метода OnNavigatedTo() будем загружать изображения, шрифты и звуковые эффекты из ресурсов. Там же будем получать параметр от страницы MainPage.xaml с номером уровня сложности (скорости игры)».
Далее обучающимся следует ознакомиться с одним из основных методов XNA, в котором происходят игровые действия - OnUpdate(). Далее детализируем обработку касаний экрана:
«В методе OnUpdate() происходит обновление объектов, пересчет положений и обработка нажатий. Внутри данного метода будем перехватывать нажатия. При одиночном нажатии будем перемещать фигуру просто на одну клетку. При задержанном - будем осуществлять быстрое перемещение. В функции StartGame() будем определять, какие типы жестов считывать сенсором экрана (для этого нужно использовать пространство имен Microsoft.Xna.Framework.Input.Touch)».
Далее познакомим обучающихся с еще одним основным методом XNA, в котором происходит вывод изображений на экран - OnDraw():
«Метод OnDraw() отвечает за перерисовку игрового пространства. Он вызывается каждый игровой такт. Внутри него с помощью уже определенной переменной spriteBatch будем рисовать фон, кнопки, игровое поле, кирпичики на поле, фигуры и строки. Всю прорисовкук необ-
| Level: 4 Score: 100 High score: 0
1 E 1 R 1 S
1 Next: 1
I . □ □ □
□□□□□□ □ □□□□ □ □□□□ □ □□ □ □□□ □ □ □ □ □□□ □ □□ □ □ □ □□□ □c О G в
Рис. 2. Игровое приложение «Тетрис»
ходимо заключать в функциональные «скобки» spriteBateh.BegmO и spriteBateh.EndO».
Данная часть курсовой обучает работе с методом OnDraw0 и двухмерной графикой: рисованию изображений и текстовых строк на экране телефона с использованием библиотек ХМА.
В результате описанных действий будет разработано игровое приложение, показанное на рис. 2.
В конце описаний курсовых работ, так же как и в конце описаний лабораторных работ, приводится список возможных совершенствований:
совершенствование анимации;
добавление фигур «пентамино» (или других).
Совершенствование анимации подразумевает самостоятельное изучение библиотек эффектов ХМА.
Описанная методика протестирована на группе студентов разных курсов. В итоге получено 15 приложений. Они оценивались по степени сложности и завершенности по заранее определенным критериям с помощью экспертной оценки. Как показали результаты исследования (рис. 3), студенты старших курсов разрабатывали более завершенные и сложные приложения. Это связано с большим опытом разработки и с большей заинтересованностью в получении новых знаний.
В связи с тем, что методика рассчитана, в основном, на студентов старших курсов, участ-
Рис. 3. Результаты пилотирования методики
ники пилотного исследования были разделены на две группы. В первую вошли студенты первого и второго курсов, во вторую - третьего и четвертого. Дальнейшее исследование проводилось на второй группе: оценивалась степень освоения материала методики. В качестве критерия была выбрана оценка сложности приложений: чем сложнее приложение, тем лучше освоен материал.
Рис. 4. Доля студентов старших курсов, полностью освоивших методику (□) полностью освоившие; (□) освоившие частично
Результаты показали (рис. 4), что более 85 % студентов старших курсов полностью освоили материал методики. В связи с этим можно сделать вывод, что методика обеспечивает обучение студентов разработке приложений для мобильных устройств.
Мобильные технологии активно развиваются. В конце 2012 г. ожидается выход новой версии платформы Windows Phone - Windows Phone 8. По предварительной информации от компании Microsoft, новая платформа не будет иметь кардинальных отличий от своего предшественника, т. е. в основе разработки, как и ранее, будут лежать технологии Silverlight и XNA [5]. В результате предложенная методика потребует минимальных изменений.
Планируется расширение курса, предполагающее добавление лабораторных работ по следующим темам: информационная безопасность; управление службами; взаимодействие с облачными сервисами; взаимодействие с социальными сетями.
Работа частично поддержана грантом РФФИ 11-07-90412-Укр_ф_а.
СПИСОК ЛИТЕРАТУРЫ
1. Microsoft Windows Phone 7 [Электронный ресурс] / Режим доступа: http://www.microsoft.com/ windowsphone
2. Microsoft Windows Phone 7 Marketplace [Электронный ресурс] / Режим доступа: www.windowsphone. com/marketplace
3. Windows Phone 7 SDK [Электронный ресурс] / Режим доступа: http://www.microsoft.com/en-us/
download/details.aspx?id=27570
4. Орлов, С. Технологии разработки программного обеспечения: Учебник. [Текст] / С. Орлов. -СПб.: Питер, 2002. -464 с.
5. Петзольд, Ч. Программируем Windows Phone 7 [Текст] / Ч. Петзольд. -Redmond, Washington: Microsoft Press, 2011. -695 с.