LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> JavaFX - prostředí pro tvorbu RIA aplikací (1)

Aneb konkurence Flashe, HTML5 a Silverlightu z dílny Sun Microsystems.

30.7.2010 18:00 | Radim Kolář | Články autora | přečteno 10896×

RIA Aplikace

Co to jsou vlastně ty RIA aplikace? Tato zkratka znamená Rich Internet Applications. Jsou to aplikace které se snaží být velmi uživatelsky přitažlivé - používají animace, efekty, zvuky, videa a nepoužívají standardní ovládací prvky. Pod Rich Aplikací si můžeme představit některou z her a podívat se jak má řešené menu pro nastavování grafiky, obtížnosti, nápovědu, ukládání pozic a podobně. Hra nepoužívá standardní dialogy a menu nabázené GUI toolkitem, ale má vlastní aby svou originalitou přitahovala pozornost uživatele. Slovo Internet naznačuje že danou aplikaci si nebudeme muset instalovat, ale budeme ji používat přes internet vloženou do web stránky.

AJAX technologie se stala hybnou silou Webu 2.0, protože umožnila aby stránky začaly vypadat ne jako listy ilustrované knížky, ale více jako aplikace které známe z desktopů. RIA technologie se tak stanou základem pro web 3.0. Pojem web 3.0 v současnosti není moc jasně definován.

RIA aplikace v současné době na webu moc nevidíme. Najdeme je jen na serverech, kde je styl důležitější než obsah. Například weby módních návrhářů, kapel, stylových eshopů. Masově se tyto aplikace ale nedělají, protože jsou jednak programátorsky ale především graficky náročné. Je potřeba vytvořit značné množství grafiky a práce grafika je dost drahá.

JavaFX

JavaFX je scriptovacím jazykem z dílny Sun Microsystems. Celým názvem se jmenuje JavaFX Script. JavaFX začala svou existenci jako jazyk F3 vyvinutý společností SeeBeyond, kterou později koupil Sun, kterého později koupil Oracle.

Jazyk JavaFX byl původně interpretovaný, ale v současnosti se již dá kompilovat přímo do JVM bytecodu jako ostatní jazyky co běží na JVM platformě. S postupem času se kompilátor JavaFX vylepšuje a tak když starší programy překompilujete novým kompilátorem dosáhnete často zrychlení. JavaFX kompilátor používá s oblibou optimalizační techniku zvanou loop unroll.

Teď se blíže seznámíme s vlastním jazykem.

Komentáře

Komentáře ve zdrojovém kódu jsou velmi dobrou programovací zvyklostí. Měly by být výstižné a hlavně správné, protože většina programátorů předpokládá, že pokud je rozpor mezi komentářem a kódem, tak platí komentář a kód přepíší, tak aby mu odpovídal. Komentáře jsou v JavaFX standardní, tedy C-like a C++ like. Stejný typ komentářů používá i jazyk Java.

/* C style komentář 
může být přes více řádků
ale není možné komentáře
do sebe vkládat.
*/

// C++ style komentář platí od značky do konce řádku

Deklarace proměnných

JavaFX je jazyk deklarativní, což znamená že každá proměnná musí být deklarována před použitím. Podporuje jednak proměnné a jednak konstanty. Toto dělení se mi líbí, protože zpřehleďňuje kód a snižuje možný okruh chyb. Proměnná se deklaruje příkazem var zatímco konstanta se definuje příkazem def. Do proměnné můžeme přiřazovat hodnoty, zatímco do konstanty po její deklaraci již nikoliv.

var a = 10;
a = a + 1;
var c;

def b = 10;
b = b + 1; // překladač ohlásí chybu protože b je konstanta

Staticky silně typovaný jazyk

JavaFX není narozdíl od většiny scriptovacích jazyků typeless (weak typing). Každá proměnná má svůj typ. Není také dynamicky typovaný, což znamená že proměná může měnit svůj typ pokud do ní v průběhu programu přiřadíme objekt jiného typu. Ve výše uvedeném příkladu ale nejsou uvedeny typy. JavaFX překladač si je totiž umí odvodit z přiřazovaného výrazu. To je velmi hezká vlasnost, která šetří čas a psaní.

var b = 10;
b = "karel"; // překladač ohlásí chybu. Očekáván Integer, nalezen String

Typ u deklarací volitelně uvádět můžeme po dvojtečce. Moc se mi tenhle syntax nelíbí, radší bych měl místo dvojtečky mezeru a přehozené pořadí ve stylu C.

def a:Number = 10;

Funkce

funkce se definují klíčovým slovem function. Nemusí být součástí tříd a mohou se objevit kdekoliv ve zdrojovém souboru. Není třeba je nejdřív definovat a pak volat.

function test(a,b) {
    return a + b;
}

Parametry mohou mít uvedený typ:

function test2(a:Integer, b:Integer ) {
    return a + b;
}

Stejně tak můžeme deklarovat i typ co funkce vrací. Stejně jako předtím i tato syntaxe se mi vůbec nelíbí. Syntaxe ve stylu C nebo Java by byla mnohem lepší.

function test(a,b):Number {
    return a + b;
}

Parametry funkcí jsou v JavaFX považovány za konstanty, nelze jejich hodnotu měnit tak jak jsme běžně zvyklí z jiných jazyků. Toto považuji za dobrý krok snižující výskyt potenciálních chyb v kódu.

function test3(a):Number {
    a = a + 2; // nemůžete změnit hodnotu a, protože je to parametr
}

