Archive for the ‘Flex Builder 2’ Category

UAFPUG 9, мой доклад о Eclipse Monkey

Friday, May 1st, 2009

Непрошло и пол года как я подготовил исходники и написал пост о моем докладе на UAFPUG, который был 28 февраля, этого года.

Мой доклад назывался
“Eclipse Monkey — безграничный функционал Flex Builder’а.” как можно догадаться был посвещен прикручиванию Monkey скриптов к Flex Builder’у

В начале небольшая призентация:

По ходу призентации я приводил примеры использования скриптов. В правом углу некоторый слайдов есть метка E> это означает, что вместе со слайдом был пример кода. Примеры скриптов лежать в архиве у меня или в проекте monkey-for-flex на гугл коде. Примеры простые и не очень :).

Непростой пример посвещен использованию модели кода Flex Builder в Monkey Eclipse. Пример лежит в файле create-interface.js Данный пример генерит методы и свойства которые объявлены в выбраном интерфейсе, используя модель кода Flex Builder. Чтобы получить код нужно выделить в коде имя интерфейса и нажать Alt+m и в консоле будет выведен код. Остаеться его только скопипастить. Данный пример не является эталоном работы с моделью кода Flex Builder, это лишь иллюстрация возможностей Eclipse Monkey.

Еще я хочу обратить ваше внимание на библиотечки, которые я написал для более удобной работы.
Эти библиотеки лежат в папке com/the33cows/monkeylib

flexutil.js
Содержит методы для работы с текстовыми редакторами, как обычными так и MXML и CSS редакторов Flex Builder (Получение редактора, добавление текста, перемещение курсора). Библиотека не доделана, но с базовыми вещами справляеться нормально. Приветствуется добавление своих методов и/или советов, критики :)

templateUtils.js
Служит для работы с темплитами кода. В файл нужно прописать путь к каталогу где будут храниться файлы с темплитами

this.templateRoot = "< YourPathToTemplates >/templates/"; 

использование до безобразия простое


include("com/the33cows/monkeylib/templateUtils.js");
...
var tmpl = getTemplate("public-method.tpl"); // загрузили темплит из файла
tmpl = tmpl.replace(/{comments}/g, coments); // заменяем переменные на значения

переменная tmpl содержит строку с кодом, дальше с можно поступать как угодно.

Если есть каки-то вопросы, задавайте. Если есть какие-то пожелания, делитесь) Удачи.



“Фичи” обновления Flex Builder и flex sdk

Wednesday, December 17th, 2008

Все слышали о выходе очередного обновления Flex Builder 3.0.2 и Flex sdk 3.2

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

У меня 2 машины, где я обновлял билдер на обоих было продемонстрировано различное нелогичное поведение:

1-я машина. Апдейтер прописал то, что у меня установлено всего 2 sdk, 2.0.1 и 3.2.0 Естественно проекты перестали компилится т.к писались на sdk 3.0.0, пришлось ее подключать вручную, в процессе подключения я ее нашел в стандартной папке с sdk. ее просто “забыли” подключить.
2-я машина. Апдейтер я запустил давно и забыл о его запуске. Затем я таки решил посмотреть на сдк 3.2, но его не обнаружил. подумал что еще не апдейтил и запустил адоб апдейтер, он сказал, что у меня все последних версий! Полез папку сдк и нашел там заветную сдк 3.2. Как объяснение я могу лишь сказать, что я на этой машине баловался с Gumbo и ставил сдк 4. После нажатия кнопки “Reset sdk list” я увидел список из sdk 2.0.1, 3.0.0 и 3.2.0.

В связи с этим возникают вопросы, почему на первой машине все оно потеряло 3.0 но сразу увидело sdk 3.2, а на второй машине не увидело 3.2? Тяжело что ли проанализировать списочек из 3х пунктов?

Затем на одной из машин стоит русская винда, и апдейтер не спрашивая все “русифицировал” дебильным переводом. Что за фигня? вообще как могут быть ошибки в программировании на русском, когда все на английском? или Адоб купил часть 1C ?

UPD: вернуть английский можно добавив в eclipse.ini строки

-Duser.language=en
-Duser.country=US

Следующий пункт: после установки апдейтов полностью отваливаються старые AIR приложения, run не запускается и невыдает никаких ошибок, просто проваливаемся в пустоту, дебаг выдает непонятную фразу:

Process terminated without establishing connection to debugger.

Command:

“C:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\3.2.0\bin\adl.exe” D:\Local\MyApp\bin-debug\MyApp-app.xml D:\Local\MyApp\bin-debug

