Как сделать приложение на windows phone. Как создать свое первое приложение для Windows Phone. Пример разработки на конструкторе Microsoft App Studio. Лицензия и разблокировка устройства
Всем привет! Что-то «понесло» меня на статьи про англоязычные ошибки, но ничего не поделать, раз в операционной системе iOS описание проблем часто происходит на родном для iPhone и iPad языке. А как быть русскоговорящему пользователю? Ничего же непонятно! Вот поэтому от подобных инструкций никуда не деться - они просто должны быть.
Итак, дано: ошибка «For assistance contact iTunes support at www.apple.com/support/itunes/ww» в iOS. Наша с вами задача: выяснить - в каких случаях она проявляется, возможные причины проблемы и что со всем этим безобразием делать? В общем, ничего нового - все как обычно:) Не будем затягивать, давайте начинать. Поехали же!
Для того, чтобы было более понятно с чем мы имеем дело, начнем с перевода:
For assistance contact iTunes support at www.apple.com/support/itunes/ww переводится как «для получения помощи обратитесь в службу поддержки iTunes: www.apple.com/support/itunes/ww».
Итак, данная ошибка может возникать:
Первый случай мы уже подробно рассмотрели, выводы сделали и в причинах разобрались - вот .
Поэтому переходим ко второму - вы пытаетесь зарегистрировать новый Apple ID и получаете предложение «For assistance contact iTunes support at www.apple.com/support/itunes/ww» - что это значит и с чем связано?
- Некорректные данные о владельце. Адрес, имя, фамилия, телефон, индекс и т.д. Все они должны быть настоящими или максимально похожими на правду.
- Проверьте электронный почтовый ящик. Вдруг данная почта уже когда-то использовалась в системе Apple? Лучше всего заведите себе новый e-mail вида «[email protected]» - с ним трудностей не возникнет.
- Проблема с платежной информацией. Просроченный срок действия, блокировка, отрицательный баланс карты. Очень важно, чтобы привязанная карта была «рабочей» и на ней присутствовали деньги.
- Несостыковки в указанных данных. Например, при регистрации американского Apple ID вы указываете русский адрес, имя, фамилию, карточку российского банка. Если уж хотите использовать американский App Store, то будьте добры притвориться жителем США.
- Проблемы с IP-адресом. На мой взгляд, у Apple существует список «подозрительных» IP адресов, которые им по каким-то причинам не нравятся. В данном случае решением будет: перезагрузить роутер, включить-выключить «авиарежим», на время регистрации подключиться к другой сети Wi-Fi.
- Сбои на серверах Apple (). Решается очень просто - либо ждем пока все не наладится, либо продолжаем с упорством нажимать кнопку «Далее». Авось регистрация и пройдет.
Впрочем есть еще один кардинальный метод решения - если с iPhone или iPad регистрация не проходит, и система навязчиво выдает сообщение «For assistance contact iTunes support at...», то для создания Apple ID можно использовать компьютер, а затем уже готовую учетную запись ввести на устройстве:
Как видите, все очень легко и просто - пара минут и проблема решена!
Но, к сожалению, компьютер под рукой есть не всегда. И если на устройстве (несмотря на все манипуляции и советы) все равно постоянно появляется предложение «For assistance contact...», то, на мой взгляд, сопротивляться уже не стоит - потратьте несколько минут времени и
Недавно со мной произошла удивительная история c неавторизованными покупками, перепиской со службой поддержки iTunes Store и счастливой концовкой. Поэтому мне хотелось бы рассказать о том, как не попасть в подобную ситуацию и что делать, если вы оказались на моем месте. Но для начала небольшая предыстория.
Как-то в конце июня при попытке обновить или загрузить программы из App Store я получил сообщение следующего содержания:
This Apple ID has been disabled for security reasons. Visit iForgot to reset your account (http://iforgot.apple.com)
Активация аккаунта по указанному адресу заняла всего пару минут, после чего я успешно забыл о проблеме, даже не попытавшись найти причину её возникновения, и продолжил работать с магазином приложений для iOS в обычном режиме, а зря. Забегая вперед добавлю, что подобная блокировка может произойти автоматически - после определенного количества неправильных попыток ввода пароля от вашего Apple ID.
После этого прошло ровно две недели и именно в тот момент, когда на протяжении двух суток у меня не было интернета, какой-то нехороший человек загрузил из App Store от моего имени приложение (вариацию покера), после чего совершил в приложении покупку предмета непонятного назначения со странным названием «15M chips» за 20$:
Внимательный читатель несомненно задастся вопросом, насколько простой пароль у меня был выбран? Отвечу: не такой уж простой и он подходил под требования, описанные чуть ниже (когда-то генерировался с помощью pwgen). Я до сих пор теряюсь в догадках.
Вместе с платежной квитанцией ко мне пришло еще два письма. В них значилось, что эти покупки осуществлялись с компьютера, который прежде не был ассоциирован с моим Apple ID, а также предложено как можно скорей сменить пароль:
Хочу предостеречь пользователей: если вы оказались в подобной ситуации, ни за что не загружайте приложение из праздного любопытства - это будет еще одним подтверждением вашей правоты.
Особую пикантность ситуации придавало то, что я на дух не переношу азартные игры, особенно покер:-) Неприятный момент, но зато сразу стали понятны причины июньской блокировки аккаунта.
Спектр мнений, полученных при беглом опросе друзей, был достаточно широк: кто-то говорил, что стоит непременно писать в службу поддержки iTunes Store, а кто-то - что за 20$ Apple нарягаться не станет. Как оказалось, станет.
Входе путешествия по ссылкам «Report a problem» меня перекинуло на форму контакта , где я заполнил соответствующие поля, в выпадающем списке «Specific request» выбрал пункт «I have unauthorized purchases on my account», указал «Order number» (он находится в платежной квитанции) и не забыл подробно описать детали.
Поскольку у меня американский Apple ID, писать письмо и общаться со службой поддержки пришлось на английском. Так что если у вас проблемы с иностранным языком, я рекомендую перед отправкой письма дать его кому-нибудь прочитать и поправить.
К сожалению, ответ на первое обращение в течение обещанных 24 часов не пришел. Не почтили меня вниманием и на второй день, поэтому я просто заново оформил заявку и уже через несколько часов читал первое письмо от очень вежливого сотрудника iTunes Store Customer Support по имени Ранжит (Ranjit).
Дабы злоумышленники (кто бы они ни были) не купили еще чего-нибудь, Ранжит временно отключил возможность загрузки для моего Apple ID и сообщил, что In-App Purchase без моего согласия является исключением из правил предоставления услуг в магазинах Apple и, следовательно, я могу рассчитывать на возврат денег, который должен произойти в течение 5-7 банковских дней (хотя все прошло гораздо быстрей). Также, в письме было указано, что я могу не увидеть вернувшихся денег пока не выйду и снова не зайду в свой аккаунт.
Есть еще один нюанс: деньги были списаны со Store Credit, который появляется после пополнения аккаунта Gift-картой. И неизвестно, чем бы закончилась история, если бы возврат пришлось делать на кредитную карту с моим настоящим адресом. На 99% уверен, что аккаунт бы просто забанили.
Мой Apple ID был заблокирован не полностью: я не мог загружать приложения, но в «личный кабинет» входил без проблем. И чтобы выполнить полную активацию пришлось написать Ранжиту еще одно письмо.
В нем необходимо было указав платежный адрес (billing address), привязанный к учетной записи, и что-то одно на выбор:
- Order number самой последней покупки или бесплатной загрузки (его можно посмотреть в iTunes - раздел «Most Recent Purchase»).
- Либо название какого-нибудь приложения, которое я когда-либо загружал с этим аккаунтом.
Настоящему владельцу Apple ID не составит труда ответить на эти вопросы. Также, я не указывал свой телефон, но если с вами захотят поговорить вживую - стоит сказать, что в данный момент вы находитесь за границей и поэтому тот номер уже не используете (в США, насколько я знаю, есть практика повторно использовать старые телефонные номера).
Напоследок мой помощник из службы поддержки iTunes Store в очередной раз настоятельно посоветовал сменить пароль (что я к тому моменту уже успел сделал) и дал ссылку на (англ.) из базы знаний Apple, в которой описаны некоторые приемы по обеспечению безопасности вашей учетной записи.
Приведу из неё несколько интересных моментов. Во-первых, Apple рекомендует выходить из iTunes/App/Mac App Store всякий раз, как вы закончили там совершать покупки. Во-вторых, при установке пароля пользователь может воспользоваться такими рекомендациями:
- Не использовать один и тот же пароль для нескольких учетных записей или пароль, совпадающий с именем аккаунта.
- Не использовать предыдущие пароли.
- Никому не говорить пароль от Apple ID и ответ на секретный вопрос, даже членам своей семьи. Причем ответ на секретный вопрос должен быть неочевидным, чтобы его сложнее было подобрать.
- Время от времени изменять пароль, чтобы уменьшить риск попадания в ситуацию, аналогичную моей.
Да и сам пароль должен быть не менее 8 символов в длину, содержать как минимум одну цифру, одну прописную, одну строчную букву (можно добавить еще какой-нибудь знак для уверенности, например, @ $ !) и не содержать трех одинаковых последовательных символов.
В диалоге 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, рассмотрим основные элементы управления, а также узнаем, что такое контекст ввода для текстовых полей.
Последнее обновление: 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 . Однако можно выбрать и один из эмуляторов, если они уже установлены.
При запуске приложения на смартфоне важно, чтобы смартфон не находился в состоянии блокировки. Итак, запустим:
Введем в текстовое поле какое-нибудь число и нажмем на кнопку:
При тестировании через смартфон важно помнить, что при запуске приложение автоматически устанавливается на телефон, и мы можем его найти в списке всех приложений:
И при необходимости потом, отключившись от компьютера, также сможем его запустить, либо удалить.
На этом создание первого приложения завершено.
Прежде чем приступить к знакомству с возможностями платформы и разработке приложений, необходимо убедиться, что у нас есть весь необходимый инструментарий и разобраться с некоторыми основами разработки.
Инструментарий
Visual Studio 2010
Чтобы разрабатывать для Windows Phone потребуется Visual Studio 2010 c Service Pack 1 редакции Professional или выше. Если у вас нет Visual Studio 2010, при установке инструментария разработки для Windows Phone, автоматически будет установлена бесплатная версия Visual Studio 2010 Express for Windows Phone, на которой также можно разрабатывать приложения под Windows Phone.
Обе версии интегрированных средств разработки Visual Studio предоставляют разработчику полноценные возможности отладки на устройстве и эмуляторе, такие же, как у разработчиков приложений под настольную версию Windows.
Обратите внимание, что для того, чтобы отлаживаться на устройстве, помимо собственно устройства и кабеля для подключения к компьютеру, необходимо иметь установленное на компьютере со средствами разработки ПО Zune (http://zune.net). Также перед развертыванием приложения и отладкой, требуется зарегистрировать устройство («разлочить» его), используя утилиту Windows Phone Developer Registration Tool, которая устанавливается вместе с Windows Phone SDK.
Windows Phone SDK
Этот пакет, доступный для скачивания на сайте App Hub http://create.msdn.com содержит всё необходимое, для того, чтобы начать разработку. На момент написания этой статьи, последняя версия инструментария доступна в версии Windows Phone SDK 7.1 Release Candidate в лицензии «Go Live» с возможностью разрабатывать свои приложения и публиковать их в Windows Phone Marketplace. Windows Phone SDK 7.1 Release Candidate содержит следующие компоненты:
- Windows Phone SDK 7.1
- Windows Phone Emulator
- Windows Phone SDK 7.1 Assemblies
- Silverlight 4 SDK and DRT
- Windows Phone SDK 7.1 Extensions for XNA Game Studio 4.0
- Expression Blend SDK for Windows Phone 7
- Expression Blend SDK for Windows Phone OS 7.1
- WCF Data Services Client for Windows Phone
- Microsoft Advertising SDK for Windows Phone
Если у вас не установлена версия Visual Studio 2010 редакции Professional, Expression Bland 4 или XNA Game Studio 4.0, в процессе установки также будут скачаны и установлены:
- Visual Studio 2010 Express for Windows Phone
- Expression Blend 4 for Windows Phone
- XNA Game Studio 4.0
Expression Blend и Expression Blend for Windows Phone
Expression Blend – это интерактивный визуальный дизайнер для XAML, технологии описания интерфейса для приложений Silverlight и Windows Presentation Foundation (WPF). Это отличное средство разработки, которое позволяет просто манипулировать слоями, анимацией, стилями и шаблонами. Это базовое средство разработки на XAML. Собственно программа Expression Blend не бесплатна, однако специальная версия для создания дизайнов приложений под Windows Phone под названием Expression Blend 4 for Windows Phone доступна для разработчиков бесплатно. Она закачается и установится в процессе установки Windows Phone SDK, если у вас на компьютере нет полной версии Expression Blend. Подробнее об Expression Blend 4 можно прочитать на MSDN:
XNA Game Studio 4.0
Windows Phone Emulator
Несмотря на то, что Windows Phone Emulator не содержит полного набора приложений, доступных на реальном устройстве, он предоставляет мощную среду, позволяющую практически полностью разработать приложение в эмуляторе.
Эмулятор Windows Phone Emulator не поддерживает проигрывание медиаконтента Zune. Эмулятор поставляется только с одним встроенным приложением Internet Explorer, но это Internet Explorer 9 с поддержкой HTML5.
При этом эмулятор позволяет тестировать звонки и отсылку SMS-сообщений, поддерживает мультитач на мониторах с его поддержкой, поддерживает симуляцию камеры, геолокационных сервисов и акселерометра, а также позволят делать снимки экрана.
Дополнительный инструментарий разработчика
Windows Phone Developer Registration Tool
Windows Phone Profiler
Windows Phone Profiler доступен в меню Debug Visual Studio с установленным инструментарием Windows Phone SDK.
Silverlight Toolkit for Windows Phone – набор полезных элементов управления Silverlight для Windows Phone с поддержкой режима дизайна, от команды разработчиков Silverlight. Доступен весь исходный код, примеры и документация. Обновляется приблизительно раз в три месяца, доступен по адресу http://silverlight.codeplex.com или через NuGet.
Текущий релиз включает в себя такие элементы управления, как ContextMenu, DatePicker и TimePicker, ToggleSwitch, WrapPanel и GestureHelper.
Среда разработки
После установки средств разработки Windows Phone SDK в диалоге New Project в Visual Studio появятся группы проектов для Silverlight for Windows Phone:
и в группе XNA Game Studio 4.0 добавятся проекты для Windows Phone:
Этот цикл статьей сфокусирован на разработке под Windows Phone на Silverlight, поэтому рассмотрим доступные разработчику приложений шаблоны несколько более подробно.
После установки разработчик получает в свое распоряжение следующие шаблоны приложений Silverlight for Windows Phone:
- Windows Phone Application
- Windows Phone Databound Application
- Windows Phone Class Library
- Windows Phone Silverlight and XNA Application
Перед тем как перейти непосредственно к шаблонам приложений, надо сказать несколько слов по поводу Windows Phone и Windows 8-style UI.
Windows Phone и Windows 8-style UI
Windows Phone – это не просто очередная платформа для мобильных устройств. Она содержит в себе не только технологическую составляющую, но и полностью проработанную концепцию дизайна интерфейса и взаимодействия с пользователем под названием Windows 8-style UI или стиль Windows 8-style UI.
Если вы дизайнер или в вашей команде есть выделенный дизайнер, вы можете воспользоваться всей мощью инструментария Expression Blend 4 или Expression Blend for Windows Phone, которая поставляется вместе с Windows Phone SDK.
Что же делать если вы разработчик и не хотите заниматься визуальным дизайном приложения, например, вы разрабатываете бизнес-приложение и всё что от него требуется, соответствовать общему дизайну и стилю Windows Phone?
Всё очень просто. Во-первых, Silverlight для телефона разработан с учетом требований Windows 8-style UI, поэтому все встроенные элементы управления выполнены в стиле Windows 8-style UI. Во-вторых, по умолчанию, приложения, созданные из шаблонов из поставки Windows Phone SDK, работают, выглядят и используют стили и шрифты в соответствии с Windows 8-style UI.
С другой стороны, возможностей стилизации элементов управления и приложений, основанных на XAML, которые представляет Silverlight, вполне достаточно, чтобы сделать свое приложение неповторимым и узнаваемым, оставаясь в рамках стиля Windows 8-style UI.
Руководство по дизайну интерфейсов и взаимодействию с пользователем для Windows Phone можно найти по следующей ссылке
Всё что было сказано выше относится, конечно, к дизайну обычных приложений, так как требования к дизайну игровых приложений и их интерфейсу, могут существенно отличаться. При этом не надо забывать об общих принципах взаимодействия с пользователем, заложенных в концепции Windows Phone.
Шаблоны приложений
Сначала давайте рассмотрим три шаблона, представляющих собой три основных стиля приложения для Windows Phone:
- Windows Phone Application
- Windows Phone Pivot Application
- Windows Phone Panorama Application
Windows Phone Application – это аналог простого диалогового приложения, имеющего один основной экран, через который происходит основное взаимодействие с пользователем.
Windows Phone Pivot Application – это некий аналог приложения с закладками, где заголовок каждой закладки определяет содержимое. Стандартный вариант использования – каждая закладка представляет собой одни и те же, в целом, данные, но в разных представлениях и/или с разной фильтрацией. Например, календарь, почтовый клиент и настройки телефона. Шаблон использует элемент управления Pivot.
Windows Phone Panorama Application – приложение-панорама, в котором зоны взаимодействия с пользователем также разделены на панели, но доступны они через горизонтальную прокрутку; фоновое изображение установлено сразу на всю панораму, она имеет общий заголовок, который прокручивается медленнее, чем панели; контент соседней панели справа виден при отображении текущей. Например, таким образом реализованы хабы в Windows Phone: People, Marketplace, Pictures, Music+Videos и др. Шаблон использует элемент управления Panorama.
Шаблоны, заканчивающиеся на Agent – это шаблоны библиотек, для выполнения соответствующих фоновых задач:
- Windows Phone Audio Playback Agent
- Windows Phone Audio Streaming Agent
- Windows Phone Scheduled Task Agent
Шаблон Windows Phone Databound Application – простой шаблон приложения со списком – детальное представление с реализацией навигации между страницами с передачей параметров и хранением данных в глобальном ViewModel.
Шаблон Windows Phone Class Library – шаблон библиотеки классов для Windows Phone.
Шаблон Windows Phone Silverlight and XNA Application для Silverlight приложения, которое может использовать XNA для рендеринга графического контента.