Přejít k navigační liště

Zdroják » Různé » Flash Platform – nejrozšířenější RIA platforma

Flash Platform – nejrozšířenější RIA platforma

Články Různé

Pravděpodobně se nenajde vývojář, který by neznal Flash. Nicméně většina lidí na něj pohlíží jako na animační nástroj pro tvorbu bannerů či úvodních stránek (známých jako „Skip Intro“). Ve skutečnosti je Flash především nejrozšířenější RIA platforma světa. Jaké úmysly s ním Adobe má a jaké technologie na něm staví?

Na Zdrojáku se chceme věnovat ve větší míře technologiím pro vytváření RIA – Rich Internet Applications. Nejprogresivnějším a nejpoužívanějším nástrojem v této oblasti je, vedle Javy (resp. JavyFX) a Silverlightu, bezesporu Flash, resp. jeho knihovna Flex a prostředí AIR. Bohužel Flash je stále velkou částí vývojářů považován za pouhý animační nástroj. Požádali jsme proto Toma Krchu z Adobe o podrobnější představení celé rodiny RIA produktů Adobe, založených právě na Flashi. – pozn. red.

Flash Platform = Flash Player + Flex + AIR

Flash platform 2

Adobe přikladá Flashi velkou důležitost – v tuto chvíli většina nástrojů Creative Suite podporuje jako výstupní formát právě Flash. I pro klasické tiskaře se tak Flash stává výstupem pro digitální publikaci dokumentů a interaktivních e-knih. Flash tedy rozhodně není v rodině produktů Adobe nějaký chudý příbuzný. V tuto chvíli je to základní prvek v celém ekosystému Adobe, a to nejen pro vývojáře, ale i pro grafiky, animátory, video post-produkci, pro tiskaře (jako internetový formát vedle klasického PDF), a díky Flexu umožňuje vytvářet i podnikové aplikace.

Adobe nabízí některé RIA produkty, které jsou postavené kompletně ve Flashi:

Rozhodně si nemyslím, že by mělo smysl v tomhle článku zmiňovat možnosti Flashe, všichni víme, že jsou daleko větší než pouhé „vytváření animací“. Pokud si projdete například výše zmíněné aplikace, snadno pochopíte, o čem je řeč. Ostatně, před čtením zbytku článku si můžete jako relaxaci zkusit pohrát s HOBNOX AudioTool (skladatel elektronické hudby).

Flash platform

(Zkuste Tone Matrix a dejte Play, pak si hrajte s dalšími syntetizátory).

Něco málo z historie Flashe

V roce 2006 Adobe koupilo společnost Macromedia, která vyvinula a rozvíjela formát Flash. Adobe si tak posílilo portfolio o nejrozšířenější interaktivní formát na světě. Současně vzniká v Adobe pojem RIA (Rich Internet Applications) na jehož počátku stály osoby jako Kevin Lynch (CTO, Adobe) či Ben Forta (Director of Evangelism, Adobe – Ben Forta navštívil Českou republiku v květnu 2009 při příležitosti konference Budoucnost internetu je v RIA, pořádanou právě společností Adobe).

Flash se tak postupně z vektorového animačního softwaru (první verze se jmenovala FutureSplash) vyvinul v univerzální platformu – jak pro umělce, tak pro programátory, od kreativního světa až po enterprise sféru.

Flash platform
Filozofií Flashe je zůstat nejbohatší platformou světa, která je současně dostupná na všech zařízeních na světě.

Flex

Flex je open-source framework pro Flash, který obsahuje řadu užitečných komponent pro tvorbu UI (tlačítka, seznamy, kontejnery, textová pole, navigační lišty, layout), skinování, přechody a efekty, grafové komponenty, validace, třídy pro práci s datovými službami (HTTPService, WebService, DataService, RPC, RemoteObject), logování, utility a spoustu dalších komponent, které vám velmi usnadní práci při tvorbě standardních uživatelských prostředí.

