Рубрика: Flex Builder
Новости от Adobe
Немного свежих новостей от Adobe (а в конце вас ждет сюрприз):
- Adobe выпускает первую публичную альфу Adobe AIR для Linux. Новость, в общем-то революционная, ибо означает освоение обещанной платформы. Вдобавок, обещается, что начиная с версии AIR 1.1 (минорные фичи и багфиксы) выпуск для всех трех платформ станет одновременным. Подробности тут.
- На самом деле выпуск среды исполнения для новой платформы - это еще полдела. Вряд ли вы завоюете лояльность пользователей такой платформы если предоставите им среду, но не предоставите инструментарий для разработки приложений. И если Flex SDK и раньше был кроссплатформенным, то Flex Builder для Linux отсутствовал. Вернее, альфа и была, но для создания AIR-приложений она не подходила. Теперь Adobe выпускают очередную альфу Flex Builder’а для Linux с возможностью создания AIR-приложений. Встречаем, линуксоиды!
- Adobe продолжают выпускать образцовые RIA. В последнее время появился Photoshop Express, который, имхо, не имеет ничего общего с Фотошопом, но приложение интересное (хотя, опять же, я пока не придумал для себя необходимости им пользоваться). Также можно получить один из 500 инвайтов в гораздо более интересное и эффектное RIA-приложение для онлайнового создания презентаций SlideRocket. Возможно, в истории RIA намечаются солидные шаги.
- Ну а тут я приберег самое вкусное. По информации из прямых источников российский офис Adobe в самое ближайшее время будет расширяться. И расширяться за счет девелоперского отделения, которое откроется в Москве. Насколько стало известно, на первых порах оно будет совсем не большим, и основная задача разработчиков - поддержка как раз этих самых онлайновых приложений (написание дополнительных подключаемых модулей и наши любимые баги). Новость грандиозная! Так что готовим свои резюме и ждем появления вакансий!
На этом на сегодня все.
Вторая встреча RAFPUG в рамках Adobe Flex and AIR Pre-Release Tour
Вчера в Москве состоялась вторая встреча Russian Adobe Flash Platform User Group. Это событие проходило в рамках Adobe Flex and AIR Pre-Release Tour, что само по себе придало мероприятию высокий статус.
Также мероприятие было интересно тем, что в нем приняло участие беспрецедентное количество русскоязычных авторитетов Flash-платформы.
Опишу хронологически так, как видел это я. Сразу скажу, что я не буду пересказывать технические подробности содержания докладов. Ибо доклады были большими, концентрированными, и мероприятие для того и проводилось, чтобы они были выслушаны. Вдобавок, снималось много видео, которое, надеюсь, будет выложено. Также обещали выложить все презентации.
Ну, поехали. В общем, все началось задолго до самого официального мероприятия. Пока все работали на своих работах, приезжие были предоставлены общению и питью кофе/пива. И происходило все это на Старом Арбате в Старбаксе и Кружке. Среди приехавших из Питера были замечены Юля “Junique” Николаева, Павел “Vertex” Кожин, Дима “Maar” Арышев (у которого, кстати, в тот день был юбилей - ему исполнилось 27 лет: поздравляем!) и ваш покорный слуга. Были также важные персоны из Харькова: Ростислав “Рост” Сирык и Эльдар “Pirrest” Прилуцкий. А также сочувствующие москвичи Саша “Agahov” Гахов и Таня Белая.

Давно ожидаемое присутствие Роста было как бальзам на душу. Общение лилось рекой и запивалось пивом. Ну что тут рассказывать? Там надо было быть.

В итоге качество переросло в новое качество, и мы двинулись по направлению к ФМШ-2, где проходило мероприятие, вызванивая попутно тех, кто почему-то оказался неоповещен (типа Миши “Nox Noctis” Антипина, которого в итоге удалось подвигнуть).
А там уже собралась огромная куча народа! Кворум явно был. Как всегда основную роль в организации события взяли на себя ребята из Flexis - партнеров Adobe, за что им отдельное спасибо.