Pole

Podpora pro pole je docela luxusní, ačkoliv mám výhrady k použité syntaxi, která zbytečně zavádí klíčová slova. V JavaFX se jim neříká pole, ale sekvence, protože je lze natahovat a smrskávat přidáváním případně odebíráním prvků, které se číslují od nuly. Definice pole je prostá, zde nelze nic vytknout.

var pole = [ 1, 3 , 5, 7 ];

Pokud chceme deklarovat i typ dat v poli tak je potřeba dát za typ hranatou závorku

var pole2:Integer[] = [ 1, 5, 7, 8];

A teď přijde již ohlašovaný syntax sugar na pole. Opravdovým programátorům to bude připadat ukecané, ale příležitostným skriptařům pro které je JavaFX určeno se to zajisté zalíbí.

velikost polesizeof pole
vložení prvku na konecinsert 10 into pole
vložení prvku za druhý prvekinsert 11 after pole[1]
vložení prvku před druhý prvekinsert 15 before pole[1]
pole pozpátku reverse pole
smazání všech prvkůdelete pole
smazáni prvku na druhé pozicidelete pole[1]
smazání prvku s hodnotou 1delete 1 from pole

Výběr prvků z pole

Na druhou stranu možnosti výběru prvků jsou Python-like a rozhodně jsem je nečekal.

prvky od 1 do 3 včetněpole[1..3]
prvky od 1 do 10 bez posledníhopole[1..<10]
každý třetí prvek z intervalu 1 - 10pole[1..10 step 3]
vyběr prvků splňujících podmínkupole[ x | x >100]

Rozmezí

Podobnou technikou jako vybírání prvků z pole můžeme také pole vytvářet a používat ho třeba pro inicialiaci jiného pole nebo ve smyčkách. Stačí před výběrem neuvést jméno pole a dosáhneme tak výběru z implicitního pole obsahující celá čísla. Například výraz [1..3] tak vrátí pole [ 1, 2, 3 ].

Verze pro tisk

pridej.cz

 

DISKUZE

Nejsou žádné diskuzní příspěvky u dané položky.



Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

15.4.2017 15:20 /František Kučera

Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě IoT a radiokomunikace? Přijď na sraz spolku OpenAlt, který se bude konat ve středu 19. dubna od 18:30 v Šenkovně (Sokolská 60, Praha 2).


Přidat komentář

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

27.2.2017 22:12 /František Kučera
Pozvánka na 137. sraz OpenAlt – Praha: Tentokrát jsme si pro vás připravili neobvyklou akci. Ve středu 1.3. v 17:30 nás přivítá sdružení CZ.NIC ve svých prostorách v Milešovské ulici číslo 5 na Praze 3, kde si pro nás připravili krátkou prezentaci jejich činnosti. Následně navštívíme jejich datacentrum pod Žižkovskou věží. Provedou nás prostory, které jsou běžnému smrtelníkovi nedostupné!
Po ukončení prohlídky se všchni odebereme do hostince U vodoucha, Jagelonská 21, Praha 3 pochutnat si na některém z vybraných piv či dát si něco na zub. Rezervaci máme od 19:30, heslo je OpenAlt.
Ale pozor! Do prostor datového centra máme omezený přístup, dostane se tam pouze 10 lidí! Takže kdo přijde dříve, ten má přednost, a občanky s sebou! Kdo nebude chtít na prohlídku datového centra, může se pomalu přesunout do hostince U vodoucha a u nepřeberné nabídky piv počkat na ostatní.
Přidat komentář

18.1.2017 0:49 /František Kučera
Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.
Přidat komentář

8.1.2017 17:51 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 19. ledna od 18:30 v pražském hackerspacu Brmlab. Tentokrát je tématem srazu ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. K vidění bude mechanická klávesnice dasKeyboard, trackball Logitech nebo grafický tablet (a velký touchpad) Wacom. Přineste i vy ukázat svoje zajímavé klávesnice a další HW. V 18:20 je sraz před budovou, v 18:30 jdeme společně dovnitř, je tedy dobré přijít včas. Podle zájmu se později přesuneme do nějaké restaurace v okolí.
Přidat komentář

1.12.2016 22:13 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.
Komentářů: 1

4.9.2016 20:13 /Pavel `Goldenfish' Kysilka
PR: Dne 22.9.2016 proběhne v Praze konference Cloud computing v praxi. Tématy bude např. nejnovější trendy v oblasti cloudu a cloudových řešení, provozování ERP v cloudu, o hostování různých typů softwaru, ale třeba i o zálohování dat nabízeném podnikům formou služby.
Přidat komentář

1.9.2016 11:27 /Honza Javorek
Česká konference o Pythonu, PyCon CZ, stále hledá přednášející skrz dobrovolné přihlášky. Máte-li zajímavé téma, neváhejte a zkuste jej přihlásit, uzávěrka je již 12. září. Konference letos přijímá i přednášky v češtině a nabízí pomoc s přípravou začínajícím speakerům. Řečníci mají navíc vstup zadarmo! Více na webu.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

17.4.2017 19:15 / Jakub shoop
chyba

7.4.2017 15:43 / Som
foreign car repair

31.3.2017 18:33 / David Ostrovsky
Dotazník na obeznámenost s hummusem.

24.3.2017 11:54 / Hui
country cottages

16.3.2017 16:33 / BezvaDesign.cz
Re: Hledám grafika do teamu

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze