С момента запуска платформы в 2011 году и до июня 2013 стоимость годовой подписки на аккаунт разработчика составляла 99 долларов. Microsoft попыталась привлечь как можно больше разработчиков к своей платформе и на все лето этого года снизила «сбор» до 19 долларов. Затем компания бессрочно продлила действие акции и запустила проект Windows Phone App Studio с бесплатной регистрацией разработчиков.
Аккаунт разработчика — полезная штука. С его помощью можно отправлять в магазин Windows Phone приложения и игры, написанные в Visual Studio или созданные в веб-сервисе Windows Phone App Studio. Даже если ваше приложение не пройдет сертификацию, будет отвергнуто и не попадет в коммерческий доступ, вы сможете использовать его на своем устройстве и показывать «эксклюзив» друзьям. Кроме этого, девелоперский аккаунт позволяет своему владельцу получать обновления операционной системы раньше обычных пользователей. Никто никаких приложений от вас требовать не будет, и аккаунт сохранится, даже если вы не станете использовать его для разработки.
Windows Phone App Studio - веб-инструмент для создания простых приложений или макетов сложных проектов. За те несколько месяцев, что прошли с момента его запуска, в нем было создано более 150 тысяч проектов, из которых 65 тысяч стали полноценными приложениями и были установлены на смартфоны.
Для получения бесплатного аккаунт разработчика нужно пройти процесс регистрации в Windows Phone App Studio. Зайдите на страницу сервиса и введите логин и пароль аккаунта Microsoft. Теперь вы официально - разработчик приложений для Windows Phone.
В App Studio содержатся шаблоны девятнадцати категорий, можно выбрать любой и на его основе создать уникальное приложение. Для этого нужно выбрать локализацию, добавить картинку живой плитки, описание, контент (фотографии, видео, RSS-потоки), выбрать цветовую схему оформления интерфейса и фоновое изображение.
Готовое приложение можно сразу установить на смартфон, для этого нужно нажать кнопку «Generate». Вам будет отправлено письмо с двумя ссылками, сначала нужно установить сертификат, затем ваше приложение. После установки оно появится в общем списке, им уже можно пользоваться. В дальнейшем приложение можно редактировать в App Studio и снова отправлять на телефон.
App Studio также позволяет экспортировать исходный код приложения в проект, который можно открыть и редактировать в Visual Studio, более серьезном инструменте разработчиков. Есть и подводный камень - когда вы решитесь отправить свое приложение в магазин Windows Phone, вам потребуется оформить подписку на платный аккаунт разработчика.
Если вы собираетесь использовать аккаунт разработчика только для установки обновлений Windows Phone раньше, чем они выходят официально, установите на смартфон приложение Preview for Developers , залогиньтесь в нем в аккаунт разработчика и согласитесь с условиями. Обновления устанавливаются не автоматически, их наличие нужно проверять в настройках. Если вы услышали, что кто-то начал получать апдейт, зайдите в настройки телефона и посмотрите, доступен ли он вам.
Рано или поздно вопрос о создании мобильного приложения задает себе любой человек, считающий себя продвинутым пользователем одной из мобильных операционных систем. Над кем-то возобладает простой интерес, а кто-то, имея опыт в программировании, хочет попробовать свои силы в создании программ для мобильных платформ. Наша статья будет полезна и тем, и другим пользователям. Мы постараемся рассказать о “кухне” создания программ: из каких этапов состоит процесс, что необходимо для этого знать, какие инструменты понадобятся в работе и многое другое. В качестве примера платформы для создания приложений возьмём одну из операционных систем с наиболее активно развивающимся рынком программ — Windows 8.1.
По пунктам:
1. 2. 3. 4. 5. 6. 7.Первый этап: идея
Создание любого приложения, неважно, для мобильной или десктопной платформы начинается с идеи . Прежде всего, разработчик ставит перед собой вопрос: “Чем моё приложение будет полезно пользователю?”. Если это программа, то её задача — помогать человеку выполнять какие-либо повседневные действия, оправдывая назначение смартфона быть карманным помощником. Если это игра, то в ней, в зависимости от жанра, обычно предполагаются интересный сюжет, красочная графика, увлекательный геймплей, либо и то, и другое, и третье вместе. Если аналогичная программа или игра уже существует, необходимо сразу продумать, какими функциональными особенностями или другими “фишкам” новое приложение будет отличаться от существующих аналогов .
После того, как назначение и цели приложения определены, выбрать платформу, для которой оно будет предназначено будет легко. Если это часто используемое приложение, например, помощник по навигации, карманный справочник или, может быть, казуальная игра, которая будет помогать убивать время в очереди, то, очевидно, создавать приложение стоит для мобильной платформы. С другой стороны, если речь идёт о приложении, которое предполагает работу с большими объёмами информации и использование только в определённых условиях (например, только дома или на работе), будь то сборник рецептов или офисный пакет (а в случае с игрой, если она требует погружения в сюжет или имеет сложное управление), то такое приложение чаще будут использовать на планшете, ноутбуке или компьютере. Другими словами, нужно продумать сценарии использования вашего будущего приложения: в каких случаях пользователи его будут запускать и на каких устройствах. Как и было сказано в анонсе, в этой статье в качестве примера мы возьмём операционную систему Windows 8.1, универсальную для планшетов, ультрабуков, моноблоков и обычных компьютеров. Также, важно отметить, что в случае выбора этой платформы позже не составит большого труда портировать приложение для операционной системы Windows Phone из-за использования одних и тех же инструментов и схожих возможностей обеих ОС.
Следующим шагом на данном этапе является определение целевой аудитории приложения. Целевая аудитория во многом задаёт дизайн приложения и его функциональные возможности. Яркий, красочный внешний вид или строгие пункты меню, простота использования или множество специфических настроек – возможность однозначно определить подобные свойства приложения даёт именно чёткое знание своей целевой аудитории. Понятно, что яркие цвета понравятся детям, а официальность оценят взрослые люди. Минимальное количество настроек сделает программу привлекательной для новичков в мире высоких технологий, а широкая функциональность придётся по душе опытным пользователям.
Последний пункт первого этапа не является обязательным, и его можно отложить вплоть до окончания непосредственно создания приложения, но не будет лишним с самого начала выбрать подходящую схему монетизации . В настоящее время наиболее распространены четыре таких схемы:
Freeware – бесплатные приложения. Такие программы и игры являются абсолютно бесплатными, не содержат и не подразумевают прямого заработка на них. Взамен денежного вознаграждения разработчик может при достаточной популярности такого приложения (а бесплатные программы и игры становятся популярными быстрее других) сделать известными своё имя или бренд, для того, чтобы уже завоевать аудиторию к моменту выпуска следующего, возможно, уже платного приложения.
Adware – приложения с рекламой. В этом случае всё очень просто: программа содержит рекламный блок, за просмотры которого или за клики по нему разработчик получает вознаграждение. Часто в adware-приложения встраивается возможность платного отключения рекламы.
Freemium – приложения с платным контентом. Как правило, freemium-приложениея бесплатны для скачивания из магазина приложений, но содержат дополнительный платный контент. Особенную популярность эта схема получила в многочисленных играх, начиная от казуалок и заканчивая серьёзными проектами. В настоящее время всё больше пользователей относятся к freemium-приложениям негативно из-за необходимости постоянных денежных вливаний, поэтому перед тем, как использовать такую схему, стоит хорошо все продумать.
Shareware – платные программы. Заплатив единожды за shareware-приложение, пользователь навсегда получает полный доступ ко всем его функциям. Для распространяемых по такой схеме программ обычно доступны demo- (с ограниченными возможностями) и trial-версии (с ограниченным сроком действия).
Стоит также упомянуть о пятом, относительно редком способе монетизации – платной подписке. Купив подписку, пользователь может пользоваться всеми возможностями приложения без дополнительных покупок, но только в течение определённого времени. Обычно такую схему используют в клиентах различных онлайн-сервисов, например, мессенджерах, облачных плеерах ли кинотеатрах.
Второй этап: дизайн
Говоря о дизайне, мы будем иметь ввиду преимущественно программы, так как именно они вкупе с дизайном операционной системы создают единый стиль операционной системы. Благодаря этому при запуске программ у пользователя никогда не возникнет ощущения чего-то “чужеродного” в устройстве, а кроме того, вследствие общего расположения контекстных меню и настроек, не будет затруднений с поиском нужных пунктов для выполнения привычных действий. Например, в любой программе из Магазина Windows меню можно вызвать свайпом от нижней части экрана (либо кликом правой кнопки мыши по любому месту), а все настройки находятся в одноимённом пункте правой “чудо-панели”, открываемой свайпом от правой части экрана (это также можно сделать наведя курсор мыши на любой из правых углов дисплея). В случае с играми следование официальным гайдлайнам разработчика ОС (в данном случае Microsoft) не требуется, поэтому будет достаточно принять во внимание рекомендации, которые мы дали в описании первого этапа.
Практически любой дизайн начинается с эскиза, или, как принято говорить в профессиональной среде, с прототипирования. Прототипирование в случае с дизайном приложения – это быстрый набросок расположения основных элементов будущего приложения, в том числе меню и способов навигации. Базовые инструменты для создания прототипа дизайна – лист бумаги и карандаш. Такой способ подходит, чтобы продумать общую концепцию и оперативно зарисовать приходящие в голову образы.
Также прототипирование можно осуществлять на компьютере, используя различное программное обеспечение, начиная с простых графических редакторов и заканчивая специализированными инструментами. В число преимуществ последних входят, например, наличие сетки для выравнивания элементов приложения и возможность размещения на экране таких же меню, надписей и кнопок, которые используются в интерфейсе операционной системы. Здесь перед разработчиком снова встаёт выбор: можно использовать либо инструменты быстрого прототипирования, которые могут работать онлайн и не требуют установки на компьютер, либо профессиональные пакеты, с помощью которых прототип можно довести от состояния эскиза до интерактивного макета, внешне неотличимого от настоящего приложения. В качестве примера сервиса первой категории можно привести бесплатный NinjaMock , а что касается второй категории, то в ней одним из самых популярных средств прототипирования различной глубины проработки является Axure . Собственные средства протипирования предлагает и Microsoft – это приложения Project Siena и Expression Blend. Их преимуществом является возможность экспорта полученных реалистичных прототипов в проекты Visual Studio и продолжения работы над проектом уже в среде разработки.
Как правило, выбирать нужный вариант следует исходя из сложности будущего приложения. Если стоит цель создать простую утилиту для помощи пользователю при выполнении каких-либо задач, то хватит и эскизного прототипа, но при работе над большими и продолжительными проектами обычно создаются достаточно проработанные интерактивные прототипы.
Иконка (плитка) приложения – небольшой, но один из самых важных элементов дизайна, на который пользователи будут обращать внимание перед скачиванием программы, и который затем будут видеть каждый раз перед запуском. Если приложение обретёт популярность, его иконка станет узнаваемой и впоследствии будет у многих ассоциироваться только с конкретной программой. При создании иконки обычно стараются либо отразить функциональность приложения (например, на иконках большинства программ для создания заметок можно увидеть письменные принадлежности), либо создать новый бренд (в качестве примеров популярных программ можно привести браузер Chrome и клиент социальной сети VK). В любом из случаев, согласно современным трендам дизайна и фирменного стиля Windows 8.1, плитка/иконка приложения должна быть плоской, лаконичной, а, главное понятной простому пользователю.
Третий этап: разработка
После того, как окончательно определены идея и возможности будущего приложения, а также есть представление о его дизайне, наступает непосредственно этап разработки и внедрения функций, т. е. написания кода. Обычно это наиболее объёмная часть разработки приложения. Мы уделим внимание этому вопросу в объеме, необходимом для общего представления: какие знания потребуются, где их можно расширить, и какие инструменты будут необходимы.
Разработку можно вести на различных языках, среди которых — C++, C#, Visual Basic, JavaScript, HTML и XAML. Непосредственно до начала разработки приложения необходимо изучить системные вызовы и возможности API операционной системы. Если вы уже знаете один из перечисленных языков программирования, то свои знания будет легко применить к созданию собственного приложения для “плиточного” интерфейса. В специальном разделе сайта компании Microsoft есть подробные инструкции с примерами, в том числе для языка C++ и XAML или для JavaScript и HTML . В качестве IDE (среды разработки) Microsoft рекомендует использовать Microsoft Visual Studio, программы в котором можно писать, компилировать и отлаживать на любом из указанных языков программирования. Помимо этого на официальном сайте компании доступен для скачивания SDK , содержащий множество дополнительных материалов, в том числе документацию, специализированные инструменты, которые пригодятся опытным разработчикам, и полезные для новичков примеры исходных кодов программ.
Имея необходимые знания и инструменты, можно приступить непосредственно к самому процессу написания кода, который будет отвечать как за внешнее поведение различных элементов интерфейса, так и за внутреннюю работу приложения. К последней относятся взаимодействие с ОС, получение данных от системы (например, из файлов владельца устройства и Интернета) и пользователя, их обработка и вывод результатов обработки в удобочитаемом виде. Для хранения данных в большинстве случаев используются базы данных SQL (поддерживаются практически любые системы управления базами данных или СУБД). Также информацию можно загружать, используя внешние сервисы. Если говорить о конкретных функциях программы, то для написания качественного приложения придётся потратить время на изучение вещей, не связанных напрямую с программированием. Например, если ваша программа будет проигрывать музыкальные файлы, потребуются знания о звуковых форматах, а если потребуется доступ к Интернету, не будут лишними знания о принципах работы сети.
После того, как реализован основной функционал программы, даже если вы не являетесь профессиональным дизайнером, следует поработать над анимацией и кастомизацией элементов интерфейса. Это необходимо, чтобы приложение не выглядело топорной поделкой, было привлекательно для пользователей, которые зачастую обращают внимание не только на функциональность программы, но и на дизайн. Наконец, если вы решили монетизировать приложение с помощью внутренних покупок, то их следует внедрить с помощью специального API Windows 8.1.
При разработке обязательно стоит принимать во внимание список требований Microsoft к приложениям для Магазина Windows: без их выполнения ваша программа будет отклонена при попытке опубликовать её в магазине приложений.
Четвёртый этап: тестирование
Некоторые разработчики не придают особого значения тестированию приложений, а перед публикацией в Магазине, в некоторых случаях, даже не проверяют корректность работы программ на реальных устройствах (имеются ввиду устройства с сенсорными экранами, если разработка ведётся на компьютере без тачскрина). Конечно, так делать не стоит: главная опасность при разработке программ для планшетов и ультрабуков на Windows 8 заключается в том, что одни и те же активные элементы программ могут по-разному реагировать на клик мышью и нажатие пальцем.
Чтобы избежать таких недоразумений, необходимо провести полноценное тестирование на устройстве с тачскрином. На данном этапе можно прибегнуть к помощи друзей или знакомых: до публикации в Магазине в процессе добавления нового приложения в аккаунте разработчика есть функция отправки приглашения отдельным пользователям на бета-тест . К сожалению, проводить публичные бета-тесты Microsoft не позволяет.
Пятый этап: публикация в Магазине
После того, как приложение полностью готово, самое время опубликовать его в магазине. Для этого понадобитсяаккаунт разработчика . Его стоимость составляет 625 рублей для индивидуальных разработчиков или 3 000 рублей для компаний, а регистрация для студентов и стартапов вовсе бесплатна – код можно получить по программам DreamSpark и BizSpark соответственно. В процессе публикации разработчику будет необходимо указать название приложения, определить его категорию , возрастные ограничения и выставить цену. С обзором этого процесса можно ознакомиться на сайте Microsoft.
После того, как программа или игра отправлена, в течение примерно пяти рабочих дней тестировщики проверят её на предмет соблюдения всех правил Microsoft, о которых мы уже упоминали на этапе разработки. Если не возникло никаких проблем и в процессе отправки приложения на утверждение вы согласились с публикацией, ваша программа или игра будет немедленно опубликована в Магазине приложений и появится в выдаче поиска.
Как ни странно, этот этап может занять довольно много времени, поэтому мы ещё раз напоминаем о важности соблюдения всех требований Microsoft, которые включают требования к коду и функциям приложения, соблюдению гайдлайнов дизайна, а также оформлению заявки.
Шестой этап: реклама и поддержка
Если вы создаёте программу для широких масс, а не узкого круга людей, или игру, слишком надеяться на “сарафанное радио” не стоит. Сами по себе приложения “выстреливают” довольно редко, и, если вы хотите, чтобы о вашем продукте узнали – его необходимо продвигать . Способов может быть много: посты в социальных сетях или . Можно предложить “бонусы” за рекламу приложения в социальных сетях самими пользователями, этот способ часто используется при продвижении игр.
Итак, о приложении узнали, и пользователи начали его покупать, но это совершенно не означает, что можно откинуться на спинку кресла и считать деньги, “капающие” на счёт. Чем больше у приложения пользователей, тем больше отзывов они будут писать, и эти
Последнее обновление: 31.10.2015
Запустим Visual Studio Express 2013 for Windows. В меню выберем File->New Project.. . Перед нами откроется окно создания проекта:
В левой части окна выберем Visual C#->Store Apps-> Windows Phone Apps . А среди шаблонов нового проекта выберем Blank App (Windows Phone) , дадим какое-нибудь название проекту, например, назовем его HelloApp. И нажмем ОК.
И Visual Studio создаст новый проект:
Проект по шаблону Blank App по умолчанию имеет следующие узлы:
Каталог Assets , содержащий используемые файлы изображений
App.xaml и App.xaml.cs - файл ресурсов приложения на xaml и файл кода приложения на c# соответственно
MainPage.xaml и MainPage.xaml.cs - файл графического интерфейса окна приложения и файл кода окна на c# соответственно
Package.appxmanifest - файл манифеста приложения
На данном начальном этапе пока для нас ценность представляют файлы MainPage.xaml и MainPage.xaml.cs . Откроем файл MainPage.xaml, который представляет графический интерфейс:
Слева в виде телефона у нас будет окно графического дизайнера. Справа - окно разметки графического интерфейса на языке xaml. Графический интерфейс в данном случае представлен классом MainPage, который представляет собой отдельную страницу. Все изменения по интерфейсу, которые мы сделаем, тут же будут отображаться в графическом дизайнере, который даст нам визуальное понимание того, как в итоге будет все выглядеть.
Допустим, наше приложение будет считать сумму вклада после начисления процентов. Для этого нам нужно поле ввода суммы вклада, поле для вывода результата и кнопку, с помощью которой мы будем инициировать вычисления итоговой суммы. Итак, изменим код файла MainPage.xaml следующим образом:
С помощью атрибутов элементов мы задаем их внешний вид и позиционирование. Например, с помощью атрибута Margin задаются отступы от внешнего края. Более подробно об атрибутах и прочих элементах языка xaml мы поговорим в дальнейшем.
После добавления элементов и их атрибутов у нас автоматически обновится и окно дизайнера:
Теперь изменим код кнопки следующим образом:
С помощью выражения Click="button1_Click" мы добавили обработчик события Click. Таким образом, по нажатию кнопки будет срабатывать метод button1_Click . Теперь определим этот метод.
Откроем файл MainPage.xaml.cs , который содержит логику страницы. По умолчанию он имеет следующий код:
Using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; namespace HelloApp { public sealed partial class MainPage: Page { public MainPage() { this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Required; } protected override void OnNavigatedTo(NavigationEventArgs e) { } } }
В класс MainPage добавим новый метод:
Private void button1_Click(object sender, RoutedEventArgs e) { double capital; if(Double.TryParse(textBox1.Text,out capital)) { capital+=capital * 0.12; textBlock1.Text = capital.ToString() + " долларов"; } else { textBlock1.Text="Некорректное значение"; } }
В методе мы получаем введенное в текстовое поле значение и пытаемся его преобразовать к типу double. Если преобразование пройдет успешно, то выводим результат несложных вычислений.
Запустим на выполнение:
При запуске мы можем выбрать, где мы будем тестировать приложение - на реальном устройстве или эмуляторе. В моем случае я запускаю приложение на реальном смартфоне, поэтому в выпадающем списке выбираю Device . Однако можно выбрать и один из эмуляторов, если они уже установлены.
При запуске приложения на смартфоне важно, чтобы смартфон не находился в состоянии блокировки. Итак, запустим:
Введем в текстовое поле какое-нибудь число и нажмем на кнопку:
При тестировании через смартфон важно помнить, что при запуске приложение автоматически устанавливается на телефон, и мы можем его найти в списке всех приложений:
И при необходимости потом, отключившись от компьютера, также сможем его запустить, либо удалить.
На этом создание первого приложения завершено.
В диалоге New Project Visual Studio выберем Visual C#, Silverlight for Windows Phone и простой шаблон приложения Windows Phone Application и назовём его ExploringXAMLFeatures.
В диалоге выбора целевой операционной системы выберем Windows Phone OS 7.1
После создания проекта, окно Visual Studio примет следующий вид
Рассмотрим структуру проекта в окне Solution Explorer:
Название файла | Назначение |
AppManifest.xml | Файл манифеста, необходимый для генерации XAP файла, в который упаковывается приложение для развёртывания на телефоне. |
AssemblyInfo.cs | Ещё один конфигурационный файл, в котором определяются некоторые метаданные главной сборки(Assembly) приложения. |
WMAppManifest.xml | Файл метаданных, который содержит разнообразные настройки приложения: заголовок, задание первой страницы, пути к иконкам, определение необходимых системных возможностей и.т.д. |
App.xaml | Это файл ресурсов приложения. Здесь располагаются глобальные ресурсы (это будет рассмотрено при использовании стилей) или глобальные события (происходящие при старте приложения). Этот файл также является точкой входа приложения. |
App.xaml.cs | Файл кода (code-behind) для App.xaml. Здесь можно обрабатывать события и ошибки уровня приложения, в том числе его tombstoning. Данную концепция будет рассмотрена позднее, когда будет рассматриваться многозадачность. |
ApplicationIcon.png | Картинка, которая будет иконкой приложения в телефоне. Это действительно важный файл, так как он является первым, что увидят пользователи при работе с приложением. |
Background.png | Данная картинка используется, когда приложение закреплено на стартовом экране телефона(start screen). По сути это большая иконка приложения. Разумно сделать её визуально похожей на ApplicationIcon.png. |
MainPage.xaml | Это часть выбранного шаблона приложения. Название MainPaige не очень удачное, но именно оно используется шаблоном проекта по умолчанию. Этот страница представляет интерфейс, который видит пользователь при старте приложения. |
MainPage.xaml.cs | Файл кода страницы MainPage.xaml. |
SplashScreenImage.jpg | Данная картинка отображается во время загрузки +приложения. Можно задать свою картинку с анимацией, чтобы проинформировать, что приложение загружается. Есть техника создания очень динамичных страниц загрузки на XNA, но она выходит далеко за рамки этого цикла статей. |
Файлы XAML определяют интерфейс приложения. На самом деле - это просто XML файлы с языком разметки XAML.
Несмотря, что это самый простой проект, он содержит все ключевые элементы, которые содержат все остальные шаблоны и типы проектов.
Обратите внимание, что часть настроек, представленных в виде конфигурационных файлов, могут редактироваться в визуальном интерфейсе редактирования настроек приложения.
Добавление элементов управления на страницу XAML
Обратите внимание, что Visual Studio по умолчанию отображает и дизайн, и XAML код страницы.
Если вы переходили к просмотру других файлов решения, двойным щелчком перейдите на файл MainPage.xaml.
В XAML код файла MainPage.xaml внутрь элеметна Grid с именем ContentPanel вставьте элемент управления Button:
В окне дизайна кнопка отобразится сразу приблизительно в центре интерфейса. Обратили внимание на атрибут Name ? Это уникальный идентификатор элемента, который помогает ссылаться на него в коде. Считайте это ID атрибутом элемента управления. Давайте теперь добавим какие-нибудь действия при нажатии на эту кнопку. Есть два способа привязать событие к кнопке Button (или любому другому элементу управления). В XAML, прямо в определении Button, можно добавить атрибут Click и система InteliSense автоматически спросит, хотим ли мы сгенерировать новый обработчик событий:
Можно связать обработчик событий напрямую в коде страницы Home.xaml.cs не указывая его в XAML файле:
Public MainPage() { InitializeComponent(); MyButton.Click +=new RoutedEventHandler(MyButton_Click); }
Оба способа работают. Можете использовать любой из них. Для упрощения здесь будет использоваться определение метода в XAML. Теперь в функции MyButton_Click можно написать управляемый код, который будет изменять интерфейс или вызывать другие функции. Завершим наш пример приложения, добавив код, который будет изменять текст в TextBlock PageTitle (PageTitle – это Name, так что можно ссылаться на неё напрямую в коде) на «привет wp7». Чтобы сделать это допишем следующий код в функцию:
Private void MyButton_Click(object sender, RoutedEventArgs e) { PageTitle.Text = "привет wp7"; }
Выберем в настройках проекта Windows Device Emulator
И запустим приложение, нажав на зеленый треугольник или копку F5. После запуска приложения и нажатия на кнопку «Нажми меня», вид экрана должен быть аналогичным снимку экрана ниже:
Добавление новых страниц в проект
Только самое простое приложение состоит из одной страницы. Мы хотим научиться писать сложные многостраничные приложения. Мы можем использовать шаблоны Pivot, Panorama, можем использовать паттерн проектирования MVVM (Model-View-ViewModel), а сначала научимся добавлять новые страницы в проект и переходить между ними.
В окне Solution Explorer щелкнем правой кнопкой мыши по названия проекта, и в отобразившемся меню выберем, Add, далее New Item, в открывшемся диалоговом окне выберем Windows Phone Portrait Page и назовем её SecondPage.xaml:
Теперь у нас есть пустая XAML страница, точная копия страницы MainPage.xaml до того, как мы её отредактировали.
Чтобы лучше различать страницы, перейдем к XAML коду страницы SecondPage и у элемента TextBlock с Name PageTitle отредактируем свойство Text, как показано ниже:
Навигация между страницами приложения
Итак, у нас в проекте есть две страницы, при запуске приложения отображается страница MainPage.xaml. Как теперь перейти со страницы MainPage.xaml на SecondPage.xaml?
Попробуем два простых способа, как это сделать.
В XAML код файла MainPage.xaml после добавленного ранее кода Button, добавим код HyperlinkButton, как показано ниже:
Элемент управления HyperlinkButton имеет специальноe свойство NavigateUri, которое позволяет указать Uri для перехода. Добавим это свойство со значением /SecondPage.xaml, как показано ниже:
Запустим приложение (F5).
Когда отобразится интерфейс приложения, если мы нажмём ссылку Вторая страница, то произойдет переход на вторую, ранее созданную страницу SecondPage.xaml. Если после этого нажать на аппаратную кнопку Back, то мы вернёмся на основную (предыдущую) страницу – по умолчанию эта кнопка позволяет перейти на предыдущую активную страницу.
Теперь воспользуемся возможностью программного перехода. Сначала добавим в секцию using следующий код:
Private void MyButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative)); }
Запустите приложение (F5) и убедитесь, что кнопка работает также как и ссылка.
Добавим на вторую страницу (SecondPage.xaml) элементы управления и код, который бы позволял вернуться на предыдущую страницу.
В XAML код файла SecondPage.xaml внутрь элеметна Grid с именем ContentPanel вставьте элементы управления Button и HyperlinkButton, как показано ниже:
Для создания обработчика события Click кнопки MyButton на странице SecondPage кликните правой кнопкой мыши по тексту MyButton_Click в XAML редакторе и выберите Navigae to Event Handler.
Запустите приложение (F5) и убедитесь, что ссылка «Первая страница» на второй странице возвращает приложение на MainPage.
Теперь воспользуемся возможностью программного перехода. В коде страницы SecondPage.xaml.cs добавим в секцию using следующий код:
Using System.Windows.Navigation;
А затем, заменим код обработчика MyButton_Click на следующий:
Private void MyButton_Click(object sender, RoutedEventArgs e) { NavigationService.GoBack(); }
Запустите приложение (F5) и убедитесь, что кнопка Обратно на второй странице возвращает приложение на MainPage.
Обратите внимание, что в коде, который запускается по нажатию кнопки мы не использовали название страницы, на которую нам необходимо перейти, а попросили сервис навигации, представленный классом NavigationService перейти на страницу, которая была в стеке переходов перед текущей.
События перехода с/на страницы могут быть обработаны програмно, например, чтобы уточнить у пользователя, действительно ли он хочет уйти с текущей страницы.
Добавьте следующий код в файл SecondPage.xaml.cs сразу после обработчика MyButton_Click:
Protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) { base.OnNavigatingFrom(e); // Если можно отменить переход, уточним у пользователя, хочет ли он остаться на текущей странице if (e.IsCancelable) { MessageBoxResult result = MessageBox.Show("Может быть останетесь?", "Подтверждение перехода", MessageBoxButton.OKCancel); if (result == MessageBoxResult.OK) { // Пользователь решил остаться e.Cancel = true; return; } } }
Код достаточно простой, чтобы вы с ним могли разобраться самостоятельно.
Запустите приложение (F5) и обратите внимание, что уточняющий диалог отображается вне зависимости от того, собираемся вы вернуться на MainPage нажатием на кнопку или по ссылке.
Теперь осталось научиться передавать между страницами параметры.
Двойным щелчком по MainPage.xaml перейдём к редактированию основной страницы. В коде MainPage.xaml добавим элемент управления TextBox, выше элемента Button, как показано ниже:
Двойным щелчком по SecondPage.xaml перейдём к редактированию основной страницы. В коде SecondPage.xaml добавим элемент управления TextBox, выше элемента Button, также как на странице MainPage:
Теперь, в обработчик события MyButton_Click страницы MainPage добавим параметры в Uri перехода на вторую страницу по кнопке:
Private void MyButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new Uri("/SecondPage.xaml?text="+Uri.EscapeDataString(MyTextBox.Text), UriKind.Relative)); }
И, наконец, в код страницы SecondPage.xaml.cs, сразу же после обработчика OnNavigatedFrom, добавим обработчик прихода на страницу OnNavigatedTo и в нем обработаем приходящий параметр и выведем его в MyTextBox:
Protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); if (NavigationContext.QueryString.ContainsKey("text")) { MyTextBox.Text = NavigationContext.QueryString["text"].ToString(); } }
Запустите приложение (F5) и проверьте, как оно работает, например, при переходе по ссылке со страницы MainPage на SecondPage.
Итоги и следующие шаги
Итак, мы разобрались с тем, что надо установить для разработки под Windows Phone 7, познакомились с доступными шаблонами и научились создавать новое приложение из шаблона. Также мы научились добавлять элементы управления, прямо в XAML код, добавлять в проект новые страницы и организовывать между ними переход по ссылке и в коде с возможностью передачи параметров.
На следующем шаге мы познакомимся с некоторыми вариантами разметки, доступными в Silverlight, рассмотрим основные элементы управления, а также узнаем, что такое контекст ввода для текстовых полей.
Всем привет! Вы, наверняка, уже слышали новости про то, что за первые 4 недели Windows 10 установили уже более 75 миллионов человек . В таком контексте мы особенно рады поделиться с вами вводной статьей от Арсения Печенкина из компании DataArt о том, как начать разрабатывать приложения под десятку.
Тем, кто сомневается, ставить или нет на любимую машину Windows 10, предлагаем небольшой обзор материалов о платформе, инструментах разработки и новых возможностях, доступных при разработке приложений.
Думаю, все уже знают откуда и как взять свою копию ОС Windows 10, - не станем задерживаться на этом моменте. Установка производится аналогично установке Windows 8. Если собираетесь обновить систему, настоятельно рекомендую сделать бэкап файлов с системного диска.
Инструменты
Какие инструменты для разработки можно использовать? Вам понадобится новая MS Visual Studio 2015 . Сейчас доступны бесплатная редакция Visual Studio 2015 Community Edition и платные редакции Professional и Enterprise.Какое-то время назад почти все разделы по разработке под Windows 10 вели на разделы про разработку под Windows 8.1, но после релиза документацию постепенно обновляют (с учетом того, что UWP-платформа для Windows 10 является развитием WinRT).
Online-курс в Microsoft Virtual Academy
Для тех, кто предпочитает аудио-визуальный формат знакомства с платформой, есть вводный курс: A Developer"s Guide to Windows 10 .В курсе рассказаны основные особенности платформы, моделей и инструментов, доступных для создания приложений Windows. Рассмотриваются несколько основных сценариев, которые реализуются в приложении: работа при малом объеме памяти, фоновое выполнение задач, коммуникация между устройствами, управление файлами и данными и методы взаимодействия с пользователем.
Лицензия и разблокировка устройства
Как и при разработке для Windows 8/8.1, потребуется лицензия разработчика. Она получается аналогично лицензии разработчика Windows 8/8.1 при создании первого проекта прямо в Visual Studio (это не то же самое, что аккаунт для публикации в магазине). Для установки приложений на устройства не забудьте их разблокировать:Универсальные приложения
Что нового ждет разработчика? Анонсировано, что универсальное приложение можно запустить на любой платформе Windows 10. Это реализовано через систему различных API. То есть существует слой API, общий для всех платформ (Universal Windows Platform, UWP). Если приложение использует только его возможности, оно будет работать на всех платформах c UWP.Если требуется использование специфических возможностей платформы (например, работа с аппаратными кнопками на смартфоне), то вы можете исползовать соответствующие API через платформенные расширения. Данная функциональность будет работать только на платформах, где есть эти API, поэтому в коде нужно встраивать проверки доступности соответствующих методов и классов.
Шаблоны
Из коробки в Visual Studio нам доступен только один шаблон проекта Blank App.Это проект для одностраничного универсального Windows-приложения, в котором нет предопределенных элементов управления и структуры.
Кроме стандартного шаблона, можно найти шаблоны от сообщества разработчиков .
Сейчас в коллекции представлены следующие шаблоны проектов:
- Blank App, основной проект XAML с одной страницей. Подобен стандартному Blank App, включенному в 10 SDK Windows, но без Application Insights телеметрии.
- SplitView App, многостраничный проект приложения с адаптивным SplitView-контролом.
- Composition App, проект, не использующий стандартную библиотекуи компонентов, вместо нее используется Windows.UI.Composition API,
- Composition XAML App, проект с использованием XAML и Windows.UI.Composition API.