K čemu slouží Adobe Flex

Flex je open source framework z dílen Adobe, s jehož pomocí můžete vytvářet vysoce interaktivní webové (RIA – Rich Internet Applications) i klasické desktopové aplikace. V seriálu se zaměříme hlavně na webové aplikace. K pochopení tohoto i následujících článků nejsou vyžadovány téměř žádné předchozí znalosti.
K nasazení Flexu na web nepotřebujete žádný speciální hosting, ani doinstalovávat na server nějaká rozšíření. Flex běží, podobně jako například starší bráška Flash, na straně klienta. S Flashem má Flex společnou ještě jednu velmi příjemnou vlastnost – běží pod Flash Playerem. Pro mě osobně to byla jedna z klíčových věcí, kvůli kterým jsem se při výběru rozhodl právě pro Flex. Flash Player je totiž nainstalován na drtivé většině počítačů připojených k internetu.
K čemu se Flex hodí
Ve zkratce se dá říct, že Flex se hodí všude tam, kde vám už nestačí klasické techniky pro vývoj webových aplikací pomocí HTML, CSS nebo JavaScriptu. Díky Flexu můžete svým uživatelům nabídnout relativně jednoduchým způsobem profesionálně vypadající aplikace, které svým vzhledem, funkčností a hlavně způsobem práce budou hodně připomínat aplikace běžící na vašem počítači.

