iOS замечания

Последние обновления Xamarin вызывают нарушения в работе Mono 3.0 на libGDX iOS back-end. Точнее, оно нарушает работу IVKM Monotouch, на которой выполняется JVM байт-код в iOS. Уже ведутся работы по исправлению большинства причин, но еще есть некоторые препятствия на пути к полноценной рабочей версии, которая требует содействия Xamarin.

Так как каждое новое обновление Xamarin нарушает работу iOS backend, то такое решение не может дальше продвигаться. По этой причине было объявлено, что iOS backend базирующийся на Xamarin устарел. Вот что будет дальше:

  • В ближайшее время будет выпущена 0.9.9 версия, содержащая стабильный IKVM Monotouch порт совместимый с предыдущими версиями Xamarin iOS (6.2.7.1).
  • Размещение релиза будет происходить как обычно, любые признаки Xamarin back-end будут удалены из репозитория, а так же системы сборки.
  • Будет создана замена setup-ui, которая уже давно в этом нуждается и будет обновлена соответствующая документация.
  • Если вы в настоящее время работаете над игрой, вам не следует обновлять iOS Xamarin до последней версии. Используйте libGDX версию 0.9.8 или предстоящую 0.9.9 версию или любую nightly версию между этими двумя версиями. Если вы уже обновили Xamarin iOS, вы можете сделать откат до рабочей версии (6.2.7.1 pkg), как описано в этом решении.
  • Упаковка RoboVM back-end начнется с версии 0.9.9, которая должна сейчас быть на равно с Xamarin back-end, благодаря большой и тяжелой работе создателя RoboVM. Вы будете иметь возможность портировать вашу игру на этот back-end без особых проблем.

Вот минусы и плюсы этого изменения:

минусы

  • Производительность RoboVM сейчас еще не на таком уровне как Xamarin. Этого должно быть достаточно для многих игр. Сейчас происходит создание тестов производительности для оценки качества.
  • В настоящее время отладка не поддерживается в RoboVM. Вам придется прибегнуть к использованию printf.
  • Пока еще нет RoboVM приложения в App Store. Однако, RoboVM компилируется в нативный код, как Xamarin или Flash, и маловероятно, что Apple отклонит приложение скомпилированное через RoboVM.

плюсы

  • Меньше слоев абстракций, RoboVM является выделенной виртуальной машиной запускающей байт-код.
  • Полная поддержка библиотеки классов, поддерживаются те же классы Java что и в Android (минус конкретные Android API).
  • Интеграция среды разработки и Maven, причем в настоящее время впервые есть ограничения на Eclipse. Вы работаете так же как с Desktop, Android и GWT проектами.
  • Постепенная сборка, больше нет многоминутных ожиданий развертывания на реальные устройства.
  • Полностью свободный и открытый исходный код, вам всего лишь нужно иметь Mac и лицензию Apple разработчика.