Статьи

Перенос приложений iOS на Windows Phone

С момента своего объявления более года назад Windows Phone вызвал значительный интерес со стороны сообщества разработчиков. Многие уже разработали для iOS и пытаются портировать свои приложения на Windows Phone. Хотя для этого может потребоваться изучение нового набора инструментов, технологий и API-интерфейсов, реальность такова, что путь миграции уже пройден и полон полезных ресурсов. В этой статье мы рассмотрим некоторые сходства и различия между платформами, а также то, как вы можете использовать инструменты разработчика и дизайнера, чтобы помочь вам перенести ваше приложение на Windows Phone.

Пользовательский интерфейс

Одним из наиболее важных аспектов обеих платформ является то, что пользователь является королем, что напрямую связано с тем, чтобы платформа и все приложения, работающие на ней, были ориентированы на пользователя. И iOS, и ограничения, наложенные одобрением AppStore, и Windows Phone, через требования сертификации Marketplace, побуждают пользователей создавать высокочувствительные приложения, которые не выходят из строя или дают сбой при нормальной работе. Они также предоставляют руководство по стилю и взаимодействию с пользователем, опять же, чтобы позволить пользователям создавать приложения, которые выглядят так, как будто они принадлежат платформе.

Windows Phone имеет свой дифференцированный стиль. Ведущая языком дизайна Metro, платформа Windows Phone использует красивую типографику, узнаваемые и значимые значки, а также креативное и содержательное размещение контента. Важно, что платформа также позволяет этому контенту дышать и оживать благодаря использованию пространства и анимации.

Start, Hubs и Pivot

В отличие от iOS, где все начинается с домашней области, состоящей из приложений и папок, Windows Phone Start содержит массив Live Tiles (рисунок 1). Вместо того, чтобы быть просто механизмом для отслеживания и запуска своих любимых приложений, содержимое Live Tile можно динамически обновлять, чтобы отражать текущее состояние приложения. Например, на рисунке 1 плитка сообщений была обновлена, чтобы указать, что есть два непрочитанных сообщения, плитка людей была обновлена ​​изображениями некоторых контактов на телефоне, а плитка календаря содержит информацию о следующей встрече.

iOS to WP Рисунок 1

фигура 1

Start предназначен для того, чтобы пользователи могли входить, получать то, что им нужно, и выходить снова, без необходимости открывать приложения. Windows Phone 7.5 позволит пользователям прикреплять различные части приложения к Пуску. Например, приложение агрегации новостей позволит пользователю прикрепить один или несколько каналов к началу, что позволит им быстро перейти к чтению этого канала в приложении. Эти плитки также могут динамически обновляться либо через уведомление, отправляемое из облака, либо через фоновый агент, который можно использовать для периодической проверки наличия обновлений. Живые плитки являются одной из характерных черт Windows Phone, и поэтому вам следует подумать, какой аспект или, возможно, несколько аспектов вашего приложения будет иметь смысл отображать при запуске .

С самого начала пользовательский интерфейс Windows Phone включает в себя ряд концентраторов, которые являются точками агрегации для данных на базовой платформе. Встроенные хабы: Люди, Картинки, Музыка и видео, Офис, Игры и Рынок. Если вы посмотрите на концентратор People (рисунок 2), то увидите, что это панорама, в которой реальный телефон выступает в качестве окна просмотра, позволяя пользователю прокручивать по горизонтали, чтобы узнать больше контента.

iOS для WP Рисунок 2

фигура 2

Одна из важных вещей, которую следует отметить в отношении хаба или панорамного взаимодействия, заключается в том, что его лучше всего использовать для агрегирования данных из нескольких источников данных. В случае центра People контактная информация может поступать от ряда служб, таких как Facebook и Twitter, а также от пользователей Exchange или почтовой учетной записи. Кроме того, весь пользовательский опыт не должен быть объединен в одну Панораму. В Панораме должны быть выделены главные элементы, избранное и т. Д., Что позволяет пользователю углубляться в детали, чтобы получить больше деталей.

