Apache Flex

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Apache Flex
Розробник(и) Apache Software Foundation та Adobe Systems
Перший випуск 20 червня 2004
Стабільний випуск 4.12 (10 березня 2014; 205 днів тому)
Операційна система Windows, Mac OS X, Linux, Android
Доступні мови англійська та японська
Стан розробки активний
Тип Насичений інтернетний застосунок
Ліцензія Apache License
Сайт flex.apache.org

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

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

Огляд[ред.ред. код]

Flex являє собою крос-платформовий відкритий фреймворк для створення інтерактивних (Rich Internet Applications) веб-застосунків, котрі ідентично виконуються як у веб-браузері, так і у вигляді окремих настільних програм. Flex — це споріднена з Flash технологія, ґрунтована на описанні інтерфейсу користувача, зв'язку джерел даних з об'єктами, обробниками подій за допомогою діалекту XMLMXML. 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.[2][3] Тим не менш, відкритість була обмежена неможливістю внесення виправлень і поліпшень в основну кодову базу проекту без залучення посередників з компанії Adobe. Представники спільноти також не могли впливати на процес прийняття рішень з доопрацювання продукту.

У 2012 році Adobe офіційно передала фонду Apache всю інтелектуальну власність, пов'язану з Flex SDK і деякими додатковими компонентами. В анонсі Adobe зізнається, що в тривалій перспективі вважає HTML5 перспективнішою технологією для розробки універсальних програм для корпоративного середовища.[4] Тим не менш, поки 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);
      }
   }
}

Виноски[ред.ред. код]

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