Apache Flex (колишня Adobe Flex) — крос-платформовий відкритий каркас вебзастосунків і технологія для створення інтерактивних насичених інтернет-застосунків (Rich Internet Application (RIA), котрі ідентично виконуються як в веббраузері, так і у вигляді окремих настільних програм або мобільних застосунків.

Apache Flex
Тип Насичений інтернетний застосунок
Розробник Apache Software Foundation та Adobe Systems
Перший випуск 20 червня 2004
Стабільний випуск 4.16 (14 березня 2017; 7 років тому (2017-03-14))
Операційна система Windows, Mac OS X, Linux, Android
Мова програмування ActionScript[1]
Доступні мови англійська та японська
Стан розробки активний
Ліцензія Apache License
Репозиторій git-wip-us.apache.org/repos/asf/flex-sdk.git
Вебсайт flex.apache.org

Flex розроблявся компанією Macromedia (до версії Flex 2.0 (Alpha) включно) та після її придбання у 2005 — компанією «Adobe». На початку 2012 Adobe передала розвиток технології у руки спільноти Apache Software Foundation.[2]

Огляд ред.

Flex являє собою крос-платформовий відкритий фреймворк для створення інтерактивних (Rich Internet Applications) вебзастосунків, котрі ідентично виконуються як у веббраузері, так і у вигляді окремих настільних програм. Flex — це споріднена з Flash технологія, ґрунтована на описанні інтерфейсу користувача, зв'язку джерел даних з об'єктами, обробниками подій за допомогою діалекту XML — MXML. Flex-модулі можуть компілюватись «на льоту» на сервері, а можуть і з IDE (починаючи з версії Flex 2.0); результатом як і у випадку з Flash, є SWF файл, який виконується Flash Player'ом.

Apache Flex повністю сумісний з продуктом Adobe Flex SDK, і містить всю доступну в ньому функціональність, в тому числі засоби створення мобільних і вебзастосунків з використанням для розробки інтерфейсів розмітки MXML і мови ActionScript.

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

Історія ред.

Macromedia випустила перші версії Flex 1.0 та 1.5, націлюючи створену нею технологія на корпоративний сектор. Технологія пропонувалася компаніям за ціною $15000 на процесор. Для розгортання вимагався сервер застосунків Java EE, який на льоту компілював MXML та ActionScript у застосунки Flash (двійкові SWF-файли). Кожна серверна ліцензія включала 5 ліцензій на Flex Builder IDE.

Adobe з випуском Flex 2 значно змінила бізнесову модель. З червня 2006 року Flex SDK розповсюджувався безплатно, включаючи такі інструменти, як MXML компілятор (побудова інтерфейсу), бібліотеки ActionScript 3.0 (визначення логіки роботи), зневаджувач ActionScript, допоміжні утиліти.

Велика частина коду Flex SDK, включаючи сам фреймворк Flex, набір компіляторів і зневаджувач з 2007 поширювалися Adobe у початкових текстах під відкритою ліцензією Mozilla Public License.[3][4] Тим не менш, відкритість була обмежена неможливістю внесення виправлень і поліпшень в основну кодову базу проєкту без залучення посередників з компанії Adobe. Представники спільноти також не могли впливати на процес прийняття рішень з доопрацювання продукту.

У 2012 році Adobe офіційно передала фонду Apache всю інтелектуальну власність, пов'язану з Flex SDK і деякими додатковими компонентами. В анонсі Adobe зізнається, що в тривалій перспективі вважає HTML5 перспективнішою технологією для розробки універсальних програм для корпоративного середовища.[5] Тим не менш, поки Flex має деякі переваги при створенні великих клієнтських проєктів.

Після підготовки інфраструктури, аналізу коду, проведення аудиту ліцензійної чистоти і перевірки здатності спільноти розробників дотримання прийнятих в співтоваристві Apache принципів розробки, проєкт Flex буде переведений з інкубатора в розряд первинних проєктів Apache. Процес перевірки займе не менше декількох місяців. Код Flex стане доступний під ліцензією Apache 2.0. Розвиток Flash Builder, заснованого на Eclipse інтегрованого середовища для розробки, побудови та зневадження застосунків на базі технології Flex, поки залишається в руках Adobe.

У складі фонду Apache розробка Flex SDK ведеться відповідно до принципів меритократії, тобто управління буде в руках найактивніших учасників проєкту. До ради управління розвитком проєкту включені ключові розробники Flex з компанії Adobe, представники спільноти та компаній, які активно використовують Flex.

Крім Flex SDK і пов'язаних з ним компонентів з візуалізації та автоматизації обробки даних, фонду Apache також передані такі проєкти:

  • BlazeDS — технологія віддаленого обміну повідомленнями в режимі реального часу між серверними компонентами і вебзастосунками на базі Adobe Flex і Adobe AIR;
  • Компоненти Spark з базовими шаблонами різних підходів до формування інтерфейсу, включаючи такі контейнери з реалізацією елементів інтерфейсу, як ViewStack, Accordion, DateField, DateChooser і DataGrid;
  • Falcon — компілятор MXML і ActionScript. Робота над проєктом ще не завершена і код планується відкрити у 2012 році;
  • Falcon JS — експериментальний крос-компілятор з MXML і ActionScript в HTML і JavaScript. Falcon JS потенційно може бути використаний для автоматичної трансляції Flex-застосунків до подання на базі технологій HTML5/JavaScript;
  • Інструментарій для тестування Flex, раніше використовуваний для внутрішніх потреб компанії Adobe і контролю за високою якістю коду.

Історія випусків ред.

  • 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 — червень, 2007
  • Flex 3.0 Beta 2 — жовтень, 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 — жовтень 2010
  • Flex 4.5 — 3 травня 2010
  • Flex 4.6 — 30 листопада 2011
  • Flex 4.8 — 25 липня 2012, перший випуск під орудою Apache Software Foundation

Лінійка продуктів Flex ред.

Лінійка продуктів Flex складається з сімейства пов'язаних між собою продуктів, які дозволяють конструювати абсолютно новий клас RIA, до неї входять:

  • Flex Framework
  • Flash Builder
  • Flex Enterprises Services
  • Flex Charting Components

Також невід'ємним доповненням до цієї лінійки є Flash Player — середовище для виконання Flex застосунків.

Flex Framework ред.

В основі продуктів Flex лежить Flex Framework — набір базових утиліт і технологій для розробки RIA. До Flex Framework входить бібліотека класів Flex, компілятор, зневаджувач і дві мови програмування: MXML та ActionScript.

Flash Builder ред.

Flash Builder — інтегроване середовище розробки для розробки застосунків у Flex Framework, яке дає інструменти для розробки, дизайну і зневадження. Flash Builder створений на основі платформи Eclipse з відкритим початковим текстом. Як наслідок його можна встановити не лише як самостійний продукт, а й як плагін до вже встановленого Eclipse, що дасть змогу використовувати потужність платформи Eclipse, яка полягає в її розширенні, і використовувати всі інструменти для розробки в одному робочому просторі. Flash Builder містить у собі набір редакторів для роботи з MXML, ActionScript та CSS, разом з інструментами навігації по сирцевому тексту, що дозволяє з легкістю управляти ним. Для розробки інтерфейсу користувача використовується режим дизайнера, який дозволяє дизайнерам або розробникам розставити Flex компоненти, настроїть їхній вигляд і те, як вони взаємодіють з користувачем та між собою, не вдаючись до програмування, а використовуючи MXML.

Середовище розробки Flash Builder навіть після передачі Flex фонду Apache залишається підконтрольним Adobe проєктом.

Flex Enterprise Services ред.

Flex Framework розширюється за допомогою Flex Enterprise Services. Flex Enterprises Services додають підтримку корпоративних служб сповіщень (Enterprise Message Services, EMS) и розширену архітектуру data-сервісів до Flex Framework. Flex Enterprise Services виконується на Java application сервері або Java container і забезпечують наступне:

  • Доступ до RemoteObjects через AMF протокол
  • Спільне використання даних декількома клієнтами
  • Підтримка обміну даними клієнт-клієнту
  • Автоматичне розповсюдження (push) даних з серверу
  • Ідентифікація клієнта при доступі до серверних ресурсів.
  • Data service logging

Flex Charting Components 2 ред.

Flex Charting Components додають в Flex Framework підтримку різноманітних типів діаграм, включаючи стовпчасті, кругові, лінійні, бульбашкові та інші. Для поліпшення наочності вигляду, можна використовувати кольорове оформлення та підписи.

Особливості ред.

Хоча технології Flex і Flash споріднені, в них є суттєві відмінності. Flex, на відміну від Flash не є таким гнучким, тому що розробка на Flex передбачає використання компонентів. Він надає розробнику визначений набір компонентів і можливість створювати нові компоненти і наслідувати існуючі. У Flex використовується дві мови програмування: MXML та ActionScript, перша використовується для опису інтерфейсу, а друга для реалізації моделі застосунків. Таке розділення дає змогу реалізовувати паттерн MVC швидко і на високому якісному рівні.

MXML ред.

MXML — діалект XML, який використовується для опису структури та інтерфейсу Flex-застосунка, його компонентів, деяких елементарних обробників подій та інше. Це так звана «статична» частина програми. MXML приховує від розробника внутрішній механізм роботи об'єктів/компонентів, представляючи їхні базові властивості у вигляді тегів та атрибутів.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
  <mx:Panel x="154" y="147" width="250" height="160" layout="absolute" title="Login">
    <mx:Form top="0" left="0" bottom="0" right="0">
      <mx:FormItem label="Login" width="200">
        <mx:TextInput/>
      </mx:FormItem>
      <mx:FormItem label="Password" width="200">
        <mx:TextInput/>
      </mx:FormItem>
      <mx:Button label="Submit"/>
    </mx:Form>
  </mx:Panel>
</mx:Application>

ActionScript 3.0 ред.

При розробці моделі Flex-застосунків використовується ActionScript 3.0, мова програмування базована на специфікації ECMAScript. На відміну від попередніх версій AS 3.0 використовує нову віртуальну машину AVM 2.0, що дає великий приріст продуктивності роботи Flex-застосунків. На відміну від попередньої версії AS 2.0, AS 3.0 замість формального синтаксису класів, надає дійсне (class-based) Об'єктно-орієнтоване програмування.

package {
   import flash.display.Sprite;
   import flash.text.TextField;
   import flash.filters.DropShadowFilter;
   public class HelloWorld extends Sprite {
      public function HelloWorld() {
         var shad:DropShadowFilter = new DropShadowFilter(2, 45, 0x000000, 25, 3, 3, 2, 2);
         var txt:TextField = new TextField();
         txt.textColor = 0xFFFFFF;
         txt.filters = [shad];
         txt.width = 120;
         txt.x = Math.random()*300;
         txt.y = Math.random()*300;
         txt.selectable = false;
         txt.text = "Hello World welcome! ["+Math.round(txt.x)+","+Math.round(txt.y)+"]";
         addChild(txt);
      }
   }
}

Виноски ред.

  1. https://projects.apache.org/json/projects/flex.json
  2. Adobe Flex принят в инкубатор Apache [Архівовано 19 січня 2012 у Wayback Machine.] // opennet.ru
  3. Adobe to Open Source Flex. Архів оригіналу за 16 липня 2007. Процитовано 30 квітня 2012.
  4. Adobe открывает исходные тексты Flex SDK. Архів оригіналу за 5 серпня 2020. Процитовано 30 квітня 2012.
  5. Adobe превратит Flex SDK в независимый открытый проект и станет более активно продвигать HTML5. Архів оригіналу за 8 травня 2012. Процитовано 30 квітня 2012.

Посилання ред.