Flex под linux – миф или реальность?

Озадачил меня вконтакт.ру разработкой приложения на флексе. Вот и заинтересовался, получиться написать что-то на флексе под линь, да и возможно ли вообще :)

Как оказалось, под линукс средств разработки очень мало. А то что есть – кривое, не удобное. И судя по всему, даже платных нет. Разве что Idea – про неё я честно не интересовался.

Итак, по порядку…

“Сердце” для разработки флекса – это инструментарий разработчика – Flex SDK. Отдельно он не распостраняется, но есть вместе с flex builder’ом. Причём бесплатно. На момент поста есть версия 3 alpha 4. Он распостраняется как плагин к eclipse. Есть установщик с громким названием “Install everywere”. Который таки устанавливает плагин, но с ошибкой, не известно какой. В итоге джава машина отказывается запускаться, а перебрав десяток опций, эклипс запускается, но ничего не знает ни о флексе, ни о mxml, ни о as… Судя по форумам – если у кого то и получилось завести, таких единицы. Вывод – самое полезное в Flex Builder 3 for Linux alpha 4 – Flex SDK. Надо отметить что там 2 версии СДК – 2.0.1 и 3.0.

Пользовался только третьей :)

Вообще говоря можно пользоваться консольным компилятором… Кому хочется :) Но имхо для чего то большего чем “хелоу ворлд” надо хоть какую – нибудь IDE. По этому поводу гугл также ничего не говорит радостного.

Итак, в чём можно писать для Adobe Flex.

  • Используя плагин к эклипсу. Но.. уже пытался установить – отказывается работать
  • Есть плагин к моему любимому NetBeans. Назывется flexbeans, его страница на sf. Я имел честь пользоваться версией 1.1.1. Практически ничего не умеет.
    Кривая подсветка файлов .as в NetBeans плагине flexBean
    Кривая подсветка файлов .as в NetBeans плагине flexBean

    Разве что создавать проект и компилировать его(но по большому счёту этого мне хватило). Никаких автодополнений/подсказок нет. Синтаксис mxml вообще не подсвечивается. Видимо, была попытка сделать подсветку as(ActionScript) файлов – но очень не удачно, пример на картинке.
    Ещё не корректно работает Navigator – перечисляет и дублирует часть переменных, использованных в скрипте. Но выбора вроде как нет.. Автор обещает что скоро будет нормальная подсветка и автодополнение

  • Есть такая IDE – spket.
    Автозавершение для mxml файлов в spket
    Автозавершение для mxml файлов в spket

    Если не ошибаюсь изначально она разрабатывалась для JS. Однако, она поддерживает mxml – цветовая разметка и автодополнение – всего лишь нужно указать путь к flex sdk. Со стандартной sun’овской JVM среда не стала запускаться, а вот с openjdk пошло – /opt/spket/spket -vm /usr/lib/jvm/java-1.6.0-openjdk/jre/bin/

У меня получилось вот что – использовал skpet для дизайна (mxml), а основная работа(написание actionScript) происходила в netBeans, там же и компиляция. Время компиляции практически не зависила от количества кода, и была примерно 10-25сек. Очень не удобно создавать UI – приходиться по сто раз компилировать чтоб посмотреть на сколько пикселей надо сдвинуть текст :(. Вообще, надо сказать, что о визуальном создании UI похоже пока не может быть речи.

Ещё важная деталь: флеш-дебагер. Понять как же ужасно иметь плеер без дебаг-режима, можно лишь когда нужно отлаживать приложение, и вместо ожидаемого окошечка – ничего не происходит. И не знаешь в какую сторону копать.. Поэтому обязательно нужно установить флеш дебаг плеер. Он лежит в sdks/3.0.0/runtimes/player/lnx/flashplayer в папке с установленным “плагином” к эклипсу. Установка плеера сводиться к распаковке flashplayer.tar.gz папку /usr/lib/mozilla/plugins. Этот плеер пишет ошибки, если такие имеются. Да, и ещё он очень медленный :)

В целом это всё таки не миф – есть возможность разрабатывать флекс приложения под линуксом :) Но это очень неудобно, по сравнению с вендовыми средствами разработки… Зато нативными средствами и совершенно бесплатно.