Aktuální verze Flexu má číslo 4 a byla uvolněna do beta verze současně s novým vývojovým prostředím Flash Builder 4. (Flexem se budou podrobněji zabývat další články na Zdrojáku). Také je nutno dodat, že srovnávání Flex vs. SilverLight je zcela scestné – jelikož Flex je jenom jednou z mnoha knihoven pro Flash.

Informace, návody a tutoriály pro Flex naleznete na Tour de Flex.

Flex lidi
Významní zákazníci používající Flex pro své RIA aplikace.

Adobe AIR

Flash platform 2

Adobe Integrated Runtime (AIR) je běhové prostředí, které kombinuje Flash Player, WebKit (HTML a JS engine, známý ze Safari a Chrome), databázi SQLite3 a úzkou integraci se systémem. Umožňuje tak vytvářet desktopové aplikace, které mají přístup do lokálního úložiště.

Pro Adobe AIR se poslední době rozhoduje spousta firem – jednoduše chtějí, aby jejich aplikace vypadaly sexy a běžely všude. Jedním z příkladů je New York Times Reader (pikantnost: Předchozí verze byla vytvořena ve WPF). Většina Twitter klientů je rovněž vytvořena v AIRu (TweetDeck, Twhirl…)

Flash platform 2
Nová AIRová aplikace The New York Times nahradila původní verzi readeru ve Windows Presentation Foundation

Základní vlastnosti AIRu:

  • offline i online (uživatel může k vaší aplikaci přistupovat i ve chvíli, kdy není online – obsah se tak může jednou za čas synchronizovat na disk či do SQLite databáze)
  • branding (vaše aplikace se nainstaluje na PC a uživatel je s ní úzce spjat)
  • AIRové aplikace lze vytvářet i bez znalosti ActionScriptu, celou aplikaci lze díky zabudovanému WebKitu vytvořit i jako HTML+JavaScript+CSS aplikaci
  • Multiplatformnost: AIR je na Windows, Linuxu i Macu a pracuje se na mobilní verzi AIRu
  • multiokenní aplikace
  • drag-and-drop z file systému
  • custom chrome (aplikace může mít jakýkoliv tvar, průhlednost či stín)
  • instalace je jednoduchá, pokud uživatel nemá AIR runtime, stáhne se při první instalaci AIRové aplikace přes Flash Player v prohlížeči

Flash je všude

Jedním ze základních důvodů pro použití Flashe je jeho rozšířenost (penetrace). 98 % PC připojených k internetu má nainstalovaný Flash Player. Poslední verzi Flash Player 10, která se distribuuje necelý rok, je již na více než osmdesáti procentech PC. Flash Player existuje pro Windows, Mac, Linux, Solaris, Android a další operační systémy.

Mobilní Flash Player (FlashLite)

V tuto chvíli podporuje FlashLite cca 600 druhů různých typů zařízení – např. většina Nokií, Sony Ericcson, Samsung, HTC apod. Flash má v sobě již více než miliarda distribuovaných mobilních zařízení. V roce 2009 byl uveden na trh FlashLite Distributable Player, který lze volně stáhnout/aktu­alizovat na podporované telefony, je tedy k dispozici i pro přístroje, které jej neobsahují ve svém firmware.

Flash for Digital Home (TV)

Optimalizovaná verze Flash Playeru umožňuje zobrazení HD videa a Flashových aplikací na řadě set-top-boxů připojených k internetu, televizí, herních konzolí, blu-ray přehrávačů a dalších digitálních adaptérů, a to včetně hardwarové akcelerace.

OpenScreenPro­ject.org

Flash platform 2

Iniciativa Adobe ve spolupráci s výrobci čipů a hardwaru má zaručit plynulý a nativní běh Flashe na většině zařízení na světě (od PC přes spotřební elektroniku až po mobilní telefony).

V poslední době sklízí OSP mnoho úspěchů, např. ohlášení spolupráce Adobe a NVIDIA (tisková zpráva) na implementaci hardwarové akcelerace Flashe u chipů Targa a přímé System on Chip (SoC) instalaci – tzn. všichni výrobci, kteří tento čip implementují do svých zařízení, budou mít k dispozici i hardwarem akcelerovaný Flash bez nutnosti instalace jakéhokoli software.

Mezi partnery projektu patří ARM, Cisco, HTC, Intel, LG Electronics, Motorola, Nokia, NVIDIA, Samsung, Sony Ericsson, Toshiba, Verizon Wireless a další.

Flash platform

Datové služby

Flash lze připojit na téměř jakýkoliv serverový backend. Od PHP, Ruby on Rails, Javy, .NET, Python či webové služby. Základem pro komunikaci je optimalizovaný protokol AMF. Vedle těchto možností poskytuje Adobe serverové produkty – datové služby. Open-source řešení nabízí BlazeDS postavené na Javě. Enterprise řešení, které má podstatně větší možnosti, je LiveCycle DS. Další možností je ColdFusion – nabízí velmi jednoduchý a rychlý vývoj včetně propojení na Microsoft Office (server-side práce s Office dokumenty), SharePoint či generátory PDF.

Souhrn

Je patrné, že Flash není jen nástrojem pro vytváření otravných reklam a nudných úvodních animací, ale že jde o všestrannou platformu, která stála u zrodu zcela nové kvalitativní úrovně webových aplikací. Umožňuje vytvářet velmi komplexní produkty, které v sobě spojují výhody desktopových i online aplikací. Zároveň má silnou podporu jak ze strany Adobe, tak i ve vývojářské komunitě. Některé součásti Flash platformy jsou zároveň open-source. S Flashem se zkrátka budeme setkávat stále častěji, a to nejen na webu, ale i zde na Zdrojáku.

Další zdroje a užitečné odkazy

http://adobe.com/…ashplatform/ – úvodní stránka Adobe Flash Platform – klikněte po načtení na Explore the Flash Platform 

OSFlash.org – svět open-source a Flashe

Opensource.ado­be.com – všechny opensource projekty Adobe

Labs.adobe.com – nejčerstvější nástroje od Adobe

Nástroje pro tvorbu Flashe

Přímo od Adobe:

Od jiných vývojářů:

  • FDT – výborný vývojářský nástroj podobný Flex Builderu
  • Ensemble Tofino – plugin pro VisualStudio.NET podobný Flex Builderu, zdarma

Další nástroje, které můžou být v určitých případech užitečné:

Pro studenty má Adobe nabídku software zdarma. Stačí naskenovat ISIC kartu a vyplnit formulář na https://freeriatools.adobe.com/

Komentáře

Subscribe
Upozornit na
guest
39 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
dc

No ono Flash/Flex je taky jednooky kral medzi slepymi.JavaFX ta prakticky ani neexistuje (moc stranok bezat na nej som nevidel,nehovoriac ze uz povodny sunovsky vymysel appletov bol otrasny) a silverlight sa stale tak nejak formuje a vychadza pomali <joke>castejsie ako linux kernel</joke>­.Jedine co ako tak vzdialene moze Flexu konkurovat su rozne javascriptove frameworky a kniznice.Ale to neznamena ze Flex je najlepsi.Osobne ma stve ten velky footprint flexu vo flashi.Proste ten zakladny flexovsky framework alebo kniznica je moc velka.Prazdny projek vygeneruje skoro 500kb swfko a to je trochu moc.

dc

Ja netvrdim ze je to neprekonatelny problem, aj aplikacia sa da podelit do viacerych modulov ktore sa budu podla potreby dotahovat, moznosti su len sa mi to zdalo trochu nabobtnane.
Skor ma trapy ina stranka. Chapem ze ak adobe chce multiplatformove IDE tak Eclipse je celkom cesta ale aj tak preboha preco ? Eclipse neni vylozene zla platforma,dokonca je celkom dobra ale na druhu stranu si nemyslim ze by adobe nemalo ludi na vytvorenie nejakeho nativneho IDEcka.I ked zasa ked sa pozriem na niektore ine „adobe vytvory“ tak si hovorim ze este vdaka bohu ze pouzili Eclipse.Ja len proste tak nejak sa nemozem stotoznit s java aplikaciami na desktope.

dc

to je mi jasne ze mxmlka a aska si mozem pisat aj v notepade tak isto ako bezne c++ zdrojaky ale tak ako gui aplikaciu asi malokto bude pisat v notepade tak tiez flexovu aplikaciu je lepsie pisat v idecku.Tofino som este neskusal ale uz som si ho stiahol tak snad to bude lepsie (i ked aj vs 2008 na moj vkus casto pada oproti takej vs 6.0).
Skusil som akurat Flash Catalyst a tak trochu nerozumiem kam tento produkt smeruje.Pripada mi to ako nieco medzi Adobe Flashom a Flexom ale ani z jednej strany to nieje poriadne dotiahnute.Ma Catalyst nahradit kompletne doterajsie Flexove prostredie do buducna ?

dc

Dakujem za vysvetlenie. Ale aj tak sa mi zda zbytocny dalsi nastroj a zvlast takehoto typu.Pre grafikou tu je Flash a pre programatorov Flex a ak chcem prototypovat tak staci wireframe sketcher do Eclipse teda aj do Flexu (IDE).
Tych par objektov ktore zatial su v Catalyste neni problem pre grafika si spravit ako libku do flashu.

Pavel Šimek

Ještě jinak bych to vysvětlil: Flash Professional je low-level nástroj, ve kterém se dá udělat vše, co Flash Platforma umí. Flash Builder a Flash Catalyst jsou nástroje pro vývoj nad frameworkem Flex, kde jsme o úroveň výš než když malujeme, animujeme a programujeme ve Flash Professional. Dva produkty to jsou kvůli dělbě práce mezi grafika a programátora.

Situace se komplikuje trochu tím, že ve Flash Professional není použitelný editor kódu, takže profesionálové používají jiný editor – třeba právě ten, který je ve Flash Builderu.

Richard

To sa mi nezdá až taký problém, hlavne pri väčších aplikáciách a neustále rýchlejšom internete. Väčší problém vidím v tom, že Adobe AIR má určité obmedzenia – napríklad nemôže spúšťať externé aplikácie, že nemôže mať viac threadov a podobne.

Franto

Spustanie externych applikacii bude v AIR 2.0, tipujem, ze to releasnu dalsi pondelok (zacina Adobe Max)

Jaro

Jednooky medzi slepymi? Skusim to vysvetlit z mojho uhla pohladu: Som Java vyvojar, pouzivame vsetky mozne opensource technologie ktore dnes v java svete ficia. Na vyvoj web gui pouzivame ajaxoidnu implementaciu JSF. Dostali sme sa do fazy, ked musime vyvijat custom JSF komponenty. Vyvoj je utrpenie, produktivita katastrofalna, vysledok v prehliadaci zalostny. A to si pri vsetkej skromnosti myslim ze sme tlupa sikovnych programatorov. Verte mi, keby to bolo v mojej moci urcite by som skusil vyvoj v ktoromkolvek prostredi ktore VY oznacujete za „jednookeho medzi slepymi“. Preco? Pretoze hoc nie som programatorska superstar, myslim ze viem rozlisit slepe cesty. A hatlanina HTML + CSS + JS + XmlHttpRequest plus … je slepou ulickou – urcite z hladiska produktivity. A cas su peniaze, co je podla mna jedno z dolezitych objektivnych meritok pouzitelnosti technologie. Howgh, dohovoril som!

