Cross-platform

Вторая неделя декабря в мире Haxe

Подводим итоги прошедшей недели:

  • В SVN-репозитории Haxe появилось html5 API (раньше для того, чтобы им было удобно пользоваться, нужно было использовать экстерны от других разработчиков или создавать их самому)
  • А Энди Ли уже создал ветку в репозитории jQueryExtern для Haxe 3
  • Джошуа Граник, по видимому, хочет изменить адрес сайта для NME. Доказательство: в твиттере он провел опрос, какое доменное имя предпочтительнее: nme.io или nme.so (большинство выбрало первый вариант)
  • Ludum Dare прошел, но оставил после себя несколько игр-прототипов на Haxe (большинство из которых используют HaxePunk). В конкурсе также принял участие Nicolas Cannasse
  • Статья для начинающих пользователей Linux о том, как настроить IntelliJ IDEA и начать кодить на Haxe (как раз то, что мне нужно)
  • Success Story 14-летнего Эриена Манна, выбравшего Haxe для мультиплатформенной разработки
  • И подробный пост от Mr Laurent Bédubourg об использовании Flash Gaming SDK в Haxe и о создании экстернов для него (планирую перевести эту статью)
  • А тем временем в группе на Google+ уже состоит 310 человек

Новости за первую неделю декабря 2012

Официальный релиз Haxe 2.10 и NME 3.3.4

Вчера, 16.07.2012, официально вышла новая версия Haxe, отличиями которой являются:
- Java и C # таргеты, пока что находятся в стадии бета-версии (окончательная реализация ожидается в Haxe 3.0). Cauê Waneck работает также над библиотеками hxjava и hxcs.
- Уменьшение размера генерируемого Javascript-кода. В качестве примера его работы приводится простой пример Hello Haxe, в результате скомпилированный код будет состоят всего из 7 строк.
- Улучшение механизма макросов, упрощающее их использование и понимание.
- C++ дебаггер.
- Множество небольших улучшений языка:
прямая инициализация свойств и переменных
использование using теперь подразумевает использование import
подклассы теперь могут расширять видимость методов
и др.
- И, конечно же, множество исправлений ошибок, оптимизаций и т.д.
Полный список изменений доступен здесь.

Сегодня, 17.07.2012, также вышла версия 3.3.4 библиотеки NME с улучшенной поддержкой BlackBerry, iOS, HTML5, документацией и др.

Box2D на NME?

Попытался портировать туда свою любимую обертку вокруг Box2D - QuickBox2D и столкнулся с рядом траблов, один из которых наличие нескольких разных портов.

Try Haxe!

Всем привет!

Совсем недавно в гуглгруппе прошла очень интересная тема - онлайн редактор с автокомплитом и сборкой http://try-haxe.aaaliasing.net/
По моему это отличная штука для продвижения haxe. И хотелось бы, чтобы все ее знали и использовали. Проект опенсурс и рад любой помощи.
Кроме автокомплита по ctrl-space, есть и хоткей на сборку ctrl-enter.

П.С. Со своей стороны я закоммитил автору простенький шаринг и поддержку haxelib в проекте. Надеюсь так они скорее появятся.

Aswing под Nme

Прогресс китайской нации не стоит на месте - paling на haxe.org выложил ссылку на бету haXeAsWing, теоретически работающую с NME.

Когда будет время, попробую собрать.

Релиз Haxe 2.09

В субботу 14 апреля на конференции WWX в Париже Николя Канасье объявил о релизе новой версии Haxe 2.09

Отдельно отмечается, что начиная с этой версии, Haxe включает сервер компиляции. Это возможность для создателей IDE и плагинов, улучшить как скорость компиляции так и скорость автоматических подсказок при написании кода на Haxe. (подробнее)

Также представлено много улучшений в языке и в целевых платформах, оптимизаций и новых библиотек, таких как:

  • новые пакеты sys.io и sys.net + класс высшего уровня Sys
  • Reflect.getProperty/setProperty
  • кроссплатформенные haxe.Json and haxe.Utf8
  • source mapping для отладки haxe->JS и --js-modern (подробнее о том, что такое source maps для html5)
  • поддержка Flash 11.2 and 11.3 + @:sound и @:file
  • серьезное улучшение скорости работы автодополнения
  • ... и другие изменения

Релиз NME 3.2

Вышла новая версия NME - 3.2.
Среди новых фич есть довольно вкусные, за что спасибо неугомонному Джошуа Гранику, который в последнее время стал просто главным двигателем haXe движения.

  • Добавлена встроенная поддержка SWF ассетов (Flash и целевые платформы на C++ ) Подробнее
  • Android приложения будут ставиться сразу на SD карту по умолчанию.
  • Улучшена поддержка специальных папок для всех целевых платформ
  • Пофиксили проблемы с "исчезающими объектами" при программном рендеринге.
  • Поддержка “template” файлов, перезаписывающих шаблоны по умолчанию для каждой цели.
  • URLLoader теперь поддерживает HTTP POST и SSL в целях основанных на C++.
  • Tilesheet.drawTiles теперь можно пользоваться и в Flash.
  • Поддержка джойстика для Windows, Mac and Linux.
  • Улучшена тесселяция для примитивов при аппаратном рендеринге.
  • Стало возможно добавлять дополнительные iOS фреймворки через NMML.
  • Исправили автоматическую ориентацию экрана в iOS.
  • Множество других исправлений и улучшений.

