Apache Flex

Apache Flex
Логотип программы Apache Flex
Тип Rich Internet application
Разработчики Apache Software Foundation и Adobe Systems
Написана на ActionScript[1]
Операционные системы Windows, macOS, Linux, BlackBerry Tablet OS, Android, iOS
Языки интерфейса английский и японский
Первый выпуск Март 2004
Последняя версия 4.16.1 (22 ноября 2017; 6 лет назад (2017-11-22))
Репозиторий git-wip-us.apache.org/re…
Лицензия

Apache License Version 2.0 (начиная с версии 4.8.0)

Mozilla Public License (Flash Builder и Flash Player под коммерческой лицензией) — до версии 4.6
Сайт http://flex.apache.org/ и adobe.com/products/flex.html
Логотип Викисклада Медиафайлы на Викискладе

Apache Flex (ранее Adobe Flex, до приобретения Macromedia компанией Adobe — Macromedia Flex) — комплект средств разработки (SDK) для создания кросс-платформенных Rich Internet Applications на основе Flash. Разработанный вначале компанией Macromedia и приобретённый затем компанией Adobe Systems, Flex был пожертвован компанией Adobe фонду Apache Software Foundation в 2011 году[2][3]. Члены ASF по результатам голосования[4] включили его в Apache Incubator и через полгода, в июле 2012 выпустили новую версию (4.8.0).

Flex расширяет базовые возможности Flash, позволяя описывать интерфейс приложения на XML, ускоряя и упрощая процесс разработки насыщенных веб-приложений. Логика приложения пишется на ActionScript 3. Результатом компиляции является файл SWF, предназначенный для выполнения в браузере (на платформе Flash Player) или как самостоятельное приложение (на платформе AIR). Flex-приложение может компилироваться на сервере (для этого потребуется mod_flex.so или mod_flex.dll в зависимости от ОС и веб-сервера), а может — из IDE или непосредственно из командной строки с помощью компилятора mxmlc (начиная с Flex 2), как и во Flash, результатом является файл swf, исполняемый в Flash Player.

Отличия Flex от Flash

Flex — это большой набор классов, расширяющих возможности Flash. Flex-framework включает возможности локализации, стилизации приложения, разработки модульного приложения, встроенные валидаторы и форматоры текстовых полей — все те инструменты, которые нужны разработчикам приложений, работающих online.

Инструменты создания RIA основаны на flex-framework (Adobe Catalyst, Adobe Flex, Aptana Studio и т. д.). Инструменты для работы с анимацией и графикой используют только базовые возможности flash (поэтому баннеры и медийная реклама делаются без использования flex).

Достоинства

Интегрированная среда разработки Adobe Flash Builder (ранее известна как Flex Builder), которая обеспечивает более высокую производительность, создана на свободно распространяемой платформе разработки Eclipse. Поскольку многие разработчики уже используют Eclipse при программировании на Java, Flex Builder 2 предоставляет им знакомую среду для создания и Java-приложений, и полнофункциональных клиентов.

Flex, помимо скорости разработки, предоставляет полные мультимедийные возможности Flash Platform: включая потоковое мультимедиа, возможность получить доступ к веб-камере и микрофону пользователя, бинарные сокеты, обширные возможности сетевых коммуникаций (HTTP-запросы, веб-сервисы, встроенный формат сериализации AMF), оперирование координатами трехмерного пространства, возможности использования встроенных фильтров (таких как расфокусировка, падающая тень и др.), и написания собственных.

Благодаря Flex, веб-сервисы могут использоваться для связи с сервером при частом обращении к данным при небольшой полезной нагрузке. Для более ресурсоемких приложений Adobe предлагает программное обеспечение Flex Data Services 2 Express, которое может поддерживать связь между источником данных и уровнем представления.
Flex Data Services 2 способен передавать данные с сервера на клиент. Серверный компонент может, например, извлечь данные из серверного приложения SAP и переслать их клиенту. Теперь функции Flex Presentation Server встроены в Flex Data Services.

Ещё одно неоспоримое достоинство технологии Flex, тесно связанное с достоинствами ActionScript 3 — это возможность OpenSource разработки Flash-проектов без использования Adobe Flash Professional, с помощью «чистого» программирования. При этом Flash-разработка становится принципиально доступна в том числе и на Unix-платформах.