Co Flex není
I když má Flex s Flashem hodně společného, na rozdíl od něj se nehodí pro výrobu bannerů či animací. Flex běží na straně klienta, což také znamená jistá omezení v interakci například s databází. Je bezpečnostním rizikem přistupovat k databázi přímo z Flexu, a proto se často pro tento účel používá mezivrstva na serveru. V tomto seriálu bude v takových příkladech použito PHP, protože toto řešení považuji za nejdostupnější. V České republice funguje nespočet webhostingů, které mnohdy i zadarmo podporu PHP poskytují. Tím je zajištěno, že si příklady můžete sami vyzkoušet nejen doma, ale i v reálných podmínkách na internetu. Jak jsem ale uvedl na začátku článku, znalost PHP nebudete potřebovat.
Technologie dvou jazyků
MXML
Pro vývoj ve Flexu se používají dva jazyky. Prvním z nich je MXML, který primárně slouží pro tvorbu grafického rozhraní aplikace. MXML je jazyk postavený na XML, který je intuitivní a snadno čitelný stroji i lidmi. Proto předpokládám, že nikomu nebude dělat potíž.
Ukázka MXML:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Label x="146" y="350" text="Ahoj světe" color="#000000" fontWeight="bold"/>
</mx:Application>
První řádek je povinný pro jakýkoliv XML soubor a sděluje nám, že jde o XML verze 1.0 a znakovou sadou UTF-8. Druhý řádek obsahuje kořenovou značku naší aplikace. No a konečně jsme se dostali ke třetímu řádku. Tady voláme komponentu Label, která má zde jediný účel: vypsat text „Ahoj světe“, černou barvou (color=„#000000“), tučně (fontWeight=„bold“) na vzdálenosti 146px od pravého okraje (x=„146“) a 350px od horního okraje aplikace (y=„350“).
ActionScript
Dalším, již plnohodnotným, programovacím jazykem je ActionScript v aktuální verzi 3. Tento jazyk, jako většina dnes používaných jazyků, vychází syntaxí z jazyka C. Líbit se bude hlavně milovníkům Javy, protože jsou si velice podobné. Jazyk je to silně typový a objektově orientovaný. Samozřejmě můžeme ActionScript použít i pro programování vzhledu (dokonce se do ActionScriptu v jedné z fázi kompilace přepisuje MXML, ale o tom později), nicméně se v praxi používá spíše pro programování samotného fungování aplikace, tedy pro aplikační logiku.
Následuje ukázka, která dělá to samé, co předchozí ukázka v MXML.
var text:Label = new Label();
text.text = "Ahoj světe";
text.x = 350;
text.y = 146;
text.setStyle("color", "#000000");
text.setStyle("fontWeight", "bold");
Kód v MXML se ukládá do souborů s příponou .mxml a ActionScript do .as. Nicméně to není podmínkou. Pokud bychom chtěli spustit tuto aplikaci, museli bychom ji zkompilovat. K tomu je určený volně dostupný kompilátor. Ten ovšem není příliš pohodlný, spouští se z příkazové řádky a tak nebude pro začátečníky moc vhodný. Existuje snazší způsob.
K vývoji Flex aplikací vydalo Adobe balík Flex Builder, aktuálně ve verzi 3. Flex Builder obsahuje kvalitní IDE postavené na Eclipse, kompilátor, debugger a samotný framework. Tento balík není zadarmo (jeho aktuální cenu najdete na webu Adobe), ale můžete si stáhnout šedesátidenní zkušební verzi.
Flex Builder 3 zdarma, ovšem jen pro studenty
Tady bych se rád zmínil o nabídce Adobe, která vychází vstříc studentům, kteří by se s tímto nástrojem chtěli naučit pracovat. Pokud stále studujete, můžete získat zcela legálně a zdarma licenci tohoto nástroje. Jediné, co proto musíte udělat, je zaregistrovat se na https://freeriatools.adobe.com/flex/. K tomuto kroku budete ještě potřebovat potvrzení o studiu. Vyřízení by mělo trvat maximálně 2 týdny, ovšem v praxi to trvá tak týden.
Pokud nejste ani student, ani si Flex Builder nemůžete dovolit a vypršela vám 60denní licence, nezoufejte. Existuje i volně šiřitelný plugin do Eclipse, který podporu Flexu přidává. Jde však jen o doplňování syntaxe a zvýrazňování kódu. Kompilaci ovšem stejně budete muset dělat ručně a na debugování můžete klidně zapomenout.
To je k dnešnímu dílu všechno. Pro další informace se můžete podívat na oficiální stránky flex.org. Pokud se chcete mrknout na efektní ukázky použití Flexu, doporučuji prohlédnout showcase. Pokud si s něčím nevíte rady, podívejte se na kvalitně zpracovanou dokumentaci. Mým oblíbeným zdrojem informací je také kuchařka.
Pan "autor" se zrejmne domniva,ze slohova stranka clanku nehraje roly, ale to je chiba.At se ten vivojar nauci cesky.Neumi psat.
Ked kritizujete nieco okolo gramatiky pisania clanku tak aspon svoj prispevok napiste bez CHIBI.
zrejmne, roly, chiba, vivojar … a jinak zdraví slouží nebo to bylo úmyslně?
Tady nekdo nepochopil ironii…
tesim sa, ze tu bude aj serial o flexe,
chcel by som sa spytat ze ako casto bude tento serial vychadzat a kolko casti autor planuje.
dakujem za odpoved
Díky za přízeň. Počet dílů nijak stanoven nemám, ale rád bych, aby vycházel minimálně jednou týdně.
planujete zaradit nejake clanky aj o oficialnom flex frameworku Cairngorm ?
Ze začátku bych chtěl pokrýt co nejvíce ze samotného frameworku Flex a chtěl jsem se zaměřit na věci jako videorecording či jiná forma "spolupráce" s Flash media server, protože si myslím, že je to dneska docela atraktivní téma. Nicméně pokud bude zájem, tak jsem ochoten probrat i tuto oblast. Ovšem nikdo neříká, a připadne mi to teď i jak dobrý nápad, že i při tom videorecordingu nemůžem nějaký ten nádstavbový framework použít. Už třeba jen pro ukázku použití MVC vzoru.
Samozřejmě i vy ostatní pište, co Vás zajímá, ať nepíšu věci absolutně mimo okruh zájmu :)
no podla mna je MVC dost dobre ukazat na nejakych prikladoch. ludia aspon sa naucia robit veci "tak ako by sa mali" :)
mna viac zaujima ako aplikacie pisat, to ze ci tam uz je taky alebo taky komponent to uz je vecou skusania. ale je na vas o com budete pisat :)
prihovaral by som sa ale za nejake sample vyuzivajuce MVC model :)
proc se vsichni mohou z eclipse tak zfamfrnet? nerikam, ze je to nejhorsi IDE, ale neni zdaleka ani nejlepsi. asi jsem jeden z nejvetsich smolaru, kteri toto IDE pouzivaji, protoze jinak si nedovedu predstavit takovou zprofanovanovst. naseptavac kodu zlobi (ukazuje nesmysly, pokud ale vubec neco ukaze), obcas shodi cele eclipse, "otevirani" projektu stale ! neexistuje a manipulace s projekty mi prijde opravdu krkolomna. java/phpdoc (pro pdt) funguje snad jen na dobre slovo, a pak je tu fura malickosti jako je zasekavani scrollu nebo mizeni panelu… nemluvim zde o instalaci na jedinem pocitaci, ale daval sem sanci eclipse na hodne "systemech" a porad to same. a kdyz mi kamarad ukazoval nejakou javu v eclipse, jeho pocitac vytusil, ze sedim opodal a eclipse se seklo – na coz kamarad reagoval se slovy "to je divny, to se mi jeste nikdy nestalo"…
tak sem si trosku vylil srdce, rad bych videl plugin i pro netbeans… jinak aby to nebylo tak offtopic, – flex se mi zda zajimavou alternativou k silverlight :) i kdyz si nejsem uplne jisty tou multiplatformitou – neblbne ten flash tak trosku na linuxu? a jeste si neodpustim jedno vyliti srdicka – PROC PHP?! ja uz ho nechci ani videt! piste clanky o necem jinem, at lidi poznaji, ze existuje i neco jineho – a lide, zakaznici, dotlaci hostingy take k nejake jine technologii!… takhle tu budeme mit porad tenhle paskvil, naznak pseudo skriptovaciho jazyka…
… a predem se omlouvam za rozpoutani pripadneho flejmu.
S PHP to mozna zlobi, ale s Javou funguje paradne. Eclipse je platforma, podpora jazyku je dana tim, jake mas nainstalovane pluginy. Ja Eclipse pouzivam na Javu a nedam na nej dopustit :) Naseptavac funguje perfektne, stejne jako dokumentace a pad uz dlouho nepamatuji. Nezavrhoval bych Eclipse jako takove i kdyz je dost dobre mozne ze podpora pro PHP za moc nestoji. Michodem co myslis tim, ze neexistuje otvirani projektu?
dobra, java.. mozna – ja mam na javu radeji ty netbeans, ale to je veci zvyku a myslim ze v tomhle sou si eclipse a nb rovni.
a otevirani projektu – "open solution" ve visual studiu, "open project" v nb… v eclipse muzu jen "importovat" a nebo vytvorit novy projekt pres stavajici :) jiste, nejak to jde, ale neni to proste primo "otevrit" :)
nehaň něco, čemu prd rozumíš.
Podle mě pro PHP nic lepšího zadarmo než Eclipse není. Za peníze je to určitě Zend, který je ovšem také nádstavbou Eclipse… PHP jsem volil právě proto, že je tak populární, běží všude a "každý" ho zná. Tento seriál není o Pythonu ani o Ruby, ale o Flexu.
jo, ale my chcem na serveru python, abys nepsal mimo okruh zajmu
no ja pouzivam pdt plugin a nemam s nim problemy, o ktorych pises. obcas sa sice stane ze mi neponukne nejake metody resp premenne v code assist, ale inak vseko v poriadku.
okial mas ten plugin ? mozno v tom bude problem
ja som stiahol all in one zo zend stranky. link: http://www.zend.com/en/community/pdt
a ad php :) ja mam php rad :)
na ostatne reagovat nebudemm :)
plugin mam z eclipse/pdt webu, a zkousel sem instalaci i pres pluginy primo v eclipse… myslim, ze tim "od kud" to asi nebude :P
co mi vadi v eclipse … mam treba tridy
Foo_Bar
Foo_Bar_Description
naseptavac mi ukazuje jen tu delsi (*_Description)…
nechapu co ti vadi na php, k dokonale objektovosti mu chybi snad jen moznost
vicenasobneho dedeni, to ale nema ani java, na tvorbu stredne velkych aplikaci
mi to prijde idelanejsi nez nejake ruby, python a podobne pascalovite jazyky,
asi je to tim ze mi nejvice pripomina c++, v cemz si libuji.
Ahoj.
No neviem ako ostatní – možno ich bude zaujímať smerovanie seriálu k multimédiám atď. ale mňa osobne by veľmi potešilo a na to sa najviac trasiem, keby bol seriál zameraný aj na "aplikačné" riešenie. Nejaká jednoduchá aplikácia, ktorá by komunikovala s databázou – využitie medzivrstvy, PHP pre prístup k dátam… Nemusí to byť nejaký zložitý kolos typu bankového systému. Ale skôr niečo, kde by bolo ukázané ako spraviť zopár obrazoviek, spravovať cez ne dáta v DB… Teraz ma tak narýchlo napadla domáca – mediatéka… Toto by sa dalo na to krásne využiť. Jednoduchý dátový model (zopár tabuliek), zopár PHP skriptov a pár obrazoviek na správu týchto dát… Šlo by to?
Ešte doplnok.
kedy sa asi tak možeme tešiť na ďalšiu časť?
Placený soft od Adobe, screenshot z Visty… Kam až Root zajde?
Na Zdrojáku vůči používaným operačním systémům nijak nevyhrazujeme. Prioritou je, aby byl užitečný obsah. Operační systém, který autor článku používá je podružná věc.
>Na Zdrojáku vůči používaným operačním systémům nijak nevyhrazujeme.
Nejsem si jistý, co tou špatně formulovanou větou myslíte, ale reklama je reklama, uzavřený software vykukuje z Vašeho článku všude. To dokazuje, že Vy vyhraněný jste.
>Prioritou je, aby byl užitečný obsah.
Máte chybu v bold stylu "Ahoj světe," není tučně. A co do užitečnosti – když se někdo vyhýbá Flashi kvůli přístupnosti webu a nevázanosti na proprietární software, těžko si tam nasadí akorát další graficky pěknou, ale stejně nepřístupnou komponentu. Po pravdě jsem čekal spíš nějakou JS knihovnu nebo pokročilý HTML editor, tenhle hybrid Flashe mě velmi zklamal. Odkazované samply na webové aplikace mi nefungují, jen 1. stránka s menu (mám nejnovější Flash 10) a vypadá to hodně jako vypiplaný layout s HTML+CSS+JS, akorát asi tak 10× náročnější a méně kompatibilní. Kdo nevypiplá rámečky obrázků v CSS, ten to nezvládne ani v tomhle nástroji.
Windows-like to také není. Jestli chcete vidět napodobeninu BFU GUI, podívejte se na Google Docs. Tam se jim to povedlo i bez Adobe.
>Operační systém, který autor článku používá je podružná věc.
OS lidí, kteří jako autoři aspirují automaticky na jakýsi "kult osobnosti," jde příkladem a zvlášť na tomto serveru by se Vista Aero dalo označit za odpadlictví. Nebráním Vám používat cokoli, ale na Windows fórech by Vám s nějakým shellem nebo Gnome také rychle vyběhli, pokud by poznali, co to je, tak mě zkuste pochopit.
uzavřený software vykukuje z Vašeho článku všude
Ano. Tady nejspíš odpovím i na zbytek komentáře, na Zdrojáku nás totiž primárně zajímá, zda uvedené řešení může být pro někoho (vývojáře, tvůrce webových aplikací) užitečné. Pod jakou licencí je program dostupný není rozhodující. Proto píšeme (a budeme psát) jak o otevřených technologiích, tak i o těch zavřených. Obojí na Zdroják patří.
Nemůžu se zbavit dojmu, že odpovídáte jako politik. Tedy zdánlivě o problému, ale ve skutečnosti vlastně mimo jeho podstatu. Mně přece o uzavřenost primárně vůbec nešlo. A užitečné je minimálně pro 1 člověka všechno, o tom nemá smysl polemizovat. Píšete do sebe zacyklené tautologie. Asi jsem měl začít mnohem konkrétněji a ne jen takovým rýpnutím. Podle mého názoru jste si vybral software, který je zlatým kanónem na vrabce a nepřináší nic převratného. Pokud by se uchytil, znamenalo by to další tříštění sil a zabugování počítačů.
Poznámka mimo – nebrat jako základ zdrcující odpovědi – pro uživatele by bylo mnohonásobně přínosnější popsat označování více fotek v Průzkumníku s Controlem. Nebo jak otevřít Tento počítač a flashdisk. To jsou Achillovy paty lidstva. :)
Nemuzu se zbavit dojmu, ze jste jen zaprdeny idealista co si nevidi na spicku nosu. Zahledl jste v clanku screen z jineho nez Vami uctivaneho OS a tim je dano ze tema je spatne, neprinasi nic prevratneho a je to tak nejak celkove evil. Takze prosim neotravuj lidi co si chteji precit o web technologiich a je jim jedno na cem to zrovna bezi.
Poznamka na zaver – jdi se bodnout ty zacyklena achilovko…
Už jsem doufal, že toto jalové podvlákno odumřelo, ale ne. FYI jsem značný pesimista a Windows i používám. Nic není černobílé. Na špičku nosu si vidím, protože jsem mírně krátkozraký a vidím ostře asi od 7cm. Popisovaný produkt opisuje od volných standardů a místo nich nabízí proprietární řešení přes plugin, který, jak samo Adobe přiznává, není dobře implementován v Linuxu. Nepřináší nic převratného, akorát zase jazyk navíc.
Na závěr: Netykejte mi. Nebo pustím nejmenovanou hru a zabiju v ní kocoura.
Ak ti nejde na linuxe Flash tak si nainstaluj Windows, tam s tym niesu problemy.
Na tomto "placeném softu" si můžete vyzkoušet vývoj flexových aplikací (třeba na trial nebo studentské verzi) a potom klidně začít používat open source Flex SDK s libovolným open source IDE.
zkoušel jste někdo žádat o licenci pro studenty konkrétně u produkdu Flex ?
uznává adobě potvrzení o studiu z ČR ?, případně nevíte jak adobe ověřuje prevost potvrzení?
děkuji za odpověď