Output from command:

error while loading initial content

Я минут 15 выдумывал почему так, оказалось, что апдейт принес нам AIR 1.5 и посему мы должны в нашем файле MyApp-app.xml заменить цифиру в строке

<application xmlns="http://ns.adobe.com/air/application/1.1">

на

<application xmlns="http://ns.adobe.com/air/application/1.5">

Почему нельзя сделать внятное предупреждение/сообщение, если это настолько важно?!

Перейдем к более высоким материям.
Если стоит профешинал версия билдера, то к ней в бонус идут Data Visualization Components вместе с исходниками. При вводе ключа, автоматом идет распаковка их исходников в папочку с сдк. Но после апдейта вы никак не обнаружите новых исходников Data Visualization Components в папке с sdk 3.2.0! Их просто никто не распаковывает. Хорошо хоть есть шаманский способ достать их.
Я не заглядывал в исходники AdvancedDataGrid, но чартинги они практически не трогали (я видел только переделку для подержки модульности и загрузки приложения в приложение, если я правильно понимаю строки systemManager.getSandboxRoot()…, в старой версии было просто systemManager…). Ядро чартингов ChartBase, ох как стоило бы отрефакторить!

Недавно на баше была супер цитата:

вот зашел на хакер.ру, в граза бросилась фраза:

Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете…

Удачи в апдейтах!



Наш ответ Чемберлену или проблемы сравнения конкурирующих платформ

Tuesday, December 9th, 2008

Сегодня в сети появилась статья “Еще одно сравнение Adobe Flash и Silverlight 2” , прочитав ее я понял главную ошибку авторов этих статей — каждый автор является специалистом только в одной области, или Flash|Flex или Silverlight. Поэтому страдают “конкурирующие платформы”. Как выход я вижу написание совместной статьи (но это дело долгих споров). Автор данной статья не избежал ошибок и показал всое поверхностное знание Flex/Flash технологии.

Я попытаюсь исправить его недочеты, для полноты картины )

В начале оговоримся что я не буду в ходе разговора использовать софт который находится в стадии альфа, бетта и пререлиз ).

Среда разработки и прочий инструментарий.

Для начала разберемся с инструментраем и возможностями:

FlashPlayer — это плагин который позволяет проигрывать swf файлы (байт код, который можно создавать где и как угодно, например умельцы рантайм генерят его и сразу же запускают в флешплеере).
Flash IDE/Flex Builder — это среда позволяющая создавать swf файлы.
Flex framework — это фреймворк позволяющий быстро и эффективно создавать RIA приложения. Flex Builder “заточен” для работы с Flex framework.

Использование Flash IDE как средство разработки крупных приложений, довольно опрометчивый шаг. Ее, в контекте разработы RIA лучше использовать как дополнительное средство.

Вообще не стоит говорить что вся разработка сводится к связку Flash IDE(графика)-Flex(код) — это просто частный случай варианта разработки.

а использовать только Flex сложно, поскольку ничего похожего на дизайн-вью в нем просто нет.

Ляп! пожалуйста, жмем на кнопку Design в MXML редакторе и видим дизайн вью. (единственно что он не работает в билдере под линукс). Может канечно этот дизайн вью и не такой навороченый как бленд, но он есть )

Язык программирования

ActionScript 3 являеться вариантом реализации ECMAScript-262, 4 версии http://en.wikipedia.org/wiki/ECMAScript , Я не буду искать подробности отличая от этого стандарта, они есть и это можно найти воспользовавшись гуглом ).

Язык не имеет …

Да язык часто ругают за его непродвинутость.

Язык не имеет встроенной событийной модели

но это вот ляп, событийная модель является главной фичей флешплеера 9 и выше.
— кстате автор нигде не учитывал возможности флешплеера 10 ) который уже вышел в релиз.

Отдельной строкой хочется сказать об отладчике.
Если во Flex Builder он еще куда ни шло, то во Flash им просто невозможно пользоваться – основным методом отладки до сих пор является trace.

При разработке крупных проектов боже вас упаси использовать и дебажить во Flash IDE! вы же не будете дебажить в Blend’e 😉

Поддержка ОС и браузеров:
А что есть нормальная(официальная) поддержка Linux? Как мне поница Moonlight дорос пока только до версии 1. вобщем то до релиза далеко.
К том же плеер более стабилен в различных системах. (мне порой приходится перегружать барузер или запускать ИЕ чтобы посмотреть приложение на Silverlight, Маководы жалуются что не всегда получается поставить плагин)

