Flex (вступна стаття)

Січень 20, 2010 Автор: admin

Логотип Adobe Flex

Adobe Flex (Флекс) — це споріднена з Flash технологія, яка дозволяє швидко і просто створювати «насичені інтернет-додатки»* (модне нині слово «RIA» — rich internet applications), а також традиційні програми. Flex — продукт з відкритим вихідним кодом.

Результатом компілювання Flex-модулів, як і у випадку з Flash, є SWF-файл. Це доволі компактний файл, для відтворення якого (частіше всього в броузері) потрібен програвач Flash Player. А, оскільки той стоїть на 99% комп’ютерів, то проблем з розповсюдженням не повинно виникати.

Приклад веб-сервісу, створеного за технологією Flex

Рис. 1. Приклад веб-сервісу, створеного за технологією Flex.

На Flex можна створювати:

  • Інтернет-додатки, які відтворюються Flash Player’ом.
  • Настільні програми, що працюють в середовищі AIR.

Таким чином, вивчаючи і застосовуючи Flex, ви вбиваєте одразу двох зайців, адже можете писати програми не лише під Веб, але й т. з. традиційне програмне забезпечення.

Приклади Flex-проектів

Чому б не використовувати Flash?

В основі своїй Flash задумувався для створення анімації і тому створення додатків зі складною схемою взаємодій, як правило, перетворюється в трудомісткий і незручний процес для розробника.

Сильні сторони Flex

  • Швидкий поріг входження для розробників з досвідом роботи на HTML чи XML.
  • Хороша система обробки подій.
  • Багатий набір безкоштовних компонентів. В Інтернет присутня демонстраційна сторінка від Adobe, на якій можна візуально ознайомитися з роботою базових компонентів — Adobe Flex 3 Component Explorer.
  • Можливість створювати красиві ефекти (візуальні компоненти Flex мають стандартний набір графічних фільтрів і ефектів).
  • Flex надає повні мультимедійні можливості платформи Flash (потокове відео, звук).
  • До переваг також варто віднести технологію зв’язування даних (англ. Data Binding). Зв’язування даних полягає в тому, що ви можете з легкістю пов’язувати два об’єкта між собою, що дозволяє підтримувати їх синхронізацію. Не зовсім зрозуміло? Не біда. Гарна стаття по цій темі є на Хабрахабр — Flex Data Binding Tricks (рос.).
  • Потужна підтримка «скінів» (skins) додатків. Щоб не бути багатослівним, раджу завітати на сторінку «Skins for Flex and AIR» і самим переконатися.

«Cкіни» для Flex-додатків на сайті scalenine.com

Рис. 2. «Cкіни» для Flex-додатків на сайті scalenine.com.

MXML та ActionScript

В основі технології лежать дві різні мови:

  • MXML (мова розмітки, яка базується на XML) і
  • ActionScript (об’єктно-орієнтована мова програмування зі строгою типізацією; використовується також у Flash).

Якщо MXML потрібна для опису компоновки і структури додатку, то ActionScript відповідає за взаємодію з користувачем.

MXML — це звичайний текст, який легко читати і модифікувати в простому текстовому редакторі. Код ActionScript можна розміщувати прямо поміж MXML-теґами (цей прийом видасться знайомим тим, хто до того працював з парою HTML + JavaScript).

Хочу наголосити, що Flex-додаток можна написати виключно за допомогою мови програмування ActionScript без використання MXML. Адже в процесі компіляції всі MXML-теґи конвертуються в ActionScript-код, який в свою чергу компілюється в SWF-файл. Обидві мови в кінцевому рахунку описують одні і ті ж об’єкти, але з різним синтаксисом. Для чого тоді було придумувати MXML? Для зручності і простоти. Давайте детальніше зупинимося на цьому моменті.

