Blog Google Web Toolkit alebo web v Jave

Google Web Toolkit alebo web v Jave

Pamätám si časy, keď bol JavaScript zatracovaným jazykom. Internet bol plný reklamných bannerov s prečiarknutým hadom a sloganmi o tom, že JavaScript je škodlivý. Dnes je to inak, webové prostredie valcuje to klasické spúšťané v operačnom systéme. Internetové prehliadače už nie sú prehliadače dokumentov, ale behová platforma pre čoraz bohatšie aplikácie a model pluginov, ktorý bol 5 rokov dozadu na výslní, je pomaly ubíjaný rôznorodosťou zariadení a operačných systémov, s ktorými sa teraz dá na internet dostať.

Je tu HTML5 a … JavaScript. Čo ale s tým množstvom vývojárov desktopových aplikácií, ktorí by mali zrazu začať písať weby. Jednou možnosťou je zaškoliť ich na JavaScript. Tou druhou je nechať ich písať v ich jazyku a výsledok ich práce prekladať do JavaScriptu. A práve na takýto prípad využitia Javy je tu Google Web Toolkit alebo GWT.

Pochopenie GWT je o pochopení hlavného účelu GWT a tým je preklad. Veľa z nastavení a nástrojov, ktoré GWT obsahuje sa týka práve toho magického kroku premeny Java kódu na JavaScript kód. Prechod na JavaScript ale nie je jedinou výhodou, ktorou sa môže GWT pochváliť. Veľa dôrazu bolo kladené na vyrovnanie sa v rôznorodým a nie príliš štandardizovaným prostredím prehliadačov (nie že by štandardy neexistovali, ale niekedy si ich každý implementátor vysvetľuje po svojom). Tvorcovia GWT hrdo tvrdia, že na seba berú bremeno toho, aby ste mohli písať jeden kód, ktorý beží v rôznych prehliadačoch.

Ako teda taká GWT aplikácia vyzerá? Najjednoduchšia možná verzia obsahuje 3 súbory:

  1. HTML – prestavuje html stránku, ku ktorej je na pozadí pridaný kód. Môže byť úplne jednoduchá a prvky do nej sú pridané neskôr pomocou kódu.

  2. Java – tu ide java kód, ktorý sa bude prekladať do JavaScriptu

  3. .gwt.xml – konfiguračný súbor pre GWT modul

GWT používa koncept modulov na logické rozdelenie kódu. Modul si viete predstaviť ako množinu Java kódu (fyzický môže byť rozmiestnený ľubovoľne – v konfiguračnom súbore sú na neho uvedené len odkazy) a množinu nastavení pre tento modul. GWT potom pri preklade vezme informácie v tomto module a urobí preklad. Výsledkom takého prekladu je potom množina html a JavaScript súborov (prípadne obrázkov a iných súborov s dátami).

GWT má v logu kufrík s náradím. A je to celkom výstižné, lebo okrem základného prekladu ponúka aj sadu nástrojov/techník, ktoré vedia byť v určitých situáciách užitočné. To je ich stručný prehľad:

  1. Widgety/Panely – predstavujú hotové UI prvky, pomocou ktorých viete tvoriť stránku bez priamej manipulácie s DOM. Dokážu sa do seba vnárať, podporujú notifikáciu pomocou udalostí a samozrejme je možné prispôsobovať ich vzhľad.

  2. Client Bundle – je to nástroj na efektívne prenášanie údajov (ako obrázky, texty) na klienta. GWT dokáže samo vybrať najvhodnejší spôsob ako zabezpečiť efektívny presun.

  3. UIBinder – okrem tvorby štruktúry stránky procedurálnym postupom v kóde je možné ju definovať pomocou XML jazyka. GWT potom na základe popisu poskladá potrebné widgety, z ktorých je vygenerovaný DOM. Nechýba výpomoc v podobe automatického mapovania hodnôt widgetov na premenné v kóde (s možnosťou písať jednoduché výrazy s viacerými premennými).

  4. GWT-RPC a Request-Factory – sú to nástroje, ktoré rôznym spôsobom umožňujú prenášať údaje (doménové objekty) cez sieť. Obe majú rôzne vlastnosti, a teda svoje výhody a nevýhody. Je to tiež jediný prípad, kedy časť GWT kódu ostáva ako java kód na strane servera.

  5. Editor-Framework – umožňuje mapovať widgety priamo na javovské objekty.

  6. Data-Presentation (Cell) Widget – špeciálna skupina widgetov určená na zobrazovanie veľkého množstva údajov.

  7. JSNI – JavaScript Native Interface – umožňuje časti kódu písať v JavaScripte, ktorý sa už neprekladá, ale len skopíruje na správne miesto. Používa sa napríklad pri volaní JavaScript knižníc alebo pri nízko-úrovňovej práci s prehliadačom.

  8. Lokalizácie – obsahuje v sebe 3 časti a to: internationalization (preklad rozhrania), localization (zmena formátu dátumu, čísel atď. podľa štandardov krajiny) a accesibility (úprava webu pre slabo vidiacich)

  9. Event Bus – zbernica udalostí naprieč celou GWT aplikáciou, ktorá umožňuje slaboväzobnú komunikáciu jej častí

  10. GIN Framework – Dependency Injection framework pre GWT

  11. Defered Binding a generátory – náročnejšie nástroje, ktoré umožňujú vytvárať viacero verzií JavaScriptu určené pre rôzne prípady použitia (rôzne prehliadače, podmienky spustenia prehliadača atď.)