Honza77

Flex má poměrně zásadní principiální nedostatek a to, že nemá vlákna či jinou náhradu obecného asynchronního zpracování. Tedy není možné něco počítat na pozadí a zároveň reagovat na GUI apod. kromě metody, kdy si výpočty za pozadí „ručně“ přerušujete a když to děláte hodně často, tak pak GUI i celkem rozumně reaguje (obdobná metoda se používala např. v dobách MS-DOSu). Vzhledem k tomu, že tento nedostatek je asi zakořený ve Flash Playeru a není možné vlákna implementovat ve Flex frameworku, tak se bohužel domnívám, že ani příští verze vlákna jen tak nepřinesou – možná někdy za hodně dlouho.

Martin Malý

Jen podotknu, že stejný principiální nedostatek má JavaScript. Ale ono to nevadí ani tam ani tady, protože UI není od toho, aby něco „počítalo na pozadí“, to je jen k tomu, aby reagovalo na uživatele a předalo požadavky vlastní výkonné aplikaci (serveru). Nezapomeňte, že Flex je platforma pro RIA, nikoli pro aplikace jako takové.

Honza77

S tím, že JavaScript je na tom stejně, lze pouze souhlasit. Ale s tím, že to nevadí, už moc ne. Osobně si od RIA slibuji více než jen náhradu za pouhou prezentační vrstvu, jak se většinou používá HTML+CSS+JS. Spíše RIA považuji za náhradu klasických tlustých klientů klient-server aplikací s lehkou dostupností, spravovatelností a sandboxem.

Nechci ale se hádat o přesný význam RIA. Osobně jsem neviděl v definici RIA požadavek, že klientská část neobsahuje náročnější aplikační logiku, ale to je jedno. Nezávisle na terminologii to nemění nic na podstatě věci.

U některých aplikací to nevadí, u některých ano. V určitých situacích je vhodné, aby určité operace prováděla klientská část. Důvodů může být celá řada. Např. přenos dat na server, zpracování na serveru a odeslání výsledku zpět může být výrazně pomalejší, zvyšuje zátěž serveru, snižuje možnost interaktivity apod. Také např. může být požadavek, aby aplikace pracovala i v off-line módu. Vyčlenění výpočtů na server může zesložit aplikaci. V některých případech nechceme odesílat data na server z důvodu bezpečnosti. Důvodů je celá řada. I složitější prezentační část může obsahovat složitější logiku a potřebu cosi „počítat“ (v širším slova smyslu) – např. zpracování grafiky pro vykreslení.

V případě synchronního zpracování nemohu provést najednou žádnou akci, která trvá déle, než je uživatel schopný postřehnout jako „zamrznutí“ aplikace. Nemohu využít výkon vícejaderných procesorů kromě výjimek, pro které existuje výjimka ve formě asynchronního volání v systémové knihovně.

Pavel Šimek

Souhlasím, že RIA jsou určitě víc než GUI vrstva. Vždyť existuje spousta aplikací (typicky hry), které obsahují veškerou (nebo 99 %) logiku na klientovi.
Vlákna se často objevují v požadavcích vývojářů a tuším, že jsem četl nějaké náznaky, že ve Flash Playeru 11 (resp. ActionScriptu 4, o kterém se taky pomalu začíná mluvit) by měly být. Jsi tu, Tome, abys něco naznačil? :)

Martin Soušek

Krásná platforma, ale jen do doby, kdy je potřeba udělat aplikaci kompletně česky. Zde tvrdě narazíme, protože Adobe je nad nějaké české paznaky naprosto povznesen.

Například doteď nelze sehnat instalaci flash playeru, která by mluvila česky!!! To si snad dělají srandu, ne? Jak můžu dát uživatelům aplikaci, ve které je veškeré nastavení anglicky? Stejně tak se dá narazit na nepříjemné bugy, které Adobe nemíní opravit. Např. tento bug, který znemožňuje určité aplikace http://bugs.adobe.com/…236700BA2652?… je tam už ROKY!!! A to už ho několikrát zavřeli ( viz http://bugs.adobe.com/…F37C7B4E4D8E ) aniž by ho opravili.