Еще одна уникальная функция интерфейса — это сводная таблица, которая используется для разделения отдельного набора данных, чтобы пользователю было легче находить интересующую его информацию. Элемент управления Pivot используется для представления информации в более плотной конфигурации. мода. Например, Outlook Mobile на Windows Phone использует элемент управления Pivot. На рис. 3 показана информационная карточка для контакта в центре People, где различные аспекты контакта разбиты по разным элементам Pivot.

iOS для WP Рисунок 3

Рисунок 3

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

Вместо того, чтобы разбрызгивать элементы управления навигацией, такие как стрелки, по всему интерфейсу, Windows Phone фокусируется на демонстрации контента и использовании того же контента, чтобы позволить пользователю перемещаться по платформе . Например, в разделе «Люди» изображения профиля в недавнем списке позволяют пользователю перейти на информационную карту для этих контактов.

В интерфейсе Windows Phone отсутствует визуальный беспорядок, который составляет так много других мобильных платформ, обеспечивая гораздо более чистый интерфейс. Это все о контенте над хромом. В интерфейсе нет ни стрелки «Назад», ни программных кнопок для навигации, поскольку все устройства Windows Phone должны иметь аппаратную кнопку «Назад» на передней панели устройства. Одно только это дизайнерское решение позволяет приложению вернуть значительную часть экрана, которая в противном случае была бы занята стрелкой «Назад» или панелью навигации.

Кнопка «Назад» не только позволяет пользователю перемещаться назад по списку открытых приложений, но также перемещает пользователя назад по страницам отдельного приложения. Это все вместе известно как задний стек. В Windows Phone 7.5 функциональность кнопки «Назад» была расширена для быстрого переключения приложений. При кратковременном нажатии и удерживании кнопки «Назад» отображается переключатель приложений, рисунок 4, позволяющий пользователю быстро вернуться к любому приложению, которое в данный момент работает.

iOS to WP Рисунок 4

Рисунок 4

В дополнение к кнопке «Назад» есть две другие кнопки, которые должны быть на всех устройствах Windows Phone на лицевой стороне устройства. Это кнопки «Пуск» и «Поиск», которые перемещают пользователя в режим поиска «Пуск» и «Bing» соответственно. Хотя приложение не может перехватывать или интегрировать эти кнопки напрямую, Windows Phone 7.5 предоставляет возможность подключения к Bing Search через App Connect. Это позволяет приложению расширять возможности поиска, позволяя пользователю переходить от результатов поиска к приложению.

Многие приложения, разработанные для iOS, используют панель вкладок для перемещения между различными областями в приложении. Не существует прямого эквивалента для приложений Windows Phone; Вместо этого разработчикам приложений рекомендуется вносить небольшие изменения в архитектуру своего приложения, чтобы использовать опыт концентратора для агрегирования информации с каждой из эквивалентных вкладок iOS, а затем переходить к представлениям сводных страниц и страниц по мере необходимости для получения более подробной информации. Затем пользователь может щелкнуть содержимое на концентраторе, чтобы получить более подробную информацию об этом содержимом или получить доступ к другим областям приложения.

Панель приложений обеспечивает единообразное представление действий, доступных пользователю в контексте страницы. Например, в приложении Bing Search, показанном на рисунке 5, кнопки значков Music, Vision и Voice позволяют пользователю запускать поиск музыки, поиск на основе сканирования штрих-кодов или MS-тега через камеру или из аудиозахвата соответственно. , На левом изображении панель приложения имеет вид по умолчанию, видны только кнопки значков; правое изображение показывает, что это расширено с дополнительными видимыми пунктами меню. Пункты меню — это механизм для предоставления пользователю дополнительных, менее частых действий.

iOS для WP Рисунок 5

Рисунок 5

Жизненный цикл приложения

Существует распространенное заблуждение, что в Windows Phone нет многозадачности, а в iOS — нет. На самом деле вы можете утверждать, что оба выполняют многозадачность или что не многозадачность, в зависимости от вашего определения многозадачности. В отличие от таких платформ, как Windows Mobile (предшественник Windows Phone) или Android, ни iOS, ни Windows Phone фактически не поддерживают многозадачность приложений. Только одно приложение может выполняться или быть активным на переднем плане в любой момент времени, а когда приложение переходит в фоновый режим, оно приостанавливается. Однако обе платформы позволяют открывать несколько приложений и сохраняют свое состояние при перемещении пользователя между приложениями.