Скажімо, щоб за допомогою ActionScript створити кнопку, ви мали б написати наступний код (текст, що йде після двох косих рисок (//) є коментарем, його можна не брати до уваги):

// здійснюємо імпорт mx.controls.Button
// (повідомляємо компілятор про необхідність
// підготувати компонент Button до використання)
import mx.controls.Button;


// створюємо екземпляр кнопки
myButton = new Button();


// прописуємо текст на кнопці
myButton.label = "Я - кнопка ;)";



// поміщаємо кнопку в список для відображення
addChild (myButton);


За допомогою MXML той же результат досягається кодом:

<mx:Button id="myButton" label="Я - кнопка ;)" />

Лаконічно, логічно і зручно, чи не так.

(Забігаючи наперед, скажу, що за допомогою Flex Builder не потрібно руками набирати і цього коду, достатньо перетягнути кнопкою миші компонент в потрібне місце і прописати в певному полі властивість «label».)

Зручні інструменти для роботи

Нагадаю, Flex розповсюджується абсолютно безкоштовно. Тому при бажанні ви можете редагувати свій додаток у звичайному текстовому редакторі та компілювати його в режимі командного рядка. Але в такому разі ви вчините не раціонально. Краще використати спеціалізоване середовище.

На чому зручно розробляти Flex-додатки?

  • Flex Builder — платний візуальний редактор Flex, створений розробниками Adobe на базі Eclipse IDE.
  • FlashDevelop вільне середовище розробки і редактор, що дозволяє створювати Rich Internet Application за допомогою Flex SDK, haxe (тільки для Windows).
  • … або ж можна використовувати плагін для Eclipse.

Flex Builder 3 в режимі дизайнера

Рис. 3. Flex Builder 3 в режимі дизайнера.

Як на мене, то найкращим інструментом для створення Flex-додатків є Flex Builder, тому його я і використовую для роботи. Flex Builder значно підвищує ефективність проектування і розробки. Нагадаю, програма платна, але має trial-версію (60 днів), яку варто спробувати, хоча б для того, щоб мати з чим порівнювати.

Коли не варто використовувати Flex?

  • Якщо ваша мета — нескладна анімація, то краще використати Flash;
  • Не варто також робити звичайні (контентні) сайти, які орієнтовані на хорошу індексацію пошуковими системами, повністю на Flex’і. Чому? Тому, що сайти на звичайному HTML індексуються краще.
  • Також зверніть увагу на той факт, що SWF-файл, отриманий після компіляції вашого проекту, має чималу вагу (як для веб’у звісно ж). Інколи цей фактор є критичним.

Що почитати?

Серед друкованої літератури я маю хіба-що книжку Аларіка Коула (Alaric Cole) «Вивчаємо Flex 3. Керівництво з розробки насичених інтернет-додатків» (рос., 384 ст.). Книга (спільний проект O’Reilly Media Inc. та Adobe Systems) являє собою вступ в світ Adobe Flex і стане хорошим покроковим керівництвом для всіх, хто хоче вивчити цю технологію «з нуля» (заради цього я її і купляв). Щоправда, доволі швидко її стає замало (не сприйміть за недолік).

Матеріал в Інтернеті для швидкого старту:

Якщо будете «копати в глиб», то раджу взяти на замітку наступні ресурси:

* Під терміном «насичений інтернет-додаток» слід розуміти програму, доступну через Інтернет, яка багата функціональністю традиційних настільних програм, що не підтримується браузерами безпосередньо.

** Схожі до Flex технології: Microsoft Silverlight, JavaFX. Увагу слід звернути на Silverlight — конкурент Flex.

Популярність: 30%

Теґи до статті: , , , , , , , , .

Сподобалось?

Поділіться цією статтею з друзями:   Share on Twitter! Share on Delicious Share on Digg! Share on Reddit! Subscribe by RSS! Share on StumbleUpon!

Читайте також:

Залишити коментар

Коментарів: 4 до “Flex (вступна стаття)”

  1. mr.psihoNo Gravatar каже:

    Хм..? З першого погляду Flex Builder для Flash як Dreamweaver для HTML :)
    Дякую, цікаво було ознайомитись. Якщо це вступна стаття, значить будуть ще. Вже чекаю.

  2. adminNo Gravatar каже:

    Так, поточна публікація сподіваюсь буде першою ластівкою по цій темі та й Флекс я активно використовую по роботі.

    Але навряд я стану будувати свої майбутні статті з розрахунку на навчання “з нуля”. На такий підхід піде дуже багато часу і зведеться він до переказування того, що вже є в будь-якій хорошій книзі по Флекс. А головне — матеріал в ній викладено вичерпно і послідовно. Зазначена мною книга в статті цілком підійде для цієї справи (кажу з власного досвіду).

    P.S. Гадаю, у фрагменті “Flex Builder для Flash” має замість слова Flash бути Flex.

  3. ZenykNo Gravatar каже:

    Цього тижня десь опублікую про Flex + Java на прикладі WebORB та Flex + PHP на прикладі Zend

  4. GrAndSENo Gravatar каже:

    Роки зо два тому довелось зіткнутись з усілякими flash/flex. Відверто кажучи з тих пір мені після того зовсім не хочеться працювати з цим знову - звик я до таких речей як java/C++, а тепер от насолоджуюсь Python. І не тягне :)

Залишити коментар

XHTML: Ви можете використовувати наступні теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Spam Protection by WP-SpamFree