Portál o technologiích a vývoji

JavaFX – neprávem opomíjená platforma

Autor: Viktor Krejčíř Datum: 6.11.2013 Počet shlédnutí: 6 162 360x

Některým javistům je tato platforma možná známá více, některým méně, existují však i vývojáři, kteří o ní rozhlašují nepravdivé informace – že je zastaralá, nepoužívaná či zbytečná. Jak se vlastně JavaFX k těmto přídomkům dostala a jaká je ve skutečnosti ?

Pro ty, co se Javou nezabývají si dovolím nejprve nastínit jak to vlastně se všemi těmi platformami je. Existuje jeden obrovský balík v podobě Javy, který se nadále dělí na jednotlivé platformy (či edice) podle jednotlivých zaměření a specifikací. Máme tu nejmenší edici v podobě Java Card, jejíž využití nalezneme třeba u SIM nebo platebních karet. Pak je tu „klasická“ JavaSE, se kterou se snad potká každý začínající programátor-javista. Tato základní platforma umožňuje tvorbu programů na desktop či server. Tam se však u větších projektů hodí spíše enterprise edice Javy – Java EE. Ta rozšiřuje základní „SEčko“ a umožňuje tvorbu rozsáhlých serverových systémů a s použitím technologie JSP i webových aplikací.

A vedle této svaté trojice se v koutku krčí nejmladší z nich – JavaFX (JavuME záměrně vynechávám, její dny jsou již nemilosrdně sečteny od vydání sedmé verze Javy). Jakkoli je její zaměření zejména na RIA aplikace (a správně bychom ji tedy měli řadit někam do kategorie mezi microsoftí Silverlight a Flex od Adobe), využijeme ji i při tvorbě aplikací na desktopu.

Jakou má tedy FX vlastně historii a kde se vzala její nelichotivá pověst ?

Sun oficiálně oznámil vývoj FX v květnu 2007,  aby následující rok vydal první stabilní verzi 1.0 (ještě bez slibované součásti pro mobilní zařízení, ta byla přidána až v prvním update v roce 2009). Druhý update povyšující verzi na 1.2 přinesl mnoho zajímavých prvků – především umožnil stylovat jednotlivé prvky pomocí CSS, nové layouty s ovládacími prvky, grafové komponenty a vylepšení I/O. Celá platforma se také o něco zrychlila. Následovaly updaty na verze 1.3 a 1.3.1 , které zvýšili výkon aplikací a přidaly podporu dalších podporovaných platforem k běhu.

A pak  přišla radikální čistka s verzí 2.0. a mnohé se radikálně změnilo.

Především byl zahozen jazyk JavaFX Script, kterým se vytvářela uživatelská rozhraní a byl nahrazen v podstatě modernějším FXML (jak už název napovídá, jedná se v podstatě o Xml dokument popisující rozložení prvků na scéně – prostě něco podobného jako XAML u Silverlightu). Tady patrně vznikla fáma o tom, že JavaFX byl zrušen a nebude dále podporován – ve skutečnosti došlo pouze k ukončení popory JavaFX Scriptu.

Dále byla také zahozena podpora pro mobilní zařízení a vylepšena práce s více vlákny.

A co že to vlastně všechno umí ? Hlavní devízou je univerzálnost nasazení – máte možnost aplikaci spustit jako klasickou desktopovou aplikaci, přes web-start nebo jako embeddovanou ve webové stránce. Vložení do webové stránky  považuji za tu snad nejlepší vlastnost této  platformy (jak jinak, když je primárně určená pro tvorbu int. aplikací 🙂 – na rozdíl od stařičkých Java Appletů (ano, ty otravné miniaplikace, tolik populární koncem 90. let) zde nejste omezeni žádným sandboxem a můžete tedy v browseru dělat, co vás jen napadne – klidně i tahat data z databáze. Další ohromné plus je v počtu a kvalitě GUI komponent, které FX obsahuje – naleznete zde vše potřebné od několika layout manažerů, řady ovládacích prvků a geometrických tvarů až po spoustu komponent starající se o kreslení nejrůznějších grafů. To vše můžete designovat buď kódově (jako jste byli zvyklí u Swingu) nebo přes FXML, které poskytuje výhodu přenositelnosti layoutu.  Pokud jste obzvláště líní, s designem vám pomůže aplikace FX Scene Builder, ve které si jednoduše nataháte a naklikáte design aplikace a výsledkem bude výstup v FXML souboru.

Návrhář GUI - FX Scene Builder

Návrhář GUI – FX Scene Builder

A dalších výhod by se jistě našla celá řada, grafikům určitě přijde vhod stylování komponent přes CSS styly, kodérům zase nové kolekce s Observable ArrayListem v čele.

Samozřejmě – nic není dokonalé, velikou nevýhodou je podpora, resp. nepodpora na některých platformách – v současném boomu ARM procesorů v nejrůznějších zařízeních smartphony začínaje a (chrome)notebooky konče  zamrzí chybějící podpora pro tuto architekturu. Oracle také dost nepochopitelně nepodporuje svůj OS – OpenSolaris. Zkrátka na těchto konfiguracích budete mít s FXkem problém. Ale pokud disponujete podporovaným systémem a architekturou procesoru – proč jej nezkusit ?

 

 

Zdroj: http://www.oracle.com/technetwork/java/javafx/overview/index.html

Štítky: | |

Žádné komentáře

Poslat komentář

Vaše e-mailová adresa nebude zveřejněna.