Компиляция iOS приложений для Windows Store

599692da444fa0e8edf45ffe034fc543.png
В апреле этого года на конференции //Build был сделан очень интересный анонс, который показал возможность компиляции и сборки ObjectiveC кода для Windows Store. С радостью хочу сообщить что теперь эта технология и инструменты стали публичными, вы можете уже сейчас загрузить компоненты сборки ObjC/iOS приложений для Visual Studio 2015 и собрать приложение для Windows Store.

C чего начать

По адресу https://github.com/Microsoft/WinObjC/releases опубликован SDK который содержит компоненты для сборки приложения iOS для Windows Store. Для того чтобы попробовать их в деле вам понадобится Windows 10 и Visual Studio Community 2015. Распакуйте содержимое winobjc.zip и откройте файл samples\HelloUI\HelloUI-WinStore10.sln. Далее делаем активным проект Hello-UI-Winstore (в Solution Explorer вызвать контекстное меню, «Set as StartUP Project») и нажимаем F5.
cc678148a69e7a7b740f1908b317b57b.png

Добро пожаловать в мир кросс-компиляции ObjectiveC для Windows.

Пакет, который подготовила команда Microsoft содержит компилятор ObjectiveC, компоненты интеграции с Visual Studio 2015, основные части SDK iOS и дополнительные инструменты конвертации приложений.
C основными возможностями SDK вы можете ознакомиться из примера samples\WOCCatalog\WOCCatalog-WinStore10.sln.
967a7b1b8efac59b131c747441b8b4b8.png

В этом примере показаны основные варианты использования интерфейсных компонент:
bbc776f8c2d4ab876347114842b8fdbf.png

Взаимодействие с OpenGL:
b21020c1060953d0f2b77fde90a491c6.png

Кстати говоря, этот SDK также может собирать приложения для Windows 8.1 и Windows Phone 8.1.
641407642da39f1e89f0514b3a1804d0.png
Несколько необычно видеть стандартные интерфейсные элементы iOS на Windows Phone.

Конвертация проектов iOS

Для того чтобы превратить проект iOS в проект Visual Studio можно воспользоваться специальной утилитой \bin\vsimporter.exe.
Например, сделаем git clone https://github.com/ericjohnson/canabalt-ios.git и запустим в каталоге исходного кода этого проекта vsimporter. В результате у вас появится файл Canabalt-WinStore10.sln, открываем его в Visual Studio 2015 и собираем проект:
eaa3d71cee2c15f1cea030f4972cc993.png
Почему-то он работает повернутый на 90 градусов.

Или например:

git clone https://github.com/haqu/tweejump.git
cd tweejump
winobjc_sdk_path\bin\vsimporter.exe


Результат компиляции для Windows 10:
f332946286cbcf0da711c437c7562e6e.png

Что пока в активной разработке?

Проект WinobjC находится в активной разработке и некоторые возможности не работают:

  1. Нет поддержки ARM, только x86.
  2. Оптимизации компилятора не работают. Скорее всего они приведут к крашу clang, пока можно использовать только debug сборки.
  3. Autolayout
  4. Storyboard support
  5. MapKit
  6. AssetsLibrary
  7. AddressBook
  8. Ads
  9. Objective-C annotations
  10. Media Capture


Если у вас есть вопросы и вы хотели бы узнать больше об этом проекте, обращайтесь на форумы http://stackoverflow.com/, маркируйте свои вопросы тегом WinObjC и почитайте вики https://github.com/Microsoft/WinObjC/wiki.

© Habrahabr.ru