Релиз моего порта Flixel

Привет всем!
Последний месяц я в свободное время занимался допиливанием порта Flixel v2.55 (движка для создания 2d-игр) на haxe. Отличительной особенностью этого порта является его ориентация на кроссплатформенность (flash и c++). Специально для этого была переработана система рендеринга (для c++), которая теперь использует метод drawTiles().
Репозиторий проекта находится здесь: https://github.com/Beeblerox/HaxeFlixel. Там же лежит порт Mode demo.

Релиз Nme 3.1

- куча исправлений
- сборка для html5 "из коробки"
- новое апи с проверкой типов ассетов nme.Assets
- поддержка нативных расширений
- команда nme setup для установки всего дополнительно необходимого для сборки проектов (например nme setup webos)
- поддержка сертификатов для android market (раньше приложение можно было подписать только отладочным ключом)
- nme.net.SharedObject для всех платформ
и многое другое

всем использующим рекомендуется сделать haxelib upgrade

Релиз haXe 2.08

Вышел haXe 2.08!
Это будет последний релиз в ветке 2.*. Следующий релиз, который пока планируется на весну 2012 будет уже называться haXe 3.0.

Что нового в haXe 2.08:

  • Серьезные улучшения в качестве получаемого js-кода в haxe -> JavaScript. (а для тех, кого и в нем что-то не устроит возможность написать собственный js-генератор с помощью макросов)
  • js.JQuery теперь стал частью стандартной библиотеки. С помощью нового тега метаданных @:overload в нем поддерживается полностью типизированный доступ.
  • весь новый API Flash Player 11 теперь доступен, с высокоуровневым haXe доступом к 3D шейдерам через HxSL а также теперь можно напрямую включать растровые изображения с помощью :
    @:bitmap("file.png") class File extends flash.display.BitmapData {}
  • два новых API для разработки на стороне сервера: URL Dispatcher и новая версия SPOD позволяющая напрямую писать SQL как haXe выражения (см. SPOD Macros)
  • множество улучшений в Макросах

Релиз NME 3.0 и HXCPP 2.08 на haxelib

Важный релиз: на haxelib обновились версии библиотек NME и HXCPP.
Особенно важен релиз NME 3.0. Главное новшество там - встроенный "install-tool" который позволяет легко собирать проекты с одним базовым кодом для разных платформ - от flash до iOS и Android. Подробнее об этом можно почитать здесь: http://haxe.ru/nme-gm2d-setup, несколько ссылок по теме я насобирал здесь: http://haxe.ru/node/338
И еще у NME недавно появился офсайт: http://haxenme.org/ там пока немного информации, но все коротко и ясно для старта.

NME - gm2d - Android - iOS... Настройка среды для кросс-платформенной разработки

Внимание! На момент эта статья уже не актуальна для тех, кто хочет просто установить стабильную версию и начать ей пользоваться. Сейчас всё гораздо проще.
Эта инфа теперь может пригодиться тем, кто хочет устанавливать и собирать версию из СВН или тем, кто хочет чуть глубже разобраться от каких мучений их избавил install-tool который сейчас входит в NME.

Публикую плоды своих изысканий и тестов настройки среды для создания кросс-платформенных проектов на haXe, позволяющих собирать из одного кода приложения для Android, iOS, webOS и конечно стандартных для haXe flash, c++ ...
Основано в основном на статьях с http://gamehaxe.com и на собственном опыте. На момент поставил такую среду на двух машинах и успешно собираю приложения для Android. В iOS тоже собираю, но с ним не всё так гладко пока.
В общем делюсь тем, с чем успел разобраться сам. Итак поехали:

  1. Если вдруг кто еще не поставил, качаем и ставим haXe: http://haxe.org/download
  2. Ставим hxcpp, nme, gm2d через haxelib:
  3. в консоли:

    haxelib install hxcpp
    haxelib install nme
    haxelib install gm2d

    эти первые два шага идентичны и для установки на Mac и на Linux (на Mac нужно еще запустить @haxelib setup@ перед установкой либ)
    дальше то, что связано с компиляций C++ нужно смотреть для каждой отдельной платформы

  4. качаем и ставим VisualStudio C++ Express. Она нужна hxcpp для компиляции сгенеренного C++ кода
  5. Update: Всё! Новые версии NME и HXCPP вышли на haxelib. так что остальную часть этого раздела можно уже не читать, а переходить сразу к настройке и сборке проекта.

Ссылки по NME и install tool

Сюда сбрасываю последние ссылки связанные c NME, о его установке, настройке и компиляции для Andriod и iOS. Надо в этом деле разобраться. Приглашаю интересующихся темой присоединяться.

NME - gm2d - Android - iOS... Настройка среды для кросс-платформенной разработки
(по-русски, 16.08, я;))

http://www.joshuagranick.com/blog/2011/08/19/haxe-nme-screencast-is-now-... - Haxe NME Screencast (Joshua Granick)

http://www.joshuagranick.com/blog/2011/07/14/android-ios-webos-and-more-... - (Joshua Granick) - 14 июля
http://lists.motion-twin.com/pipermail/haxe/2011-July/045405.html - Update on the install tool (Joshua Granick) - 13 июля

Новости прошедшей недели

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

RSS-материал