Представителей русскоязычного Flex-сообщества (как гуру, так и нет), представленных в сети, было хоть отбавляй. В общем, были все.
Были также и гости-евангелисты из Adobe Andrew Shorten и Enrique Duvos, подготавливающиеся к презентации.
После того, как все перездоровались-перезнакомились, пообщались и потусили, решено было потихоньку начинать. Но начало задержалось. Во время одного из подключений проводов к ноутбукам, Макбук Andrew немного сгорел. Вроде, проблема коснулась лишь аккумулятора, но для этой презентации ноутбук стал негоден ![]()
Enrique пришлось уступить свой ноутбук с декламированием английской пословицы: трубку, ноут и жену не отдам никому. Пока подготавливались материалы, слово взял Павел Черкашин, глава представительства Adobe в России.

Он сказал много теплых слов об образовавшемся сообществе пользователей Flash-платформы, поблагодарил школу, которая предоставила зал для встречи, рассматривая это как намечающееся тесное сотрудничество в образовательной сфере. Также короткое ответное слово взял директор ФМШ-2. Ему были вручены официальные благодарственные письма от Adobe. Между прочим, в зале сидело достаточно много учеников этой школы.
Дальше начался доклад Andrew Shorten. В вводном слове он рассказал о программе презентации и прочитал доклад о Flex и Flex Builder’е. Несмотря на чужой компьютер, на котором он просто не смог сходу запустить некоторые из подготовленных демо, все было на высоте. Отличная презентация, отличное чтение доклада, отличная работа с демонстрациями. Сам доклад шел на английском, но он переводился Александром Цыплихиным из Flexis, которому иногда помогал зал. Когда Andrew стал демонстрировать технические детали работы с новыми технологиями, перевод решили отменить: на него уходило слишком много времени и встреча могла затянуться.
Лично мне были интересны демонстрации приложений (Flex и AIR) и демонстрация возможностей Flex Builder’а 3 для дизайнеров. Также я подчерпнул некоторые фишки-нововведения нового билдера. Опять же, повторюсь, пересказывать доклад, да еще без презентации, да еще с моей памятью - задача глупая и неблагодарная. Будем ждать появления презентаций и видео.
После доклада Andrew ответил на ряд вопросов. Перерыв.
После перерыва (общение, кофе, булочки, общение) начал свои доклады (Open source и Data services) Enrique Duvos. Он говорил очень быстро с хорошо чувстсвующимся испанским акцентом. Иногда казалось, что он даже переходил на испанский, но все же прислушавшись можно было распознать родную английскую речь.
В остальном его доклад был на высшем уровне. Enrique поведал про весь спектр опенсорсных инициатив от Adobe, про то, как могут в них участвовать рядовые разработчики и что это им дает.
Во втором докладе Enrique рассказал про LiveCycle Data Services ES и опенсорсный BlazeDS, о тех преимуществах, что дает AMF перед другими протоколами и о том, чем отличаются представленные два сервера и что они дают разработчикам и пользователям.
Enrique и Andrew ответили на возникшие вопросы из зала и был провозглашен очередной перерыв.

Дальше пошли короткие доклады от представителей русскоязычного Flash-сообщества. Короткие потому, что времени было уже за девять вечера.
Я оттараторил свой обзорный доклад по концепции насыщенных интернет-приложений (RIA) в том виде, в котором эта концепция была представлена Macromedia в 2002-м году, соотнеся это с современными реалиями. Во временной регламент я уложился, но не вполне уверен, что такое конспективное изложение сильно порадовало публику. Саму презентацию можно скачать тут (1.5 M).
Дальше Иван Дембицкий растекся мыслию по древу насчет судеб Flash в России. Пересказывать не буду. Пусть Иван сам расскажет ![]()

Завершил программу докладов Артемий Малков из Flexis с докладом об использовании Flash-платформы в образовании. Он глубоко уверен о том, что это наиболее перспективная технология во всех ее аспектах. Также он поведал два факта: о том, что они пишут школьный учебник по Flex и о том, что теперь для школьников и студентов Flash CS3 можно купить с 90% скидкой, а Flex Builder - бесплатно. Эту информацию официально подтвердила заместитель главы представительства Adobe в России Ольга Мананникова.

