Szkolenie Eclipse RCP

Ile czasu potrzeba na poznanie Eclipse RCP?

Odpowiedź brzmi: 16 godzin praktycznych warsztatów. Tyle czasu wystarczy, aby znając dobrze Javę zapoznać się z najważniejszymi elementami SWT/JFace, platformą Eclipse RCP, środowiskiem PDE oraz poznać kilka "myków", które umożliwią bezproblemowe stworzenie samodzielnej dystrybucji oprogramowania Rich Client. Właśnie wróciłem z jednego takiego szkolenia, które przeprowadziłem na zlecenie kolegi ze studiów, na co dzień pracującego po drugiej stronie Odry. Muszę przyznać, że było to dla mnie, w roli nauczyciela, bardzo ciekawe doświadczenie. Ale po kolei...

Temat został zdefiniowany prosto. W jeden weekend przekazać jak najwięcej wiedzy na temat tworzenia okienkowych aplikacji w oparciu o platformę Eclipse RCP. Kolega pracuje na co dzień w Niemczech, pracy ma sporo i wolał raz przysiąść i się wszystkiego nauczyć, niż mozolnie ślęczeć nad tutorialami i podręcznikami.

Na nieco więcej niż tydzień przed naszym spotkaniem dostałem od kolegi zrzuty ekranów zaawansowanych aplikacji webowych (z branży finansowej) i moim zadaniem było przygotowanie szkolenia właśnie pod kątem takiej aplikacji, jaka była na załączonym obrazku. Znajdowały się tam wszelkiej maści kontrolki, które w ciągu naszych 16 godzin przekładaliśmy na SWT/JFace. Dodatkowo niektóre komponenty doczytywały dane z zewnętrznego źródła, za które posłużyła nam prosta aplikacja webowa (Spring) udostępniona przez HttpInvokera.

Zaczęliśmy w piątek ok. godziny 10 (kolega musiał wstać o 5 rano, gdyż przyleciał bezpośrednio z Niemiec). Odpaliliśmy nasze maszyny (Ubuntu GNU/Linux z Gnomem u mnie, Windows XP Professional u kolegi) i Eclipsy, przy czym założenie było takie, że ja sobie siedziałem z boku i opowiadałem o teorii, a kolega musiał cały kod pisać samodzielnie, pod moim kierunkiem. To po to, żeby się lepiej utrwalało.

Na pierwszy ogień poszła prezentacja możliwości Eclipse, struktura platformy, jej podstawowe komponenty i sposoby tworzenia własnych. Już po chwili klikania w kreator pojawiła nam się testowa aplikacja, do której mogliśmy dodawać własne elementy. Po krótkim wyjaśnieniu podstawowych interfejsów przeszliśmy do SWT i JFace, aby już po paru chwilach naszym oczom ukazał się pierwszy sensownie wyglądający widok (drzewo obiektów).

Po pięciu godzinach wzbogacania widoku i dodaniu drugiego z kilkoma kontrolkami dysponowaliśmy już jedną perspektywą, dwoma wypełnionymi zaawansowanymi komponentami widokami (rozłożonymi na siatce i skalujące się), przykładowymi akcjami w widokach. Stwierdziliśmy, że jesteśmy głodni. Poszliśmy do pobliskiej pizzerii i zamówiliśmy sobie typowo włoskie dania (placki po węgiersku z gulaszem i karkówkę z kapustą i frytkami).

Po takiej uczcie nabraliśmy sił na kolejną trzygodzinną sesję, w której widoki zaczęły się ze sobą komunikować, listenery zaczęły reagować na zdarzenia, aplikacja zyskała menu i potrafiła już w pełni komunikować się z użytkownikiem.

Ósma godzina to już pierwsze oznaki kryzysu. Koledze (na nogach od 5:00) percepcja spadła, mnie szczęka, która w jeden dzień powiedziała więcej niż przez ostatni miesiąc, ledwo już dyndała na zawiasach. Zgodnie stwierdziliśmy: dość na dziś!

Nazajutrz z nowymi siłami przystąpiliśmy do dalszej pracy. Po kolei wprowadzaliśmy do aplikacji nowe elementy, takie jak: wpinanie się do standardowych akcji eclispe, tworzenie systemu pomocy, dodawanie akcji na CoolBar, wypisywanie komunikatów w linii statusu, używanie okien dialogowych. Sporo uwagi poświęciliśmy również tworzeniu stron preferencji i wykonywanie kodu uwzględniającego preferencje użytkownika. W międzyczasie napisaliśmy aplikację w Spring Framework, która zasymulowała nam zewnętrzne źródło danych i przerobiliśmy naszą aplikację RCP, żeby łączyła się z tym źródłem przez HTTP (osadziliśmy Spring Framework w aplikacji RCP).

Tak nam się intensywnie pisało, że bez wzmocnia dłużej nie daliśmy rady. Wzmocnienie polegało na wyjściu to japońskiej restauracji Akasaka (w domu handlowym Land przy stacji Metro Służew ? polecam tą knajpkę ? droga, ale wyśmienita) i wchłonięciu rzeczy, których nazw nawet nie powtórzę, bo ledwie się je udało z karty przeczytać (takie śmieszne znaczki, jakby ktoś plik binarny puścił na konsolę)... Uraczyliśmy się również sushi (shake maki ? sushi z łososia, moim zdaniem najlepsze), oczywiście pałeczkami.

