![](https://habrastorage.org/getpro/habr/post_images/599/692/da4/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.
![](https://habrastorage.org/getpro/habr/post_images/cc6/781/48a/cc678148a69e7a7b740f1908b317b57b.png)
Добро пожаловать в мир кросс-компиляции ObjectiveC для Windows.
Пакет, который подготовила команда Microsoft содержит компилятор ObjectiveC, компоненты интеграции с Visual Studio 2015, основные части SDK iOS и дополнительные инструменты конвертации приложений.
C основными возможностями SDK вы можете ознакомиться из примера samples\WOCCatalog\WOCCatalog-WinStore10.sln.
![](https://habrastorage.org/getpro/habr/post_images/967/a7b/1b8/967a7b1b8efac59b131c747441b8b4b8.png)
В этом примере показаны основные варианты использования интерфейсных компонент:
![](https://habrastorage.org/getpro/habr/post_images/bbc/776/f8c/bbc776f8c2d4ab876347114842b8fdbf.png)
Взаимодействие с OpenGL:
![](https://habrastorage.org/getpro/habr/post_images/b21/020/c10/b21020c1060953d0f2b77fde90a491c6.png)
Кстати говоря, этот SDK также может собирать приложения для Windows 8.1 и Windows Phone 8.1.
![](https://habrastorage.org/getpro/habr/post_images/641/407/642/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 и собираем проект:
![](https://habrastorage.org/getpro/habr/post_images/eaa/3d7/1ce/eaa3d71cee2c15f1cea030f4972cc993.png)
Почему-то он работает повернутый на 90 градусов.
Или например:
git clone https://github.com/haqu/tweejump.git
cd tweejump
winobjc_sdk_path\bin\vsimporter.exe
Результат компиляции для Windows 10:
![](https://habrastorage.org/getpro/habr/post_images/f33/294/628/f332946286cbcf0da711c437c7562e6e.png)
Что пока в активной разработке?
Проект WinobjC находится в активной разработке и некоторые возможности не работают:
- Нет поддержки ARM, только x86.
- Оптимизации компилятора не работают. Скорее всего они приведут к крашу clang, пока можно использовать только debug сборки.
- Autolayout
- Storyboard support
- MapKit
- AssetsLibrary
- AddressBook
- Ads
- Objective-C annotations
- Media Capture
Если у вас есть вопросы и вы хотели бы узнать больше об этом проекте, обращайтесь на форумы http://stackoverflow.com/, маркируйте свои вопросы тегом WinObjC и почитайте вики https://github.com/Microsoft/WinObjC/wiki.