Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Podobné dokumenty
Úvod do programovacích jazyků (Java)

Vytváření a použití knihoven tříd

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.

Formy komunikace s knihovnami

Tvorba informačních systémů

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Komponenty v.net. Obsah přednášky

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Aplikace s grafickým uživatelským rozhraním

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

1. Programování proti rozhraní

Web Services na SOAP

UJO Framework. revoluční architektura beans. verze

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Multiplatformní GUI toolkity

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Tvorba informačních systémů

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

typová konverze typová inference

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Úvod do programování v jazyce Java

RMI - Distribuované objekty v Javě

8 Třídy, objekty, metody, předávání argumentů metod

První kapitola úvod do problematiky

Michal Krátký, Miroslav Beneš

Abstraktní datové typy: zásobník

Výčtový typ strana 67

MVVM pro desktop i web

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Generické programování

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Technologie Java. Jaroslav Žáček

3. Základy programovacího jazyka Java

MBI - technologická realizace modelu

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Úvod do programovacích jazyků (Java)

Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.

Tvorba informačních systémů

Čipové karty úvod, Ing. Jiří Buček. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Tvorba informačních systémů

Programování v Javě I. Leden 2008

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Skriptování na straně serveru a klienta

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

Algoritmizace a programování

boolean hasnext() Object next() void remove() Kolekce

KIV/PIA 2012 Ing. Jan Tichava

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Programovací jazyk C# Úvod do programování v C#

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Programovací jazyk Úvod do programování v C#

JAVA Moduly Java, letní semestr 2018

Programátorská příručka

Přehled technologií mapových serverů ve státní správě

Univerzita Pardubice

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

Základy objektové orientace I. Únor 2010

Jazyk C# (seminář 9)

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci

UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA

Integrace OpenOffice.org a Javy. CZJUG, , Robert Vojta

Programování v Javě I. Únor 2009

9. Polymorfismus a rozhraní

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Programovací jazyk C# Úvod do programování v C#

Vaše jistota na trhu IT. Balíčky. Rudolf Pecinovský

Vývojové nástroje jazyka Java

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

Úvod do programování v jazyce Java

Programovací jazyk Java

Jazyk C# (seminář 6)

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Bioadresář. Specifikace požadavků. Verze Datum Projektový tým Bc. Martin Ventruba Bc. Ondřej Veselý Bc. Stratos Zerdaloglu

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Principy objektově orientovaného programování

ADT/ADS = abstraktní datové typy / struktury

E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka

Mozilla pro vývojáře. David Majda LinuxExpo 2005, Praha

