Adobe Max: Day 3 - Flex Builder a Adobe Air

MyEgo.cz

home foto blogy mywindows.cz kontakt

Adobe Max: Day 3 - Flex Builder a Adobe Air

Adobe Flex

Včerejší Customer Appreciation Event znamenala večerní party v La Pelota. Dobrá hudba, fajn lidi, vynikající jídlo, povedená akce. Dnešek znamená (alespoň pro mě) dalších 6 přednášek, tentokráte ryze programátorských - soustředím se na Flex (jazyk obecně, ale i Flex Builder 3 IDE), Air runtime a LifeCycle ES (tedy PDF formuláře a tok dat 100x jinak).

Z LifeCycle ES mám velice dobrý pocit, pro řadu procesů bezpečného získávání dat a kolaboraci nad nimi je to mnohem efektivnější platforma než klasický HTML/CSS přístup a zpracování odeslaných dat třeba v PHP.

Abych poznal Flex lépe, rozhodl jsem se s chystaným redesignem MyEgo.cz do konce roku naprogramovat menší desktopové gadgety nejen v Silverlightu 2.0 (to jsem chtěl už dříve), ale i ve Flexu / Air runtime, člověk nejlépe pozná technologii tím, že v ní něco udělá.

Breathe some Air into your brand

Tom Krcha popisuje, jak napumpovat nějaký vzduch (Air) do vaší značky (brandu). :-)

Air 1.5 runtime používá WebKit po rendering, má tedy perfektní podporu pro XHTML / CSS / Javascript. Pokud chcete, můžete "desktopovou" aplikaci udělat jen v HTML a Javascriptu, bez nutnosti učit se další věci.

Air podporuje také lokální SQLite databázi, včetně jejího šifrování, takže zajišťuje bezpečnost a snadnou práci s databází lokálních dat. Dostupné jsou i třídy pro přístup k lokálnímu filesystému pro běžné souborové operace.

Samotný ActionScript 3.0 a další možnosti (audio, video, H.264, P2P, atd.) jsou identické na Flash Player 10.

Introduction to Flex (by Sven Claar)

Flex = MXML (Macromedia XML - deklarativní jazyk pro popis uživatelského rozhraní) / ActionScript 3 / HTML / AJAX, plus napojení na Flex Framework, případně LifeCycle Data Services ES, J2EE a .NET, PHP, atd. back-end.

Části Flex Framework:

  • UI-container - Panel, Vbox / Hbox, Form, View, Window, atd.
  • UI-controls: Button, CheckBox, ComboBox, atd.
  • DATAMODEL: Data Binding, Validation, RPC services.
  • BEHAVIOURS: Fade, Move, Rotate, States & Transitions (věci z Flash 10 Player).

Protokoly pro komunikaci - SOAP, HTTP(S), AMF(S) - binárně zabalený package dat (třeba XML), RTMP(S) - protokol pro streaming audia, videa, atd.

Flex SDK je zdarma, Flex Builder 3 je komerční produkt (plugin) založený na Eclipse IDE, zdarma je ovšem dostupný pro studenty. Pokud už máte instalováno Eclipse IDE, můžete si pro ně stáhnout jen Flex plugin. Dokumentace pro ActionScript 3 je online zde.

Editace a generování MXML vypadá podobně jako XAML v Blendu (Expression Studio), včetně podědění a rozšíření komponenty. Aplikace může být na webu doslova během pár sekund.

Future of Flex

Flex a ActionScript 3 má budoucnost :-) Tedy, minimálně v ní věří Adobe, protože pilně pracují na nové verzi Flexu nazvané "Gumbo".

Hlavní přínos bude v Designer / Developer workflow a wireframe oblasti, což znamená novou aplikaci - Flash Catalyst (blíže byl popisován ve včerejší přednášce). Jak jsem pochopil, bude distribuován v jednom balíku s Flex Builderem, jako nedílná součást (tedy obdoba Expression Studio 2 sady zahrnující Design, Blend, Media Encoder, až po programátorské Visual Studio).

Ve Flex frameworku a MXML se bude používat nový namespace, takže nebude nutné psát <mx:FxButton>, ale pouze <FxButton>. XML bude vypadat rozhodně čistěji. Některé (de-facto) chyby v současném návrhu frameworku, jako spousta properties nastavených jako private, ale které vývojář potřebuje modifikovat, bude nastavena na public a zpřístupněna. Nový je GraphicElement base class, který umožňuje animace a kreslení známé z Flash Player 10, odpadne tak občasné "hackování" a hromada kódu pro vizuální zobrazení.

Flash Catalyst pracuje s FXG - grafický formát podporovaný v MXML (FXG je jen jeho subset, stačí změnit prefix), a také v kreativních aplikacích Photoshop CS4, Illustrator CS4 a Fireworks CS4. Zajistí se tím dokonalá provázanost při vytváření UI aplikací na kreativní aplikace Adobe z CS4 sady.

V návaznosti na lepší možnost práce s textem (rich text editor) bude v novém Flexu knihovna na toto zaměřená, podporující vertikální zarovnání, obrázky v textu, tabulátory, odrážky, více sloupců, přetékání textu a další. Nové komponenty: FxTextInput a FxTextArea.

Zlepšení jsou i v animačním systému (FxAnimate) a transformacích mezi stavy (states). Obecně, states jsou hlavní (i když ne zcela nový) koncept pro Flash Catalyst a Flex Builder. Komponenta může mít různé (alternativní) vzhledy podle stavů (třeba běžné versus stisknuté tlačítko), ovlivnit animace navázené na procesy může tedy už přímo designér při práci v Flash Catalyst.

Doplněna je layer property, která ovlivňuje z-index objektu (dosud se počítal z-index jen automaticky podle zanoření a dědičnosti objektů). V MXML nově existuje 2-way binding na ActionScript kód (proměnné).

Veškeré změny se samozřejmě promítnou i do MXML definice, která dostane MXML 2009 verzi (oproti současné MXML 2006). Mixování syntaxe MXML 2009 a 2006 v jednom souboru nebude možné, v rámci aplikace ale ano.

Flex nebo Silverlight?

Slepice nebo vejce?

Osobně jsem moc rád poznal strategii a směřování Adobe pro Flex, Adobe vývojářské nástroje a budoucí nástroje pro UI design a wireframes (Catalyst). Adobe (Macromedia) Flex i Microsoft Silverlight jsou především nesmírně rychle rozvíjející se platformy a až na druhém místě konkurující si technologie. Vzájemně se u sebe inspirují a ženou vývoj rychle dopředu, rok staré znalosti jsou k ničemu.

Nemyslím si, že jedna drtivě zvítězí, naopak zde do budoucna budeme muset počítat s oběma, a obě je znát.

Ryze programátorské typy se asi více soustředí na Visual Studio / C# a tedy Silverlight, uživatelé OS X, kreativní typy a designéři zase na Flex a Flash Catalyst po jeho vydání (jak programátorsky, tak v podobě návrhu UI ve Flash Catalyst, Illustrator, Photoshop).

Flex je velice silný v animačních věcech (Motion, Transitions, atd.), díky napojení na kompletní funkce, které nabízí Flash Player 10.

Osobně jsem rád, že zde existuje opravdu zdravá a silná konkurence :-)


Komentáře

  1. 1 Havelka Pavel 03.12.08, 09:12:41
    FB

    Velice pěkný článek, konečně se Radek zase trochu rozepsal a místo časově drobných článků už jeho projev zase sílí, podle zvyklosti.