Kdo by riskoval vývoj pro takovouhle platformy bez podpory?? Leda blázen!

Jinak co si budeme povídat, třeba Java je na tom úplně stejně. Nebo snad už existuje instalátor JRE v češtině?

Tyhle velké firmy se ještě neprobudily ze sna. Pořád si myslí, že na světě je jen agličtina.

Štěpán Bechynský

Silverlight 3 SEO podporuje.

Jiří Kosek

Ad indexování dynamického obsahu: On je Google (a Yahoo) jediný vyhledávač?

Jiří Kosek

Otázkou je, zda tedy není něco principiálně špatně, když se pro indexování obsahu webu musí dělat takové obezličky.

Flash běžící v prohlížeči už umí měnit location.href podle toho, v jakém stavu je vnitřek flashové aplikace (pokud je aplikace dopře napsaná). Nestálo by tedy za to udělat spíše nějakou serverovou komponentu, kterou bych si nahrál na web-server, a která by při přístupu z ne-flash klienta pro dané URL vrátila v podobě jednoduché stránky HTML informace, které pro dané URL zobrazuje Flash player přímo v prohlížeči? Nabízí něco takového Adobe?

Borek Bernard

Když píšete „Flash běžící v prohlížeči už umí měnit location.href podle toho, v jakém stavu je vnitřek flashové aplikace“, myslíte lokální změnu URL, tedy změnu fragmentu („hashe“)? V tom případě vám serverová komponenta nepomůže, protože hash se na server neposílá. Změna celého URL, respektive jeho parametrů, by zase znamenala reload celé stránky a tedy uživatelsky nepřijatelné chování.

Jak psal Tom, elegantní řešení nabízí třeba SWFAddress, žádná serverová komponenta od Adobe není potřeba.

Pavel Šimek

Čau Tome,

1) jazykové nastavení by se určitě mělo přebírat z nastavení jazyka v browseru, nikoliv verze OS. Vždyť je to plugin do browseru!

2) wmode=transparent není zas taková specialitka pro reklamy, např. na Facebooku je to standard, protože přes aplikace běžně vyskakují facebookovské dialogy (pozvání kamarádů, publikování na zeď…). Narazili jsme na to teď dost tvrdě u apps.facebo­ok.com/virtual­nivolby/

Ale možná pro tebe nic nového. :) Jen shrnuju zásadní argumenty, které fakt poškozují Flash Platformu víc než si ve své kosmopolitní euforii myslíš.

Každopádně díky za osvětu a snahu něco změnit.

Martin

Tak doufám že se to podaří. wmode transparent je totiž klíčová volba pro každý web. Stačí mít javscriptové drop down menu přes flash a už to musím dát, aby to flash mohlo překrýt. A když tam pak přestane fungovat čeština, je to průser.

Právě kvůli tomuhle jsme museli přepsat řadu komponent z flashe do ajaxu.

mm

Tak z tohohle pojmu se mi udelalo krapet mdlo. To je priserny paskvil. Tak to nazvete treba portfolio, ale ne proboha ekosystem, to znamena uplne neco jineho. Kdyz nerozumim slovicku co znamena, tak ho nepouzivam, mily authore.

http://en.wikipedia.org/wiki/Ecosystem

Borek Bernard

Zde bych se Toma zastal, používat slovo ekosystém je v souvislosti s technologiemi úplně normální. Možná ne každému po chuti, ale rozhodně ne „příšerný paskvil“.

mm

Tak se těším příště třeba na koprofágy, ti v ekosytému také žijí.

ffrr

vyborny clanok, tesim sa na pokracovania.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.