Tutaj

Transkrypt

Tutaj
Mało oczywiste własności
Google Web Toolkit
Dominik Zalewski (genijusz)
[email protected]
Streszczenie
Czy kiedykolwiek zastanawiałeś się w jaki sposób nie ucząc się Javascript’u, pisać aplikację na
przeglądarki pozostając w świecie Javy? Trzy lata temu zacząłem zadawać sobie to właśnie
pytanie. Zaprowadziło mnie ono do Google Web Toolkit. W trakcie tej prezentacji postaram
się zaprezentować własności GWT, które nie są takie popularne, ale okazały się być bardzo
pomocne podczas pisania kodu dla moich klientów.
Contents
Nadal nie jesteś przekonany do GWT?
Wprowadzenie do GWT
Kompilator i linker GWT
Marshalling i unmarshalling
Frameworki oraz narzędzia
GWT na urządzeniach mobilnych
Nadal nie jesteś przekonany do GWT?
Nie ma lepszego sposobu na reklamę dla GWT niż pokazanie tego fragmentu prezentacji z
konferencji Google I/O
http://youtu.be/aW--Wlf9EFs?t=20m21s
W razie, gdybyś nie zwrócił uwagi, osoby prezentujące grają w Quake w przeglądarce
internetowej bez użycia dodatkowych pluginów. Jeżeli obejrzysz całość nagrania, dowiesz
się ile czasu zajęło im oprogramowanie tego. Powiem tylko jedną rzecz - nie pisali Quake’a od
zera. Wzięli po prostu port Quake’a nazywający się Jake2 i przekompilowali go na Javascript z
użyciem GWT.
Nadal nie jesteś przekonany? Proponuję spojrzeć na to:
http://youtu.be/F_sbusEUz5w?t=28m38s
Ta prezentacja pokazuje w jaki sposób można aktywować cross-kompilator Java ->
ActionScript w GWT, który pozwoli skompilować kod Javy do Flash’a. Tutaj został on użyty do
oprogramowania gry.
W trakcie mojej prezentacji pokażę kilka fragmentów najlepszych (moim zdaniem) prezentacji z
Google I/O, które prezentują niesamowite właściwości GWT.
Wprowadzenie do GWT
Jeżeli słyszysz o GWT po raz pierwszy - niech spokój pozostanie z tobą. W trakcie mojej
prezentacji wyjaśnię podstawy działania GWT. Bazując na prostym przykładzie aplikacji,
będę pokazywał cały proces rozwoju oprogramowania z użyciem GWT: zmiana, kompilacja,
uruchomienie.
Pokażę także gdzie i w jaki sposób można umieścić aplikację napisaną w GWT. Może to nie
jest takie oczywiste, ale można taką aplikację umieścić na serwerze nie posiadającym JVM.
Pokażę demo takiego rozwiązania, które wykorzystaliśmy dla jednego z naszych klientów. Kod
został umieszczony na systemie SAP (serwer bazujący na interpreterze ABAP’a).
Kompilator i linker GWT
Tutaj zacznę zagłębiać się w bardziej niskopoziomowe sprawy związane z GWT. Wyjaśnię
w jaki sposób działają mechanizmy wykorzystane na prezentacjach Google I/O. Jądrem
większości z nich jest sprytne użycie kompilatora i linkera GWT. Pokażę w jaki sposób można
pisać własne moduły do linkera GWT. Zademonstruję przykład użycia takiego modułu do
wyprodukowania pliku manifest HTML5 tak, aby aplikacja przeglądarkowa mogła działac offline.
Pokażę także jak modyfikować pliki, które produkuje kompilator GWT. Obydwa te użycia są
technikami stosowanymi przez nas w kodzie pisanym dla naszych klientów.
Wyobraź sobie, że prawdą jest iż w programowaniu GWT nie można używać Java reflection.
Jednak w rzeczywistości przykładów wziętych z życia, Java reflection po prostu jest potrzebna.
Wyjaśnię w jaki sposób konstruktorzy GWT poradzili sobie z tym problemem.
Marshalling i unmarshalling
Ponieważ GWT jest narzędziem do pisania interfejsów użytkownika, zapewne jesteś ciekawy
na ile różnych sposobów część przeglądarkowa może ‘rozmawiać’ z serwerem. Zaprezentuję
domyślną komunikację ‘GWT-RPC’, która działa bez zarzutu z serwerem bazującym na JVM.
Dla serwerów bez JVM zaprezentuję techniki z użyciem frameworka resty, komunikację XML
oraz JSON. Przeszliśmy wszystkie te ścieżki kodując warstwy komunikacyjne dla naszych
klientów. Pokażę wam wyniki naszych pomiarów wydajnościowych tych technik, co działa
dobrze, a co po prostu nie działa w niektórych przypadkach użycia.
Frameworki oraz narzędzia
Jest wiele frameworków oraz narzędzi dla ludzi programująych w GWT. Jeżeli pochodzisz
ze świata PHP, zapewne zainteresujesz się na początku biblioteką GWT query. Do dużych
projektów programistycznych możesz wykorzystać bibliotekę do wstrzykiwania zależności
zwaną GIN. Jest także cała ‘platforma’ zwana GWT platform. Pozwala ona używać wielu
ciekawych wzorców projektowych takich jak MVP (Model View Presenter).
Używamy większości z nich w trakcie naszej codziennej pracy. Bądź więc przygotowany na
przykłady ‘z życia wzięte’.
GWT na urządzeniach mobilnych
Większość aplikacji, które piszemy działa nie tylko na przeglądarkach desktopowych, ale także
na urządzeniach mobilnych. Pokażemy jak możesz przenieść swoje aplikacje w świat mobilny
używając tylko i wyłącznie samego GWT a także wykorzystując bibliotekę mgwt.
Biografia
Dominik rozpoczął swoją karierę w 2001 pracując przy projekcie
zdalnego nauczania opartym o technologię J2EE. Po ukończeniu swoich
studiów magisterskich w dziedzinie informatyka, zatrudnił się jako
programista ABAP. Założenie przedsiębiorstwa mając za sobą tak
różnorodny bagaż doświadczeń, nie było aż tak trudne. Jego wrodzona
ciekawość pozwoliła mu uzyskać tytuł doktora, znajdując powiązanie
pomiędzy aplikacją na systemy SAP oraz kombinatoryką, którą zajmował
się na uniwersytecie. Dominik jest również bardzo aktywny w
organizacjach typu non-profit, takich jak COMMON oraz CEAC (Common
Europe Advisory Council), gdzie można go często znaleźć jako
prelegenta podczas konferencji. Nie porzucił on też relacji ze swoją
macierzystą uczelnią, gdzie często prowadzi gościnne wykłady na
studiach magisterskich.

Podobne dokumenty