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 SAP Basis Consultant

Základné informáciePozícia: SAP Basis Consultant Pracovný pomer:  TPP, Živnosť Miesto práce: Pezinok, Home-Office Plat: od 3000+ EUR/Brutto/mesačnePopis práceposkytovanie služby inštalácie, konfigurácie,...

DBA Admin

Základné informáciePozícia: DBA Admin Pracovný pomer:  TPP, Živnosť Miesto práce: Pezinok, Home-Office Plat: od 2400 - 4000+ EUR/Brutto/mesačnePopis práce praca s databázovými...

Junior Technical Writer

Basic informationPosition: Junior Technical Writer Contract type: Full-Time employee Location: Bratislava, on-site Salary: from 1000 - 1400 EUR/ BruttoResponsibilities:Interviewing technical personnel...

QA/Testing Specialist – Automated Testing

Základné informáciePozícia: QA/Testing Specialist - Automated Testing Pracovný pomer:  TPP Miesto práce: Bratislava, on-site Plat: 1500 - 1900 EUR/Brutto/mesačnePopis prácenaplánovať a...

DevOps/SysAdmin Tech Lead

JOB Position: DevOps/SysAdmin Tech Lead Contract type: Full-time Location: Bratislava, on-site Salary: 3000 - 4000+ EUR/BruttoResponsibilities:team/tech leadership, prioritisation, 2 team members independent...

Junior/Senior Full Stack Developer / WEB Development for 150 countries

Basic informationPosition: Full Stack Developer Contract type: Full-Time employee or Contractor Location: Vienna (2-3 Days/Week On-Site) / 1 hour drive from...

Agile Project Manager / Scrum Master

JOB Position: Agile Project Manager / Scrum Master Contract type: TPP, Contract Location: Bratislava, Prague, Vienna Salary Junior: 1500 EUR/Brutto Salary Senior: 2200 EUR/Brutto Rate:...

Vieme kto je IT BLOGGER 2019

Súťaž IT Blogger 2019 sme v piatok 6.12.2019 oficiálne ukončili a prinášame vám vyhodnotenie a rozdáme ceny....

Milada Kováčová: Práca v IT nie je len o programovaní

Tentokrát sme sa rozhodli vyspovedať ďalšiu ženu v IT. Milada Kováčová pracuje v slovenskej softvérovej spoločnosti SOFTEC,...

Projekty prvej výzvy fondu SK-NIC sú schválené!

Po uzavretí výzvy Fondu SK-NIC na podporu malých projektov nás hodnotiaca komisia...

Čítaj viac:

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