Возможность упаковки в исполняемый файл:

Стоит учитывать что есть продукты сторонних производителей которые позволяют делать испольняемые файлвы из флеш/флекс приложений, причем под разные платформы (например Zinс)

Изображения:
JPEG, GIF, PNG — флеш с этим работает на лету. Вектор, у флеша это в крови. Кроме того, что можно импортировать ai,пдф файлы автор забыли о поддержке SVG графики. Причем уже есть библиотреки позволяющие использовать ее рантайм. (Например degrafa http://www.degrafa.com/2007/07/27/how-complex-can-you-get-with-degrafa-very/).
Также можно реализовать поддержку практичеки любого формата графики (ByteArray+Bitmap+Drawing API).
Про скорость отрисовки я бы вообще ничего не говорил, как не крути у флешплеера она больше.
А проблемы подготовки графики это уже проблемы кривых рук.

Видео:
flv это хорошее сжатие, но и возможность лайфстриминга, перемотки и других фич
из коментариев:
+ есть поддержка HD video
Флешплеер это тоже поддерживает.
+ теоретически, поддержку flv можно реализовать самому, используя MediaStreamSource (тут есть примеры http://code.msdn.microsoft.com/ManagedMediaHelpers)
нужна практика а не теория, хотя такой возможностью флеш не может покак порадовать.
Как не крути пока приоритет на стороне флеша

Шрифты:

Имеет три встроенных шрифта, поддерживается импорт символов из шрифтов ТТF, ограниченно поддерживаются шрифты, установленные в системе.

просто глупость.
Мы можем влючить любой шрифт в наше приложение, и он будет работать везде.
3 шрифта, тоже глупость, Просто по умолчанию флекс компоненты используют заданые шрифты, и нечего более.

Формально, не импортированные шрифты поддерживаются. Однако, с текстом, напечатанным таким шрифтом, почти ничего нельзя делать: ни поворачивать, ни масштабировать, ни использовать в качестве маски.

Раньше (9 и ниже версии плеера) и вправду не позволяли таких операций как вращение, масштабирование (вытягивание по какой-то оси), в 10 плеере вы можете делать с любым шрифтом, что угодно и как угодно.

Сокеты:
незнаю что твориться в Silverlight, но в FlashPlayer к сожелению имеет некоторые ограничения :(

Работа с файлами:
Принципиальное преисущество было у Silverlight до выхода 10 версии флешплеера, теперь его нет ).

Хранение данных на клиенте:
хе хе пункту просто не зачет. никак не может влиять на оценку платформы.

Разметка:
Спорный вопрос. Я бы не ставил плюса ни одной из технологий.
Если говорить о скором будующем то будет революция 😉 Ключевое слово Flash Catalyst

«Программное» рисование:
Незнаю как обстоят дела в Silverlight, но во флеш им можно творить чудеса.

«Программная» анимация:

Flash/Flex: Основана на фрэймах.

Никто не мешает использовать верменные интервалы. т.е. больше возможностей ).
Я не спец в этой области и пусть те кто работают с FlashCS3|CS4 добавят свои коменты. ).

Собственные контролы:
Автор описал только один, довольно причудливый способ :).
Да. Визуально не всегда сразу можно посмотреть на внешний вид компонента.
Опять же для спора и нахождения истены в данном вопросе нужно сначало определиться с понятием “Собственный контрол”.

Кастомизация контролов
Я незнаю как работают стили в WPF, но

ни все равно почти начисто обходит css-образные стили Flex, которые по сути не многим более чем обычные словари, которые можно хранить в отдельных файлах. Стили во Flex не поддерживают байндинга, не позволяют задавать темплейты, не имеют строгой типизации, и уж тем более не позволяют хранить внутри себя анимацию, не умеют изменятся в зависимости от каких-либо условий.

Полный бред. Для начала ознакомтесь с возможностями стилировния, затем полистайте примеры на той же Деграфе. Стили во флексе ограничиваются только фантазией, как только она закончилась, так и закончились стили )

Связывание данных

Да, во Flex не создается как таковой объект биндинга

Он то создаеться, но вот доступа мы к нему не имеем. Также есть возможность создать биндинг в коде BindingUtils

А двусторонний биндинг, единственный пока что козырь Silverlight, во Flex добавят в Gumbo.

В Flex 2|3 это также легко реализуется, как в коде так и с использованием MXML :)

Реализация MVC
Flex Framework и есть реалиация MVC просто она скрыта от глаз программистов. Поэтому они не разобравшись пугаються и пытаюстся насочинять своих фреймворков ).
А насочиняли их уже много Cairngorm/PureMVC/Mate/Guasax/Model-Glue… и так далее.