Google Web Toolkit nevzniklo náhodou. Existuje veľká disproporcia medzi stavom vedomostí na strane vývojárov a požiadavkami trhu. Web expanduje a vyžaduje si čoraz viac programovania pre prehliadače. Na druhej strane mnoho vývojárov nie je ochotných opustiť svoj programovací jazyk/platformu. A preto do tejto trhliny už 7 rokov miery GWT. A aj tento vek musí byť dôkazom že to, čo ponúka, je naozaj použiteľné.


Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 6 200 ITečkárov dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.



Súhlasím so spracovaním mojich osobných údajov. ( Viac informácií. )

Tvoj email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžeš odhlásiť.

Peter Špireng
Peter Špirenghttp://www.spireng.sk/
Živí ma tvorba softvéru a riadenie softvérových tímov a zaujíma všetko, čo sa dotýka týchto oblastí. Okrem toho je mojou obľúbenou témou riadenie osobného času (time-management). Vo voľnom čase sa snažím veľa čítať a trocha písať.

Automation Tester

Máš skúsenosti s automatizovaným testovaním? Pre Automatizovaného testera máme príležitosť v oblasti digitálneho bankovníctva. Ide o projekt na kontrakt s odmenou...

Java Junior/Medior Developer

Osamostatni sa a pracuj sólo! Práve teraz je tu príležitosť pre Junior/Medior Java Developera pracovať na projekte pre medzinárodnú...

MS BI Developer / REMOTE

Sprav krok vpred s novým projektom v oblasti bankovníctva. Ide o projekt na kontrakt s dĺžkou trvania 2 roky. Odmena...

Business Development Manager

Máš skúsenosť s aktívnymi akvizíciami SW riešení pre banky/poisťovne? Pre stabilnú československú spoločnosť hľadáme Business Development Managera, ktorý sa vyzná...

Julia Developer / REMOTE

Projekt pre nadšencov Julia a machine learning. Pre spoločnosť, ktorá používa matematické metódy a metódy AI / ML na...

Scala Medior/Senior Developer

Nechceš denne dochádzať do práce? Chcel by si byť súčasťou dlhoročného startupu, len senior ľudia (žiadni študenti) a pracovať...

Junior Scala Developer

Nechceš denne dochádzať do práce? Chcel by si byť súčasťou dlhoročného startupu, len senior ľudia (žiadni študenti) a pracovať...

Čo sa udialo na internete v roku 2020?

Slovensko sa v roku 2020 naučilo niekoľko nových slovíčok a nadobudlo mnoho nových digitálnych zručností. Pojmy ako videokonferencia, práca na diaľku /...

Toto sme stihli v roku 2020!

Rok 2020 bol určite neobyčajným rokom pre mnohých nielen z oblasti IT. Presunuli sme sa z kancelárií a open...

Tieto projekty získajú podporu z fondu SK-NIC

Poslednú tohtoročnú výzvu Fondu SK-NIC sme vyhlásili 1. septembra 2020 a otvorená bola až do 15. októbra. Do termínu uzávierky prišlo rekordných...

Čítaj ďalej:

Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 6 200 ITečkárov dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.

Súhlasím so spracovaním mojich osobných údajov. ( Viac informácií. )

Tvoj email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžeš odhlásiť.