Разработчикам приложений важно понимать жизненный цикл приложения Windows Phone, в частности, что происходит, когда приложение переходит в фоновый режим, а затем, когда оно возвращается на передний план. Существует четыре события уровня приложения, которые возникают при запуске приложения (запуск), отправке в фоновый режим (деактивировано), возвращении на передний план (активация) или закрытии (закрытие). Как и в случае с iOS, после отправки приложения в фоновый режим оно не обязательно может вернуться на передний план.

Когда приложение Windows Phone 7.5 отправляется в фоновый режим, платформа будет хранить приложение в памяти как можно дольше. Если устройству не хватит памяти, платформа будет прерывать приостановленные приложения, сохраняя при этом информацию о состоянии, в котором находились эти приложения. Эти приложения по-прежнему доступны пользователю для переключения или возврата к нему. Однако вместо простой повторной активации приложение придется запускать заново, возвращая пользователя на страницу приложения, в которой он находился. Платформа также восстановит любую информацию о состоянии, сохраненную приложением в словарях состояния приложения или страницы. Приложение отвечает за получение информации о состоянии из этих словарей и восстановление состояния страниц в приложении. Это также называется «надгробие».

управления

У Windows Phone очень уникальный стиль, совместимый с основной платформой. Элементы управления, поставляемые с Windows Phone SDK, были разработаны таким образом, чтобы поддерживать эту согласованность. Это включает в себя как основные элементы управления, такие как TextBlock, TextBox и панель приложений, так и более сложные элементы управления, такие как элементы управления Panorama, Pivot и Map.

В дополнение к элементам управления, которые поставляются с SDK, Microsoft также опубликовала дополнительные элементы управления с помощью набора инструментов Silverlight для Windows Phone. Они доступны для любого разработчика Windows Phone для использования в их приложении, в комплекте с исходным кодом. Опять же, эти элементы управления были разработаны и стилизованы так, чтобы соответствовать встроенным элементам управления базовой платформы .

Стили, Ресурсы и Темы

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

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

Windows Phone также поддерживает две настройки темы. Пользователь может выбирать между темными (белый текст на черном фоне) или светлыми (черный текст на белом фоне) темами и может выбрать цвет Accent, который используется для выделения важной информации на всей платформе. Приложения, созданные для Windows Phone, должны корректно работать во всех настройках темы. К счастью, это легко сделать, используя повторно встроенные ресурсы.

Всплывающее уведомление

Ранее вы видели, что одной из функций подписи платформы Windows Phone являются Live Tiles, которые можно прикрепить к Start. Эти плитки могут обновляться самим приложением при его запуске, через фонового агента или с помощью уведомления плитки, отправляемого на телефон. На самом деле есть три типа push-уведомлений :

  1. Плитка

    Уведомления листов используются для обновления Живой плитки, связанной с приложением Windows Phone. В первоначальном выпуске Windows Phone Live Tiles поддерживались только фоновое изображение, заголовок и значок / счетчик на лицевой стороне плитки. В Windows Phone 7.5 добавлена ​​поддержка обратной стороны плитки, которая также включает изображение и два текстовых атрибута. Все эти атрибуты могут быть обновлены с помощью уведомления плитки.

  2. Тост

    Уведомления Toast отображаются для пользователя в стиле, аналогичном входящему SMS, в верхней части устройства в виде наложения поверх любого приложения, которое в данный момент находится на переднем плане. Пользователь может проигнорировать или отклонить сообщение, либо он может щелкнуть сообщение. В последнем случае будет запущено приложение, которому принадлежит тост-сообщение. Windows Phone 7.5 предоставляет возможность глубокой ссылки из всплывающего уведомления, что означает, что пользователь может перейти непосредственно к странице в приложении, а не к домашней или главной странице.

    Если на переднем плане оказывается приложение, к которому относится тостовое сообщение, событие будет вызвано внутри приложения без отображения сообщения пользователю. Это позволяет приложению определять, как сообщение представляется пользователю.

  3. необработанный

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

