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ť.

Senior Java Developer

JOB Position: Java Developer Contract type: Contract Location: Bratislava, Košice, on-site Salary: 5000+ EURSuitable for the whole team.Primary Job Functions:Analyze and troubleshoot...

NetApp Admin

JOB Position: NetApp Admin Contract type: full-time Place of project: Homeoffice - remote with occasional visits to Germany, Slovakia – 5% onsite...

SCCM Specialist

Základné informáciePozícia: SCCM Specialist Pracovný pomer:  TPP, Živnosť Miesto práce: 95% Home-Office - 5% on-site Bratislava/Nemecko Plat: Medior od 2400+ EUR/Brutto/mesačne Senior od 4000+...

Jurior/Senior CRM ABAP Developer

Základné informáciePozícia:  CRM ABAP Developer Pracovný pomer:  TPP Miesto práce: Bratislava Plat: od 2000+ EUR/mesačneČo by si mal vedieť:aspoň 3-ročné skúsenosti...

Java Developer / Energerické odvetie / Košice

PRÁCA Pozícia: Java developer Pracovný pomer: TPP, Kontrakt Miesto práce: Košice, on-site Plat: Medior od 1.500 EUR Senior od 2.200 EUR FIRMA Odvetvie: Energetika Tím: 3-5 ľudí Firma: 70-80...

DBA Admin / 95% Home-Office – 5% on-site

Základné informáciePozícia: DBA Admin Pracovný pomer:  TPP, Živnosť Miesto práce: 95% Home-Office - 5% on-site - Bratislava/Nemecko Plat: od 2400 - 4000+...

Senior SAP Basis Consultant / 95% Home-Office – 5% on-site

Základné informáciePozícia: SAP Basis Consultant Pracovný pomer:  TPP, Živnosť Miesto práce: 95% Home-Office - 5% on-site Btaislava/Nemecko Plat: od 2.800+ EUR/Brutto/mesačne Jazyk: Nemecký...

Šiesty ročník ReactiveConf sa uskutoční 8.-9. Marca 2021, ReactiveOnline Meetup už dnes večer

Organizačný tím ReactiveConf sa vzhľadom na celosvetovú situáciu spôsobenú šírením COVID-19 rozhodol...

Živé IT projekty: Zmena môže prísť z najjednoduchšieho nápadu

https://youtu.be/U3k1JBhX5qYPredstavte svoj tím!V tíme pracovali: Peter...

Čí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ť.