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.