Картинки

В отличие от устройств iOS, которые имеют только один фиксированный размер, физический размер устройств Windows Phone может варьироваться в зависимости от производителя. Тем не менее, разрешение всех устройств Windows Phone составляет 480 x 800. Это разрешение лежит между низким разрешением на более ранних iPhone и более высоким разрешением iPhone 4. Важно отметить, что разрешение не имеет такое же соотношение сторон, как у iPhone. При переносе приложения с iOS на Windows Phone ресурсы изображений, скорее всего, необходимо будет изменить. Возможно, их также придется обрезать или отрегулировать, чтобы адаптировать к разным форматам экрана Windows Phone.

инструменты

В дополнение к обеспечению отличного опыта для пользователей Windows Phone, Microsoft приложила большие усилия, чтобы предоставить удивительные инструменты разработки для создания приложений для платформы. Есть два инструмента, которые можно загрузить с http://create.msdn.com и которые работают с одним и тем же решением и структурой проекта, что позволяет разработчикам и дизайнерам работать рука об руку.

Visual Studio

Visual Studio 2010 является лучшей в своем классе IDE для разработки приложений для Windows Phone. Он обеспечивает элементарный опыт проектирования приложений в сочетании с высокопроизводительным редактором кода. Разработчики могут писать приложения на C # или VB.NET, а макеты страниц и элементов управления определяются в XAML (особый формат XML, определенный для приложений WPF, Silverlight и Windows Phone).

Выражение смесь

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

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

Архитектура, Узоры и Каркасы

При переносе приложения с iOS на Windows Phone одним из первых действий является проработка визуальной архитектуры приложения. Под этим мы имеем в виду, как приложение разбивается на страницы. Некоторые приложения имеют только пару страниц; некоторые из них имеют более десятка страниц, в зависимости от сложности приложения.

Есть некоторые особенности Windows Phone, которые следует учитывать при разработке приложения.

  • Приложение Windows Phone обычно состоит из домашней или главной страницы, с которой вытекает остальная часть приложения.
  • Домашняя страница или главная страница часто использует элемент управления Panorama, чтобы получить общее представление обо всем приложении.
  • Вместо того, чтобы создавать перекрестные ссылки между различными областями приложения, приложения Windows Phone часто полагаются на клавишу «Назад», чтобы вернуть пользователя на домашнюю страницу или на главную страницу, чтобы они могли переключаться в другую область приложения.
  • Существуют случаи, когда пользователь может перейти по ссылке на другую страницу приложения из закрепленной Live Tile, а не запускать приложение с домашней или главной страницы. В этих случаях вы можете рассмотреть возможность использования кнопки «Домой», чтобы позволить им вернуться на главную страницу или на главную страницу.

Шаблоны проектов

Visual Studio и Expression Blend поставляются с рядом шаблонов проектов для создания приложений Windows Phone. Существуют шаблоны, демонстрирующие привязку данных, элемент управления Panorama и способы использования фоновых агентов, представленные в Windows Phone 7.5. Это отличные примеры того, как вы можете создавать различные приложения для Windows Phone. В Silverlight Toolkit для Windows Phone также есть пример приложения, которое также полезно для ознакомления с этим инструментарием.

Привязка данных и MVVM

Одним из наиболее мощных методов создания приложений для Windows Phone является привязка данных. Привязка данных может использоваться для подключения данных к пользовательскому интерфейсу, обычно декларативным способом. Таким же образом, как вы объявляете макет вашей страницы в XAML, вы можете объявить, какие атрибуты вы хотите, чтобы данные связывались с различными свойствами объекта данных источника (также известного как DataContext). Во время выполнения вы устанавливаете контекст данных страницы или, альтернативно, элемент управления на странице, который активирует структуру привязки данных. По умолчанию привязка данных является односторонней, что означает, что пользовательский интерфейс будет обновляться на основе изменений в базовых данных. Однако для элементов управления вводом вы можете изменить его на двунаправленный или двухсторонний, что позволит обновлять базовые данные при изменении элементов управления вводом.