Przedostatnia część szkolenia to przygotowanie aplikacji do dystrybucji i publikacji, tworzenie produktów, personalizacja produktu (splash screen, okienko "o programie", ikonki, launcher...) i generowanie deskryptorów Java Web Start. Ten ostatni punkt nie do końca został zrealizowany ? aplikacja, mimo poprawnego ściągnięcia wszystkich zależnych bibliotek przez Web Start, uparcie nie chciała nam wystartować. No trudno ? temat wymaga jeszcze pogłębienia.

Na zakończenie kolega musiał odpowiedzieć na serię podchwytliwych pytań, które stanowiły syntezę naszych dwudniowych zmagań z Eclipse RCP i podziałały, mam nadzieję, utrwalająco.

Te 2 dni to była ciężka, ale przyjemna praca. Ośmiogodzinne sesje z jedną przerwą obiadową to spory wysiłek zarówno dla ucznia jak i dla prowadzącego. Ale udało się ? cel został osiągnięty i nie ukrywam, że jest to taka moja mała satysfakcja. 16 godzin wystarczyło, aby przekazać górę wiedzy o platformie Eclipse w formie praktycznych warsztatów, z laptopem na kolanach.

Dziękuję Gabrysiowi za zaufanie i zaangażowanie. Polecam się na przyszłość ;)

Comments

Opcje przeglądania komentarzy

Wybierz preferowany sposób wyświetlania komentarzy i klinij na "Zapisz ustawienia", aby aktywować zmiany.
Witold Szczerba's picture

super, świetnie, itp...

Powiedz Ant, jak bardzo skomplikowana jest to wiedza i ile czasu zajęło Tobie nauczenie się tego, co teraz pokazujesz w praktyce w dziedzinie Eclipse RCP?

Może więcej osób jest w stanie nauczyć się tego i nauczać dalej, każdy by chciał, żeby Ant go też nauczył, ale samemu też pewnie można :)

Sam bym chciał się tego dowiedzieć, pewnie zabiorę się za to jak tylko zrozumiem o co w tym chodzi :)

ant's picture

Tak wiedza nie jest skompliko

Tak wiedza nie jest skomplikowana, ale jest jej bardzo dużo - eclipse to kawał platformy. Nie wiem ile mi zajęło nauczenie się eclipse RCP. Pamiętam natomiast, co mnie do tego skłoniło. Kilka miesięcy temu - w okolicach czerwca - musiałem szybko napisać aplikację do wystawiania świadectw dla szkoły języków obcych. Początkowo myślałem o webappie, ale w sumie czemu nie zaryzykować, czegoś innego? Przecież Rich Clienty pisze się z reguły kilkakrotnie szybciej od webappów...

Sporo wcześniej czytałem o Eclipse RCP, bo temat grubych klientów zawsze bardziej mnie rajcował niż aplikacje webowe. SWT również zacząłem się interesować wcześniej, coby porównać sobie ze swingiem. W kilka dni napisałem coś, co potrafiło obsłużyć prostą bazę danych, wystawiać oceny na podstawie punktów i drukować seryjnie świadectwa (eksport do PDF) i kilka raportów, zapisywać pliki. Nie trwało to więc szczególnie długo, ale miałem już jakieś podstawy. Wynik tego szybkiego hacka pozostawiał wiele do życzenia, ale jak na pierwszą aplikację, która ruszyła do boju w dzień po napisaniu - sprawdziła się.

Od tamtej pory dłubię sobie w eclipse rcp, poznając różne jego zakamarki. Ciężko to przeliczyć na godziny. Sporo było podglądania kodu samego eclipse, przerabiania tutoriali, czytania artykułów z eclipse.org i helpa (help jest dość ogólny, ale mimo to bardzo dobry).

Materiałów jest sporo, więc każdy może się tego spokojnie sam nauczyć, choć pewnie nie w 16 godzin ;)

(a ant chętnie wszystkich nauczy za rozsądną cenę :-))

--
pozdrawiam
piotr maj

jcake software - http://www.jcake.com/

(a ant chętnie wszystkich


(a ant chętnie wszystkich nauczy za rozsądną cenę :-))

a certyfikat? ;)

A moze jeszcze jeden taki wyklad...

A moze jeszcze jeden taki wyklad. Chetnie bym posluchal. Moze w jakiejs szkole... np PJWSTK. (tu moglbym zalatwic wszystko)... ;)

ant's picture

Możemy o tym pomyśleć, ale

Możemy o tym pomyśleć, ale to najwcześniej w przyszłym roku, po moim powrocie z Niemiec. Jestem otwarty na propozycje ;)

--
pozdrawiam
piotr maj

jcake software - http://www.jcake.com/

było by super. Myśle że na

było by super. Myśle że na mojej Politechnice Warszawskiej po zaangażowaniu jakiegoś koła naukowego nei było by z tym również problemu.

Szkolenie

A może teraz zrobić je jeszcze raz ale z odpalonym w tle tym http://www.debugmode.com/wink/ :]

ant's picture

To nie to samo. W trakcie tak

To nie to samo. W trakcie takiego szkolenia co chwilę padają pytania dodatkowe, rozmawia się o najlepszych praktykach, rozwiązaniach alternatywnych etc. Tego się nie nagra, w tym trzeba uczestniczyć.

BTW: kto by obejrzał 16 godzinną prezentację? :)

--
pozdrawiam
piotr maj

jcake software - http://www.jcake.com/

ja tez.

ja tez.

ja bym z wielką chęcią obe

ja bym z wielką chęcią obejrzał takie szkolenie - zwłaszcza że uczestnictwo w nim jest jeszcze mniej prawdopodobne niż wyżej wymienione nagranie :)

Całkiem ładny wynik, przy z

Całkiem ładny wynik, przy założeniu, że uczeń posiada silną chęć zdobycia wiedzy, a nie został skierowany na szkolenie ;-)