Loading AI tools
З Вікіпедії, вільної енциклопедії
Apache Flex (колишня Adobe Flex) — крос-платформовий відкритий каркас вебзастосунків і технологія для створення інтерактивних насичених інтернет-застосунків (Rich Internet Application (RIA), котрі ідентично виконуються як в веббраузері, так і у вигляді окремих настільних програм або мобільних застосунків.
![]() | |
Тип | Насичений інтернетний застосунок |
---|---|
Розробник | Apache Software Foundation та Adobe Systems |
Перший випуск | 20 червня 2004 |
Стабільний випуск | 4.16 (14 березня 2017 ) |
Операційна система | 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 також передані такі проєкти:
Лінійка продуктів Flex складається з сімейства пов'язаних між собою продуктів, які дозволяють конструювати абсолютно новий клас RIA, до неї входять:
Також невід'ємним доповненням до цієї лінійки є Flash Player — середовище для виконання Flex застосунків.
В основі продуктів Flex лежить Flex Framework — набір базових утиліт і технологій для розробки RIA. До Flex Framework входить бібліотека класів Flex, компілятор, зневаджувач і дві мови програмування: MXML та ActionScript.
Flash Builder — інтегроване середовище розробки для розробки застосунків у Flex Framework, яке дає інструменти для розробки, дизайну і зневадження. Flash Builder створений на основі платформи Eclipse з відкритим початковим текстом. Як наслідок його можна встановити не лише як самостійний продукт, а й як плагін до вже встановленого Eclipse, що дасть змогу використовувати потужність платформи Eclipse, яка полягає в її розширенні, і використовувати всі інструменти для розробки в одному робочому просторі. Flash Builder містить у собі набір редакторів для роботи з MXML, ActionScript та CSS, разом з інструментами навігації по сирцевому тексту, що дозволяє з легкістю управляти ним. Для розробки інтерфейсу користувача використовується режим дизайнера, який дозволяє дизайнерам або розробникам розставити Flex компоненти, настроїть їхній вигляд і те, як вони взаємодіють з користувачем та між собою, не вдаючись до програмування, а використовуючи MXML.
Середовище розробки Flash Builder навіть після передачі Flex фонду Apache залишається підконтрольним Adobe проєктом.
Flex Framework розширюється за допомогою Flex Enterprise Services. Flex Enterprises Services додають підтримку корпоративних служб сповіщень (Enterprise Message Services, EMS) и розширену архітектуру data-сервісів до Flex Framework. Flex Enterprise Services виконується на Java application сервері або Java container і забезпечують наступне:
Flex Charting Components додають в Flex Framework підтримку різноманітних типів діаграм, включаючи стовпчасті, кругові, лінійні, бульбашкові та інші. Для поліпшення наочності вигляду, можна використовувати кольорове оформлення та підписи.
Хоча технології Flex і Flash споріднені, в них є суттєві відмінності. Flex, на відміну від Flash не є таким гнучким, тому що розробка на Flex передбачає використання компонентів. Він надає розробнику визначений набір компонентів і можливість створювати нові компоненти і наслідувати існуючі. У Flex використовується дві мови програмування: MXML та ActionScript, перша використовується для опису інтерфейсу, а друга для реалізації моделі застосунків. Таке розділення дає змогу реалізовувати паттерн MVC швидко і на високому якісному рівні.
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>
При розробці моделі 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); } } }