Что именно Haxe экспортирует для iphone / ipads?

Я думаю об изучении Haxe после обширного опыта as3 и некоторых javascript / nodejs, но несколько человек заявили, что haxe компилируется в swf и инкапсулирует его для запуска на «вставьте платформу сюда», что делает его несовместимым с некоторыми собственными функциями и со значительными накладные расходы.

Мне интересно знать об ipad / iphone конкретно. Это как-то компилируется в формат, совместимый с такими устройствами Apple? Я имею в виду, переводится ли он в x-code, а затем компилируется или как?

У меня есть разные клиенты, которым нужны кроссплатформенные версии одного и того же приложения, и Haxe выглядит как простое и элегантное решение, но поскольку мои клиенты из США, продукты Apple вызывают у меня беспокойство.

Мой объем проектов вращается вокруг простых приложений с серверными службами и, возможно, некоторых действий с веб-камерой / микрофоном, если это поможет для ответа. Ваше здоровье.


person Discipol    schedule 21.01.2014    source источник
comment
Вы спрашиваете, в частности, о haxe или openfl?   -  person npretto    schedule 21.01.2014
comment
Haxe. Никогда не слышал об Openfl до сих пор. Не стесняйтесь направлять меня к нему, если он выше.   -  person Discipol    schedule 21.01.2014
comment
Haxe - это просто язык программирования, который может компилироваться с другими языками программирования, openfl - это библиотека / фреймворк для haxe, которая имитирует flash API для других платформ. Когда вы слышите, что люди портировали свою флеш-игру на iOS с помощью haxe, они, вероятно, использовали openfl. Я не могу говорить об iOS, но я использовал openfl для Android, и я могу сказать вам, что он будет использовать NDK (поэтому код haxe будет преобразован в c +), но он также предоставит проект Android eclipse, который вы можете скомпилировать / изменить себя.   -  person npretto    schedule 21.01.2014


Ответы (1)


haxe компилируется в swf и инкапсулирует его для запуска на «вставьте платформу сюда», что делает его несовместимым с некоторыми собственными функциями и требует значительных накладных расходов.

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

Во-первых, знайте, что Haxe - это просто язык программирования, который компилируется для многих других языков (и битового кода), например JavaScript, C ++, PHP, python, SWF, hl, neko и другие.

Компиляция в C ++ - типичный путь при создании собственных приложений для Android и iOS (а также приложений для Windows и Mac, если на то пошло). Кроме того, Haxe - это просто язык. Обычно для создания приложений используется фреймворк, и есть много вариантов - OpenFL или его предшественник Haxe NME или heaps.io или HaxeFlixel или luxe или Kha.

Каждая структура уникальна по своим парадигмам и рабочим процессам, но, например, в прошлый раз, когда я использовал OpenFL, он экспортирует проект XCode с кодом C ++ при сборке для iOS. Затем ожидается, что вы откроете и скомпилируете проект в XCode и на своем устройстве (или в магазине приложений), как и любое другое приложение для iOS.

Хотя использование фреймворка является распространенным способом создания приложений с Haxe, вы можете использовать собственные, если хотите, например:


Скомпилируйте Haxe в JavaScript, используя externs, чтобы использовать существующие библиотеки JS (например, вот набор Pixi.js externs или встроенный jQuery externs) и разрабатывать мобильные веб-приложения с Haxe. Примечание: многие из вышеперечисленных фреймворков поддерживают рабочий процесс Haxe -> JS.


Скомпилируйте Haxe в SWF, а затем используйте Adobe AIR SDK. чтобы упаковать ваше приложение как родное приложение для iOS / Android. Это позволяет избежать XCode и возможно в Linux и Windows (где компиляция проекта XCode невозможна). Возможно, этот поток был тем, о чем говорили другие люди.


person Jeff Ward    schedule 21.01.2014
comment
Спасибо, Джефф. Я буду нежно думать о тебе на смертном одре. - person Discipol; 21.01.2014
comment
Если вы разработчик мобильных приложений, я полагаю, что это может произойти слишком рано. знак равно - person Jeff Ward; 21.01.2014
comment
Я думаю, вы путаете C и C ++, Haxe переводится на C ++, а не на C при использовании openfl, цель C для haxe все еще находится в стадии разработки. - person npretto; 21.01.2014
comment
Спасибо @lordkryss, обновлено до C ++. Те из нас, кто мало использует эти родные языки, часто путают их. - person Jeff Ward; 21.01.2014
comment
Чтобы развлечься, вы также можете использовать Haxe для таргетинга JS на iPad. Это подход, принятый Flambe, и он имеет приличную производительность, я играл с ним в несколько готовых игр и был относительно впечатлен производительностью и т. д. - person Jason O'Neil; 22.01.2014