WPA - Konfigurace Java EE aplikace (Maven, struktura war arch. kontejnerem Tomcat 8

Řízení reálných projektů, agilní metodiky

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

PHP Best Practices. Please try to fit your code to 80 columns. That's decimal 80. A. Morton

2 Postup při programování, úvod do programovacího jazyka Java

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Výchozí a statické metody rozhraní. Tomáš Pitner, upravil Marek Šabo

Skriptovací jazyky. Obsah

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Transkript:

Google Web Toolkit Martin Šurkovský, SUR096 Vysoká škola Báňská - Technická univerzita Ostrava Katedra informatiky 29. března 2010 Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 1 / 17

Obsah 1 Úvod 2 AJAX 3 Co GWT přináší 4 Tvorba uživatelského rozhraní 5 Hosted mode vs. web mode 6 GWT RPC 7 Implementace historie 8 Co podporuje JRE Emulator 9 JSNI 10 Kompilace do JS Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 2 / 17

Coje GWT a k čemu slouží Nástroj (framework) pro tvorbu AJAX aplikací v Javě Open source Řešení typu all-in-one Poskytuje komfort vyvoje java aplikaci - IDE, debugger,... Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 3 / 17

AJAX Asynchronous JavaScript and XML Souhrn technologií pro vývoj interaktivních webových aplikací Výhody Načítají se pouze části stránky, které byly aktuazovány Menší objem přenášených dat Možnost vytvařet aplikace podobných desktopovým (RIA) Nevýhody Programování a údržba velkých aplikací Problémy s kompatibilitou prohížečů Obtížná implementace historie Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 4 / 17

Co GWT přináší Vývoj v prostředí Java Možnost použití vyvojových prostředí Eclipse, NetBeans, ItelliJ IDEA Plnohodnotný debugger Sestavení hotové aplikace (Ant) Programátor neřeší kompatibilitu prohlížečů Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 5 / 17

Ukázka - HelloWorld public class HelloWorld implements E n t r y P o i n t { public void onmoduleload ( ) { Button btn = new Button ( K l i k n i ) ; btn. addclickhandler ( new ClickHandler ( ) { public void onclick ( ClickEvent event ) { Window. a l e r t ( Hello World!!! ) ; } } ) ; RootPanel. get ( ). add ( btn ) ; } } Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 6 / 17

Tvorba uživatelského rozhraní Uživatelské rozhraní se vytvaří podobně jako u desktopových aplikací (Swing,...) Prvky uživateského rozhraní by se daly rozdělit do dvou skupin: 1 Widgets Button, Label, TextBox, CheckBox, Table,... MenuBar, RichText, SuggestBox, StackPanel HTML 2 Panels FlowPanel, VerticalPanel, DockPanel,... Stylovaní komponent je možné provádět pomocí CSS.gwt-TextBox { padding: 2px; } Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 7 / 17

Tvorba vlastních widgetů Je možné též vytvářet vlastní widgety: Poskládáním existujících widgetů a penelů Napsáním v jave od nuly Nativně pomocí JavaScriptu generujícího HTML Demo http://gwt.google.com/samples/showcase/ Showcase.html Ukázka Login widget Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 8 / 17

Hosted mode vs. web mode Hosted mode slouží pro vývoj aplikace nepřekládá se do JS, běží v rámcí JVM plnohodnotný debugging stejná funkcionalita jako přeložený kód Web mode kód je zkompilovaný do JS Ukázka Debug aplikace Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 9 / 17

GWT RPC komunikace se serverem Celý proces je realizován v Javě GWT RPC zajišt uje serializaci dat Serializovatelné třídy: primitivní datové typy: int, char, double, boolean,... String, Date a všechny objektové třídy primitivních typů datové struktury: List, Set, Map, pole a vyčty uživatelsky definované typy, které implementuji rozhraní IsSerializable Serverová část implementována jako servlet Ukázka Vlastní typ posilaný přes GWT - RPC (IsSerializable) Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 10 / 17

GWT RPC komunikace se serverem Obrázek: Struktura GWT RPC Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 11 / 17

Implementace historie AJAX historii v prohlížeči narušuje GWT tento problém řeší pomocí odkazů uvnitř stránkay (#) Rozhraní ValueChangHandler Demo http://gwt.google.com/samples/showcase/ Showcase.html Ukázka Implementace hitorie Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 12 / 17

Co podporuje JRE Emulator java.lang java.lang.annotation java.util java.io java.sql Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 13 / 17

JSNI - JavaScript Navite Interface Umožnuje psát v javě nativně JS metody Možnost odkazovat se na proměnné z javy Možnost volaní Java metod Musí se dávat pozor na přenostitelnost kódu (nekompatibilita prohlížečů) Nativní kód není překladán překladačem ale je přimo vložen do výsledného kódu Není možné tyto části kódu debuggovat Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 14 / 17

JSNI - JavaScript Navite Interface Příklady public native void r e d i r e c t ( S t r i n g u r l ) / { $wnd. l o c a t i o n. replace ( u r l ) ; } / ; public native void f i l l D a t a ( L i s t data ) / { data. @java. u t i l. L i s t : : add ( Ljava / lang / Object ; ) ( item1 ) ; data. @java. u t i l. L i s t : : add ( Ljava / lang / Object ; ) ( item2 ) ; } / ; [instance-expr.]@class-name::method-name(param-signature)(arguments) Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 15 / 17

Kompilace do JavaScriptu Vytvoření syntaktického stromu z javovského kódu Překlad stromu Uzly stromu odpovídají JavaScript kódu (překlad) JSNI - metody přímo vloženy JSON - metody přímo vloženy Vygenerují se různé výstupu pro různé prohlížeče (Defferend Binding) Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 16 / 17

Zdroje 1 Google Web Toolkit projekt (aktuální verze 2.0) code.google.com/intl/cs/webtoolkit/ 2 Dokumentace code.google.com/intl/cs/webtoolkit/doc/latest/devguide.html 3 GWT API google-web-toolkit.googlecode.com/svn/javadoc/2.0/index.html?overview-summary.html 4 GWT Showcase and Features gwt.google.com/samples/showcase/showcase.html 5 JRE Emulator Reference code.google.com/intl/cs/webtoolkit/doc/latest/refjreemulation.html 6 GWT Tutorial developerlife.com/tutorials/?p=80 7 Přednáška Jiřího Semeckého video.google.com/videoplay?docid=9091343964958411578&hl=cs# Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010 17 / 17