В завершение мероприятия началась веселуха в виде розыгрыша призов по заполненным анкетам. Разыгрывалась лицензия Flex Builder 3 Professional, Creative Suite 3 Web Premium, iPod Nano и пять фирменных рюкзаков Adobe со всякой ботвой в них. Интрига была в том, что те, кто сдал анкету, выиграл, но не присутствовал в зале, из процесса исключались.

В общем, призы были разыграны. К сожалению, прибытие призов задержалось, так что они будут выданы позже.
В завершение Ольга Мананникова объявила о том, что в скором времени нас ждут конкурсы на лучшее приложение (очевидно Flex и/или AIR). Причем россиянам будут доступны два конкурса: европейский, где российский Adobe будут содействовать в соблюдении всех необходимых для конкурса формальностей, и российский, главным призом которого будет поездка на MAX Europe. Детали и условия будут объявлены позже. Отличные новости!
Далее все желающие переместились в ближайшую пиццерию, в которой не было недостатка в пиве и всем остальном необходимом. Народу было так много, что несмотря на кучу сдвинутых столов, некоторые сидели обособленно. И, опять же, общение на профессиональные, околопрофессиональные и непрофессиональные темы.
Интересным моментом было привезенное Ростом с Украины из полтавской области копченое сало от элитной генетически немодифицированной свиньи. Это было божественно! Не знаю, как ему удалось провезти наркотик через границу, но я с него реально тащился ![]()
Сидели мы до самого закрытия заведения, но в 12 ночи нам с Vertex’ом пришлось убежать на поезд в Питер. Рост же по случаю приезда задержался еще и на сегодня (сейчас, наверное, трясется в поезде: удачно доехать!).
Что же я могу отметить по поводу этой встречи:
Позитив. Пожалуй, это была самая позитивная тусовка Flash-сообщества из всех, в которых я участвовал. Я просто очень доволен коллегами. Вы очень приятные в общении люди! Этого заряда позитива мне хватит надолго.
Отдельно отмечу приезд Роста. Я так давно мечтал с ним познакомиться, и вот это случилось. Мэн, ты суперский чувак. Думаю, что еще увидимся!

Самая представительная выездная встреча учаснегов RIAPriority.com. Не хватало только Ани “Graann” Громовой для полного собрания

Андрюха и Энриха, евангелисты из Adobe, очень классные чуваки. Жаль, что у них столь напряженный график и столь велико желание попробовать русскую кухню. А то у них был большой шанс выпить много русской водки. Надеюсь, мы их еще увидим!
Приятно и полезно, что о нас стали думать в Adobe. Это большое дело. Так держать!
- Всем спасибо!