Вроде пока все, что пришло на ум.

Поэтому я бы не спешил делать такие опрометчивые выводы, незная не платформы, и незная текущего состояния вещей.
В скором вермени (2009 год) Adobe ух как пошатнет преимущества разработки под сильверлайт, И я бы не стал говорить, что “с точки зрения удобства для разработчика “серебренный свет” уже вне досегаемости”.

Единственными весомым преимуществами Silverlight является:
– большее количество “тяжолых” разработчиков, которые прошли огонь и воду в програмирование под C# и т.д. В отличаии от разработчиков Flex которые в большей части работали во Флеш
– политика отношения Microsoft к разработчикам, ее тактика “Мы везде и никто кроме нас)”. Обучение, бонусы и т.д.

ЗЫ
Неосвещенным остался вопрос производительности, но это тема для отдельного большого исследования.
Как показывает практика FlashPlayer быстрее в графике, как не крути, нельзя сказать что намного, но все же приятно :)



Eclipse Monkey и Flex Builder

Tuesday, November 25th, 2008

Я нашел свою ошибку при работе с флекс билдером. Я неверно загружал ява классы билдера и поэтому немог к ним нормально обратиться. Правильный вариант выглядит так:

loadBundle("com.adobe.flexbuilder.editors.common");

скачать пример Monkey Script’a , который добавляет цвет в редактор используя диалог выбора цвета из Flex Builder, можно со страницы примеров проекта «monkey-for-flex»

Теперь мы можем гораздо больше!



Начинаем изучать Flex 3

Thursday, November 13th, 2008

Hезнание английского не освобождает от ответственности

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

Обзор документации и книг по Adobe Flex:

Официальную документацию по Flex 3/Flex Builder 3 от производителя можно найти на сайте адоба. http://www.adobe.com/support/documentation/en/flex/ Данная ссылка содержит большой список полезной документации, сделаем ее краткий обзор:

Первых 4 ссылки содержит документы описывающие установку флекс билдера и описание его функциональности (для тех кто незнаком с Eclipse платформой или кто хочет обновить свои знания стоит почитать Using Adobe Flex Builder 3 http://livedocs.adobe.com/flex/3/using_fb_flex3.pdf )

Adobe Flex Language Reference — документация по ActionScript3 и Flex 3. Она также есть в хелпе, который поставляется вместе с Flex Builder 3.

Flex 3 Developer Guide — глобальный и полный мануал по флекс, о разработке флекс приложений. Полностью описаны возможности фреймворка. Примеры кода, работа с компонентами, общение с сервером. 1300+ страниц наполненных информацией.

Programming ActionScript 3.0 — мануал о программирование на ActionScript 3. Начиная от описания синтаксиса, заканчивая работой с принтером и видео. Советую ознакомиться вначале, если вы незнакомы с АС3.

Также там много полезных мануалов на все случаи программирования на флекс 3 (Скинование, создание собственных компонент, оптимизация приложений…) Документации выполнена очень качественно и ее очень много, для начала изучения и работы с Flex 3 ее должно хватить с головой!

В конце страницы есть ссылка на архив со всей документацией.

Для тех, кто любит бумагу, уже написаны книги. Естественно, они все на английском, и купить у нас их проблематично :

Книги о ActionScript 3 (я их не листал, а те что листал уже не помню и коментировать не буду):

  • ActionScript 3.0 – Advanced Design Patterns (2006)
  • ActionScript 3.0 – Bible (Wiley)
  • ActionScript 3.0 – Design Patterns (OReilly.Jul.2007)
  • ActionScript 3.0 – Essential (OReilly.Jun.2007)
  • ActionScript 3.0 – Foundation Animation (FriendsofED.Apr.2007)
  • ActionScript 3.0 – Foundation With Flash CS3 and Flex (FriendsofED)
  • ActionScript 3.0 – Learning – A Beginners Guide (OReilly.Jan.2008)
  • ActionScript 3.0 – Object.Oriented (FriendsofED.Jul.2007)
  • ActionScript 3.0 – Programming
  • ActionScript 3.0 – Using Components
  • FriendsofED Foundation Flash CS3 Video
  • OReilly.Learning.Flash.Media.Server.3.Mar.2008

Книги по программированию на Flex 2/3:

Learning Flex 3 book

Learning Flex 3: Getting up to Speed with Rich Internet Applications
Веселая книжка по введению в разработку на Flex 3, обзор средств разработки, описание как их использовать, описание базовых вещей флекс-фреймворка, ничего сложного. Для новичка самое оно, чтобы получить представление о технологии и начать ее использовать.

Flex 3 – A Beginners Guide (McGraw.Hill.Mar.2008)
Первых 2 главы смело пропускаем (1. рассуждения на тему. 2. установка и настройка). Остальные можно смотреть через строчку. В книге дано краткое описание ActionScript3 и MXML. Очень кратко описаны возможности Flex 3 и Flex Builder 3. Книгу стоит почитать тем, кто только начинает свою работу с flex 3, больше ничего интересного в ней нет.

Flex 2 - Programming (OReilly) book

Flex 2 – Programming (OReilly)
Классика жанра. Немного теории о RIA, затем рассмотрены возможности ActionScript3 и Flex, много примеров кода и много картинок. То что она написана Flex 2 это не страшно. Я бы посоветовал ее как настольную книгу начинающего и продолжающего Flex-программиста.

The Essential Guide to Flex 2 with ActionScript 3.0 The Essential Guide to Flex 3

The Essential Guide to Flex 2 with ActionScript 3.0 | The Essential Guide to Flex 3 (FriendsofED)
Что похожее на Flex 2 – Programming (OReilly), но как по мне хуже. Общий обзор возможностей Flex.

AdvancED Flex Application Development: Building Rich Media X
Вначале немного рассказывается о Flex и Веб 2.0, Чем флекс хорош для создания RIA. Затем авторы на примере создания социальной сети рассматривают возможности Flex. Книга интересна тем, что в ней по порядку рассматривается разработка большого проекта, от задумки, возможностей, выбора средств разработки до реализации как клиента, так и серверной части. Естественно, что клиента они делают на Flex, а в сервер строят на основе движка Drupal. Книгу стоит почитать для развития кругозора и понимания как создается RIA . Как справочник по Flex она сильно годится.

Flex 3 Cookbook: Code-Recipes, Tips, and Tricks for RIA Developers

Flex 3 Cookbook: Code-Recipes, Tips, and Tricks for RIA Developers (OReilly.May.2008)
Список рецептов для Flex 3. Очень полезная книга, дает готовые решения большинства стандартных проблем, а также дает «отправные точки» для дальнейшего поиска. Советую держать ее под рукой.

Flex Solutions: Essential Techniques for Flex 2 and 3 Developers (FriendsofED)
Книга из разряда кукбуков, но если «Flex 3 – Cookbook» содержит советы о написании кода, то данная книга содержит еще советы и решения проблем связанных с настройками среды разработки. Все советы разложены по полочкам. Советую держать под рукой.

Foundation Flex for Developers

Foundation Flex for Developers (FriendsofED.Dec.2007)
Первая часть книги посвящена введению в флекс программирование. Вторая часть посвящена общению флекс приложений с сервером, используя ColdFusion, ASP.NET или PHP (как по мне довольно грустное описание так как все строиться на передаче ХМЛ, альтернативные способы, к сожалению, не рассмотрены). Третья часть посвящена работе LiveCycle Data Services (LCDS), ничего сказать не могу, опыта не имел и подробно не читал :)

Foundation Flex for Designers

Foundation Flex for Designers (FriendsofED.Jan.2008)
Книга о стилировании используя Flash, Photoshop, Illustrator и Fireworks и их интеграция с флекс. Использование дизайнер вью для создания приложения, форм, компонент. Ничего сказать немогу по поводу данной книги, мне не понравилась и нужна ли она дизайнерам ? :)

Данный список не является полным, книг по Flex 3 гораздо больше. При составлении я использовал только те книги копии которых я смог найти в сети (да простят меня их авторы)

Что же читать?

Читать нужно документацию от Адоба, она очень хорошая и охватывает практически все аспекты разработки РИА приложений используя Adobe Flex

В качестве старта для человека которому неведом мир Flex и ActionScript 3 советую начать изучение с прочтения книг:

  • ActionScript 3.0 – Essential (OReilly.Jun.2007)
  • Flex 3 – Learning (O’Reilly.Jun.2008)
  • Flex 2 – Programming (OReilly)
  • И незабывать про глобальный мануал от адоба
  • Также полезно иметь под рукой Flex 3 Cookbook и Flex Solutions: Essential Techniques for Flex 2 and 3 Developers

    После изучения этих книг, я думаю вы сможете уже сами продолжить свой путь в рядах флексеров! Удачи!



    
    ]]> rss о RIA от 33 Коровы
    Забадать RSS!
    ]]>
    ~~~~~~