Недостатки

Работа flex-framework основана на относительно большом количестве собственного AS3-кода. Для примерной оценки: стандартный набор классов, включаемый по умолчанию в каждое разрабатываемое flex-приложение, занимает более 700 килобайт в итоговом swf-файле. Таким образом, общий объём кода, необходимый для исполнения flex-приложения, заметно увеличивается. В более поздних версиях флеш-плеера реализован механизм, который даёт возможность использовать классы flex, не включая их в каждый отдельный swf. При первом запуске такого swf, флеш-плеер подгрузит необходимые файлы с официального сайта в отведённый для этого кэш флеш-плеера. Однако, подгрузка дополнительных файлов из внешнего источника в некоторых случаях является неприемлемой или нежелательной. В этом случае, компоненты flex-framework должны быть скомпилированы и добавлены непосредственно в swf-файл, что заметно увеличивает размер swf-файла, если речь идёт о «легковесных» приложениях.

Ценовая политика

Flex SDK предоставляемый Adobe является бесплатным набором инструментария (framework) с полностью открытым исходным кодом (Open Source). Для работы с процедурами и классами этого фреймворка (написание кода, отладка, компиляция в исполняемый код) потребуется платное или бесплатное программное обеспечение (см. ссылки ниже).

Компания Adobe решила открыть исходный код среды Flex к концу 2007 года и начать распространение этого продукта на условиях Mozilla Public License (MPL). Известно, что в открытую версию Flex будут входить программное обеспечение для создания соответствующих приложений, набор библиотек и компиляторов, средство для разработки, интегрируемое в среду Eclipse IDE, а также система Flex Data Services, предназначенная для работы с базами данных.

История версий

  • Flex 1.0 — Март, 2004
  • Flex 1.5 — Октябрь, 2004
  • Flex 2.0 (Alpha) — Октябрь, 2005
  • Flex 2.0 Beta 1 — Февраль, 2006
  • Flex 2.0 Beta 2 — Март, 2006
  • Flex 2.0 Beta 3 — Май, 2006
  • Flex 2.0 Final- Июнь 28, 2006
  • Flex 2.0.1 — Январь 5, 2007
  • Flex 3.0 Beta 1 — Июнь 11, 2007
  • Flex 3.0 Beta 2 — Октябрь 1, 2007
  • Flex 3.0 Beta 3 — Декабрь 12, 2007
  • Flex 3.0 — Февраль 25, 2008
  • Flex 3.1 — Август 15, 2008
  • Flex 3.2 — Ноябрь 17, 2008
  • Flex 3.3 — Март 4, 2009
  • Flex 3.4 — Август 18, 2009
  • Flex 3.5 — Декабрь 18, 2009 [1]
  • Flex 4.0 — Март 22, 2010
  • Flex 4.5 Hero Preview Release[5] — Октябрь, 2010
  • Flex 4.6.0 — Ноябрь, 2011
  • Flex 4.8.0 — Июль 25, 2012
  • Flex 4.10.0 — Август 6, 2013
  • Flex 4.11.0 — Октябрь 28, 2013
  • Flex 4.12.0 — Март 10, 2014
  • Flex 4.12.1 — Май 3, 2014
  • Flex 4.13.0 — Июль 16, 2014
  • Flex 4.14.0 — Январь 30, 2015
  • Flex 4.14.1 — Март 31, 2015
  • Flex 4.15.0 — Январь 11, 2016
  • Flex 4.16.0 — Март 12, 2017
  • Flex 4.16.1 — Ноябрь 22, 2017

Компоненты

  • Cairngorm (микроархитектура предоставленная Adobe)
  • PureMVC (микроархитектура)
  • Drop AS3 (микроархитектура)
  • Robotlegs (микроархитектура)
  • Mate (микроархитектура)
  • Spring Flex (ссылка не работает)
  • ASWing — бесплатный набор компонентов, (open-source)
  • FLEXLIB — open-source библиотека компонент
  • FLEXMDI — библиотека для создания MDI-приложений

Среды разработки