Приведу еще ссылки на уже опубликованные отчеты со встречи:
Недоразумение: solved
В дополнение к предыдущему. Мне все-таки удалось найти приемлемый выход, с которым можно жить. Покопавшись, я заметил, что при установке плагина Flex Builder 3 beta 3 в стартовом меню Windows в группе Adobe появилась иконка запуска Adobe Flex Builder 3 Eclipse Launcher. Если щелкнуть по ней правой кнопкой мыши, то можно посмотреть свойства данного ярлыка и, соответственно, параметры запуска. Вроде, ничего особенного, но если запустить Eclipse с этой конфигурацией, Flex Builder ведет себя адекватно.
В итоге на основе этих параметров я состряпал для себя такую строку запуска, с которой Flex Builder 3 beta 3 может уживаться в Eclipse 3.3.1.1 с WTP и Aptana Studio:
C:\eclipses\eclipse_3_3_1_1\eclipse.exe -showlocation -nl en_US -vm D:\java\jdk1.5.0_06\jre\bin\javaw.exe -vmargs -Xms128M -Xmx512M -XX:MaxPermSize=256M -Duser.name="Konstantin Kovalev"Вроде это ничем принципиально не отличается от того, что было у меня (параметры работы с памятью я выставлял в eclipse.ini). Но тем не менее это работает.
Возможно, при наличии свободного времени я раскопаю, с каким конкретно параметром это связано. Но если у кого-то есть идеи - милости прошу в комменты.
Недоразумение
Многие наивно полагают, что Flex Builder - это та прикольная IDE, что ставится в один клик, а то, что другое, - это некий плагин для Eclipse. Уверяю вас, что Flex Builder - это и есть название плагина для Eclipse. Просто поставляется он в двух вариантах: в виде плагина и завернутый вместе с усеченным Eclipse.
Соответственно, многие в обиходной речи называют одно билдером, а другое - Эклипсом. Это неверно. Верным было бы называть Flex Builder’ом плагин, а упакованную версию - standalone Flex Builder,
Так или иначе, но и в качестве плагина он слабенький. Не поддерживает обновления через Update Manager и не поставляется в виде zip-аржива (в виде локального update-сайта) без упакованного внутрь SDK и плеера (чтобы не качать несколько раз одно и то же).
Не говоря уже о низком качестве IDE и потреблении ресурсов при компиляции… Так что такой продукт, в принципе, можно называть как угодно ![]()
Особенно весело когда Flex Builder 3 Beta 3 на свежем AIR-проекте, состоящем из одного пока mxml-файла выдает:
Code:
java.lang.OutOfMemoryError: Java heap space | |
at java.util.Arrays.copyOf(Unknown Source) | |
at java.io.ByteArrayOutputStream.write(Unknown Source) | |
at flash.swf.RandomAccessBuffer.write(RandomAccessBuffer.java:59) | |
at flash.swf.RandomAccessBuffer.write(RandomAccessBuffer.java:40) | |
at flash.swf.TagEncoder.doABC(TagEncoder.java:2175) | |
at flash.swf.tags.DoABC.visit(DoABC.java:28) | |
at flash.swf.MovieEncoder.export(MovieEncoder.java:146) | |
at flex2.compiler.API.encode(API.java:4059) | |
at flex2.tools.oem.Application.encode(Application.java:1199) | |
at flex2.tools.oem.Application.link(Application.java:1158) | |
at com.adobe.flexbuilder.multisdk.compiler.internal.ASApplicationBuilder$MyBuilder.mybuild(ASApplicationBuilder.java:283) | |
at com.adobe.flexbuilder.multisdk.compiler.internal.ASApplicationBuilder.build(ASApplicationBuilder.java:122) | |
at com.adobe.flexbuilder.multisdk.compiler.internal.ASBuilder.build(ASBuilder.java:139) | |
at com.adobe.flexbuilder.multisdk.compiler.internal.ASItemBuilder.build(ASItemBuilder.java:73) | |
at com.adobe.flexbuilder.project.compiler.internal.FlexProjectBuilder.buildItem(Unknown Source) | |
at com.adobe.flexbuilder.project.compiler.internal.FlexProjectBuilder.build(Unknown Source) | |
at com.adobe.flexbuilder.project.compiler.internal.FlexIncrementalBuilder.build(Unknown Source) | |
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:624) | |
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) | |
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:166) | |
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:197) | |
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:246) | |
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) | |
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:249) | |
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:302) | |
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:334) | |
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:137) | |
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235) | |
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) |
При том, что памяти я как только ему не выделял ![]()
Люди говорят, что в standalone-билдере все в порядке. Но не держать же мне несколько конфигураций, открывая попеременно!?
И это при пресловутой оптимизации. При том, что по умолчанию компилится только debug-версия (чтобы якобы уменьшить время компиляции). Прекрасная работа, Adobe! Ждем зажигательных рассказов о всех великих преимуществах нового билдера в течение European Flex 3 pre-release tour.
И, кстати, мои субъективные наблюдения говорят о том, что по части работы с памятью и ресурсами с каждой новой бетой все становится только хуже.
Будем надеяться на лучшее.
Vivat, Adobe!
Adobe нас порадовали тремя свежими релизами, один из которых - это самый значительный релиз от Adobe за последний год (не считая AIR
. Все это доступно на Adobe Labs.
Итак:
Adobe Flex 3 Beta 3 (M4) и Adobe FlexBuilder 3 Beta 3 (M4). Качаем.
Adobe AIR Beta 3. Качаем Runtime и SDK.
BlazeDS. И это и есть наш суперрелиз. Что это такое? Это заопенсорсенный формат AMF и опенсорсный сервер BlazeDS (пока бета), который реализует эту спецификацию.
То есть, говоря проще, Adobe делает опенсорсной реализацию AMF (лицензия LGPL V3). RTMP пока не опенсорсится, но опенсорсится messaging на базе AMF, а также специальный канал DHTTPStreaming, позволяющий не закрывать HTTP-соединение для обеспечения пушинга, с помощью которого и реализуется messaging.
Мало того, выпускается усеченная версия LCDS (собственно BlazeDS), которая поддерживает все перечисленные возможности. Этот сервер поддерживает RPC-сервисы, JMS-адаптер, Proxy-сервис. Не поддерживается, естественно, генерация PDF, серверный MXML-компилятор, Data management и ряд адаптеров (типа ColdFusion, Hibernate итд.).
И это и есть революция. Вы мне не верите?
Подробности можно почитать у Якова Файна. Также из первых рук от Christophe Coenraets. Ну и конечно у Теда Патрика.
Документация по BlazeDS доступна тут.
Сравнение BlazeDS и LiveCycle Data Services
Flex Builder 3: перспективы
Кстати, по поводу моих недавних невеселых комментариев. Там я приводил ссылку на roadmap по Flex Builder’у. И что-то написал, что планов на release candidate пока нет, а потому, вроде, можно ждать еще интересных сюрпризов.
Но это просто я невнимательно все прочитал. А там так:
M3 Release (Beta 2) - Feature Complete
То есть английским по белому там написано, что все. Новых фич до релиза не будет. Только полировка уже имеющихся. То есть темплейты, квикфиксы по-любому остаются лишь мечтами.
С чем вас всех и поздравляю ![]()
Flex 3 beta 2 и Adobe AIR beta 2 доступны!
Пока мы тут спим, в Adobe Labs появились свежие беты Flex 3 beta 2 и Adobe AIR beta 2. Качаем, смотрим 
Новости о Flex 3 beta 2: продолжение
В трудах праведных я не успел вовремя отреагировать в блоге на целых два поста Теда Патрика, касающихся нововведений во Flex Builder’е.
Итак, в среду Тед посвятил свой пост CRUD-мастеру. Мы говорим наше Вау! Нет, действительно круто. Посмотрим, как будет работать в действительности, что за код генерится. Но у меня есть некоторые ремарки.
Как себе это представляю я. Данный вариант Flex Builder’а не содержит в себе элементарных фич, присущих многим бесплатным (не говоря о коммерческих) IDE на базе платформы Eclipse. Я много раз перечислял эти фичи, но могу сразу вспомнить элементарные две. Это темплейты для кода и квикфиксы. А их нет и не присутствуют ни в какой форме. Конечно, мы пока не видим планов на release candidate, но, кажется мне, что тенденция налицо. Больше фич. Вместо того, чтобы сделать конфетку из старых.
И что мне еще кажется странным, так это сам путь развития. Ведь совершенно очевидно, что все эти генераторы кода по сути являются отдельным плагином, интегрированным во Flex Builder. И вот что мне непонятно. Почему бы дествительно не доработать саму среду, а подобные фичи выпускать в виде отдельных дополнительных плагинов отдельной командой разработчиков? Пускай за отдельные деньги. Но все же. Ведь подобный плагин уже существует и довольно давно. Мало того, он в чем-то даже более продвинут. Называется он Clear Data Builder и разработан Farata Systems на основе генератора кода DaoFlex. Данный генератор работает только под Flex Data Services (LiveCycle Data Services), хотя поддерживается и openamf. То есть речь идет о remoting’е на базе J2EE. Но с точки зрения генерируемого клиентского кода примеров он явно превосходит представленные скриншоты. Но посмотрим. А желающие могут изучить документацию по Clear Data Builder’у.
Вернемся из нашего лирического отступления. Итак, я глубоко убежден, что вместо того, чтобы обвешивать продукт подобными фичами и заявлять, что он стал значительно круче, стоит довести до ума существующее, а подобные решения поставлять в качестве дополнительных плагинов. А то получится, что формально забота о разработчике есть, но она какая-то не вглубь, а вширь.
Но вот что точно вглубь, так это забота о дизайнере. В четверговом посте Тед пишет в основном об усовершенствованиях для них. Ну тут прямо все совершенствуется очень круто. Сами посмотрите.
О дайте, дайте же мне Flex Builder Express! Пусть будет такая версия без CRUD-визарда, без Design View. Можно даже бесплатно. Но зачем мне, разработчику, который пишет код больше времени, чем генерирует серверный код с DTO, чем работает в Design View (вовсе его не открываю), говорить, что обо мне заботятся и делают продукт лучше? То есть покупая продукт, я плачу больше половины его стоимости за фичи, мне ненужные, но как раз самые дорогостоящие с точки зрения разработки!
Ну хэлп стал красивее, и это круто! А в довесок (помните как в старые советские времена к книгам и продуктам продавали довески в виде чего-то не сильно нужного, но что обязательно надо продать?) прилагают лежавшую до этого в запасе JSEclipse. Вообще, создается впечатление, что нам, разработчикам, пытаются впарить старый продукт, но в новой, красочной и большой упаковке! На боках которой умещается очень много красивых картинок и рекламных слоганов.
В общем, пока обзоры Теда Патрика лично меня разочаровывают. Посмотрим дальше. Тед обещает интересный рассказ про дебагер и профайлер. Хоть здесь постарались! Также интригующе звучит «FLEX 3 PRICE Enhancements». То есть цены стали больше или все же появились разные комплектации продукта с разными ценами? Второе было бы интереснее. Ну и в «FLEX 3 FAMILY Enhancements» нам очевидно представят Thermo. Посмотрим, что это такое ![]()
В общем, будем смотреть вперед с оптимизмом! Чего и вам желаю. Прорвемся! ![]()
Новости о Flex 3 beta 2
Парень с большим mojo лого Флекса, известный под именем Тед Патрик, начинает очередную серию жесткого прессинга.
Когда-то он уже устраивал подобное и целую неделю по порциям выдавал все прелести, которые нас ожидали в первой бете. Теперь он повторяет перформанс. Итак, ждем его интересных рассказов каждый день со среды до понедельника. Ну и как мы уже знаем, следом нас ждет долгожданная бета 2. Ура, товарищи! 
Генерация геттеров/сеттеров
Многие недовольны Flex Builder’ом. Не буду перечислять всего того, что мы хотели бы видеть в идеальной IDE. Упомяну один лишь аспект. Маленький, но неприятный. Во Flex Builder’е нет темплейтов. Это часто очень напрягает. А сильнее всего напрягает, когда приходится писать довольно одинаковый и однообразный код для get/set методов.
К своему счастью на днях я натолнулся на замечательный пост, в котором рассказывается, как с помощью плагина Eclipse Monkey это все можно реализовать.Мало того, там приводится простой скрипт для генерации простого варианта get/set методов.
Ну мне такой вариант не сильно подходил, ибо чаще всего я использую get/set методы с биндингом. А есть еще более навороченные варианты с теми же коллекциями, которые, тем не менее, встречаются часто.
В итоге я написал на основе приведенного в посте парочку своих скриптов, которые вместе с модифицированным оригиналом можно скачать.
Ниже приводится ссылочка на видео, в котором я демонстрирую как всем этим добром пользоваться. Там не описан процесс установки плагина, который (с картинками) можно найти тут. У плагина также есть документация (в системе помощи Eclipse). Дополнительную информацию можно найти на сайте Aptana, в плагинах которой Monkey активно используется.
Ну а видео смотрим тут (9.5 метров).
Update: Оказалось, что некоторым людям [skipped skipped skipped] мало сообщения о том, что в видео дается практически вся информация по использованию. Для них пишу отдельно: если у вас возникли какие-то проблемы, и вы жалуетесь на них не просмотрев видео, не расчитывайте на серьезное к себе отношение. Понятно, что если у вас нет физической возможности смотреть - помогу. Я планирую в будущем выкладывать больше видеотуториалов, которые, имхо, обладают большей информативной емкостью. Спасибо.