Расширением концепции привязки данных является шаблон Model-View-ViewModel. Этот шаблон относительно прост в том, что у вас есть модель данных (модель), макет страницы (представление) и класс, представляющий текущее состояние страницы (модель представления). Привязка данных используется для соединения View с ViewModel. Поскольку ViewModel содержит свойства, которые представляют состояние View, его можно протестировать с помощью модульного и интеграционного тестирования, чтобы проверить поведение приложения.

MVVMLite, CaliburnMicro, WindowsPhoneMVC

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

  • MVVMLite
  • CaliburnMicro
  • WindowsPhoneMVC

Windows Azure Toolkit для Windows Phone

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

Microsoft недавно выпустила Windows Azure Toolkit для Windows Phone, а также соответствующий инструментарий для iOS и Android, который помогает разработчикам подключать свои приложения к Windows Azure . Инструментарий демонстрирует, как использовать службы членства ASP.NET или ACS для аутентификации пользователей, хранилища BLOB-объектов, таблиц и очередей для сохранения данных в облаке и, наконец, как отправлять уведомления как Tile, так и Toast.

Картографические ресурсы

Microsoft также усердно работает над предоставлением ряда сетевых ресурсов для переноса приложений с iOS на Windows Phone. Они включают в себя серию постов в блоге, охватывающих ряд областей для рассмотрения:

Глава 1: Платформа Windows Phone представлена ​​разработчикам приложений для iPhone
Глава 2: новая парадигма пользовательского интерфейса
Глава 3: Инструменты разработчика и дизайнера, представленные разработчикам приложений для iPhone
Глава 4: Программирование на C #, представленное программистам на Objective-C
Глава 5: Формат изображения Особенности миграции приложений iPhone на Windows Phone
Глава 6: Различия жизненного цикла приложения между Windows Phone и iPhone
Глава 7. Переход с iPhone на Windows Phone.
Глава 8. Введение в уведомления Windows Phone для разработчиков iPhone

Они также создали API Mapping Tool, который можно использовать для решения конкретных проблем, с которыми часто сталкиваются при переносе приложения iOS на Windows Phone. Начиная с iOS API, вы можете развернуть и найти ссылки и информацию о том, как лучше всего перенести эту часть вашего приложения на Windows Phone.

Инструмент сопоставления и другие ресурсы для помощи в переносе приложений с iOS на Windows Phone можно найти в разделе «Совместимость с Windows Phone».

Зачем переходить на Windows Phone?

Переместив ваше приложение на Windows Phone, вы сразу же открываете другой рынок, через который вы можете продавать свое приложение. С Windows Phone 7.5 у вас есть доступ к большему количеству рынков и большему количеству языков, на которые вы можете ориентироваться. Ваше приложение может быть бесплатным или платным, и есть несколько вариантов получения денег с помощью рекламы в приложении. Microsoft выпустила SDK для своего AdCenter, но в настоящее время это ограничено несколькими рынками. Для других рынков есть другая альтернатива, такая как AdMob, которая имеет SDK для Windows Phone.

Другая причина перехода на Windows Phone заключается в том, что это удивительная платформа для создания новых функций. Visual Studio и Expression Blend в совокупности позволяют разработчикам приложений быстро добавлять и изменять функции, облегчая реагирование на отзывы клиентов. Улучшения в Windows Phone Marketplace дают разработчикам полный контроль над тем, когда они выпускают приложения на рынок, когда доступны обновления и даже распространяют тестовые версии своих приложений. Все это делает Windows Phone отличной платформой для инноваций и выхода на рынок с новыми функциями.

Контент-партнер SitePoint

Это руководство стало возможным благодаря поддержке Microsoft. В сотрудничестве с Microsoft и независимо написанной SitePoint, мы стремимся работать вместе, чтобы разработать наиболее полезный и актуальный для вас контент.