Сравнение Flex IDE

Продукт Лицензия Производитель платформы
CodeDrive commercial iSpring Research Visual Studio
Flex Builder commercial Adobe win & mac & linux с ограниченными возможностями

(с версии 4 переименован в Flash Builder)

Eclipse WTP free eclipse
FlashDevelop free FlashDevelop Team Windows
PowerFlasher FDT commercial PowerFlasher eclipse
Aptana Studio commercial Aptana Studio eclipse
IntelliJ IDEA commercial JetBrains java
Spket IDE free & commercial eclipse

См. также

  • OpenLaszlo — альтернатива Flex технологии
  • Silverlight — альтернатива Flex технологии от Microsoft
  • JavaFX — альтернатива Flex технологии от Oracle
  • BlazeDS — для интеграции Flex с чем-либо (например, Java).
  • Pyamf — реализация протокола AMF и AMF3 на Python
  • Plasmads — реализация Flex Messaging и Remoting на Python

Примечания

  1. https://projects.apache.org/json/projects/flex.json
  2. Joab Jackson. Adobe Donates Flex to Apache (англ.). PCWorld (16 ноября 2011). Дата обращения: 3 декабря 2012. Архивировано из оригинала 4 декабря 2012 года.
  3. Joab Jackson. Adobe donates Flex to Apache (англ.). TechWorld (17 ноября 2011). Дата обращения: 3 декабря 2012. Архивировано из оригинала 4 декабря 2012 года.
  4. Delacretaz, Bertrand (30 Dec 2011). "[RESULT][VOTE] Flex to join the Apache Incubator". Apache Incubator General List (Mailing list) (англ.). Архивировано 1 марта 2013. Дата обращения: 29 ноября 2012.
  5. Download Flex Hero — Flex SDK — Adobe Open Source  (неопр.). Дата обращения: 26 декабря 2010. Архивировано из оригинала 25 апреля 2011 года.

Ссылки

  • Adobe Flex Support (англ.)
  • Быстрый старт с Flex 2 (англ.)
  • Пример приложения на Flex 2 (англ.)
  • Флексипедия: русскоязычная флекс-вики
  • Краткое описание онлайн-системы учёта ошибок в Adobe Flex (JIRA)
IT пресса о Flex
  • CFLEX: Community Flex
  • What Is Adobe Flex?
  • Top 10 Adobe Flex Misconceptions
  • Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
Перейти к шаблону «Adobe»
Клиентское ПО
Серверное ПО
Технологии
Сервисы
Совет директоров
Приобретение
других компаний
  • Объединения и приобретения[англ.]
  • Aldus
  • Macromedia
  • Scene7[англ.]
  • Категория Категория
  • Викисклад
Перейти к шаблону «Инструментарии виджетов»
Инструментарии (наборы) элементов графического интерфейса
Низко-
уровневые
Высоко-
уровневые
Amiga OS
Mac OS и
macOS
  • Cocoa
  • MacApp
  • MacZoop
  • PowerPlant
Windows
UNIX, под X
Кросс-
платфор-
менные
На основе Flash
На основе XML,
AJAX или SVG
На основе Java
На основе
C или C++
На основе Common Lisp
На основе Pascal
На основе Python
На основе Objective C
Перейти к шаблону «Eclipse plugins»
Плагины[англ.] Eclipse
  • Adobe Flex
  • Adobe LiveCycle[англ.]
  • Aptana
  • Avaya Dialog Designer
  • Bioclipse[англ.]
  • Borland Together[англ.]
  • Carbide.c++[англ.]
  • Collanos
  • EasyEclipse[англ.]
  • FindBugs
  • G-Eclipse[англ.]
  • Granite data services[англ.]
  • IBM Rational Software
  • IBM Websphere Studio Application Developer
  • JBoss Tools[англ.]
  • JBuilder
  • JFire[англ.]
  • Jtest[англ.]
  • Lomboz[англ.]
  • MyEclipse[англ.]
  • Objecteering[англ.]
  • OptimalJ[англ.]
  • oXygen[англ.]
  • PyDev[англ.]
  • RadRails
  • Visual Paradigm for UML[англ.]
  • Zend Studio