Kulisy powstania książki “JavaFX 9. Tworzenie graficznych interfejsów użytkownika”

Wydawnictwo Helion właśnie wydało kolejną książkę. Żadna niespodzianka, prawda? Książka nosi tytuł “JavaFX 9. Tworzenie graficznych interfejsów użytkownika”. Też mało zaskakujący, jeśli zna się profil wydawnictwa. Co więc jest w tej książce niezwykłego? To znaczy oprócz tego, że jest świetna i pozwala w łatwy sposób nauczyć się programować? W sumie nic… poza tym, że jest mojego i mojego taty autorstwa 🙂 .

Pracowaliśmy nad nią przez wiele pełnych wyrzeczeń miesięcy. I oto wreszcie jest! I można ją zamówić w przedsprzedaży na tej stronie. Można też przeczytać darmowy fragment książki, żeby się przekonać, czy faktycznie jest dla Was interesująca.

Jak to się zaczęło

Pomysł książki narodził się bardzo dawno temu, chyba jeszcze w 2015 roku, w głowie mojego taty. Długi czas sobie tam siedział, powoli moszcząc się i urządzając, wypływał od czasu do czasu w rozmowach, ale nie spieszyło mu się. Aż wreszcie, mniej więcej na wiosnę 2017 roku, dojrzał. Książka zaczęła powstawać, początkowo jedynie jako zestaw kodów autorstwa taty. Wtedy wydawało nam się, że to właśnie jest najgorsza część roboty. Tata napisał kody i krótkie, ogólne ich opisy, zarysy zagadnień, które miały zostać poruszone. Jest tego dużo, jak możecie się przekonać, więc prace trochę trwały. Zaplanował też strukturę książki, choć potem trochę ją jeszcze zmienialiśmy.

Wreszcie, mniej więcej w połowie kwietnia 2017 roku, surowe teksty i kody trafiły do mnie. Jednocześnie skontaktowaliśmy się z wydawnictwem Helion, proponując im wydanie naszej książki. Odzew był bardzo szybki i pozytywny – piszcie! Wydawnictwo chciało wiedzieć, kiedy książka będzie gotowa. Przewidywałam, że zajmie to sporo czasu – trzeba było jeszcze napisać większość tekstu, a także sformatować go zgodnie z wymogami wydawnictwa, poza tym wiedzieliśmy już, że na jesieni wyjdzie Java 9 i będzie trzeba poprawić i uzupełnić kody (pierwowzór książki powstał jeszcze w Javie 8), więc podałam jako termin koniec 2017 roku. Wydawało mi się, że to duży zapas czasowy. Jakże się myliłam!

Swoją część pracy rozpoczęłam mniej więcej w tym samym czasie, w którym skontaktowaliśmy się z wydawnictwem. Początkowo nie przykładałam się bardzo, bo wydawało mi się, że jest dużo czasu, poza tym była piękna pogoda, więc uznałam, że intensywniej wezmę się za to na jesieni.

Wyścig z czasem

Na jesieni okazało się, że czasu jest za mało! Rozpoczął się wyścig z czasem. Wymienialiśmy z tatą od kilkunastu do kilkudziesięciu połączeń dziennie. Roboty był ogrom. Musiałam zrozumieć napisane kody, czasem je przerobić lub zarządzić ich przerobienie. Ale przede wszystkim napisać i uporządkować tekst – tak, żeby był czytelny i zrozumiały, żeby nie mający doświadczenia czytelnik wiedział, jak i po co używać danej konstrukcji. Wpleść w ten tekst kody tak, by wyjaśniały, co trzeba, a jednocześnie były zgodne z wymogami wydawnictwa. I wreszcie sformatować to wszystko, co samo w sobie też zajmowało sporo czasu.

Były momenty, kiedy oboje mieliśmy dość. Kiedy ja płakałam, a tata rzucał w gniewie słuchawką. Kiedy krzyczałam – ze zmęczenia i frustracji – a tata próbował mnie uspokoić. Ale prace posuwały się naprzód. Zbyt wolno. Termin gonił. W listopadzie rozmawiałam z szefem pod kątem ewentualnego urlopu bezpłatnego, bo coraz bardziej byłam przekonana, że nie zdążę. Rezygnowałam niemal ze wszystkiego, odrzucałam zaproszenia od przyjaciół, zaniedbywałam swoje zwierzaki, skracałam rozmowy telefoniczne, jedyną przyjemnością, na jaką sobie pozwalałam, były warsztaty teatralne, warsztaty improwizacji i bibliodrama. Miałam wyrzuty sumienia, ale musiałam mieć jakąś odskocznię.

To była wyczerpująca, ciężka praca, zajmująca każdą wolną chwilę. Soboty, niedziele, wieczory. Po ośmiu godzinach siedzenia przy komputerze wracałam do domu, by znów siąść przed komputerem do pracy. Nie powtórzyłabym tego, nie dałabym rady. Ale było warto.

Początek końca, czyli demoniczny korektor

Pod koniec grudnia, kilka dni przed terminem (dzięki rezygnacji z dołączenia do książki pewnych dodatkowych elementów) wysłałam finalną wersję książki do wydawnictwa. Myślałam, że to koniec problemów. Ale znów się myliłam.

Wymiana maili z przedstawicielką wydawnictwa przebiegała pomyślnie i bezproblemowo. Problemy zaczęły się dopiero, kiedy dotarliśmy do etapu korekty. Korektor bardzo mi się naraził, od samego początku. Wysłał mi teksty do korekty w poniedziałek. Tego samego dnia napisałam mu grzecznie, że sprawdziłam, ile dałam radę, a resztę doślę w piątek i w weekend (kolejne trzy dni miałam wracać bardzo późno). A on, że nie mogę, bo on ma termin i że zaraz wyśle mi jeszcze drugą połowę materiałów. Cóż… nie miałam zamiaru rezygnować dla niego ze swoich planów i spraw ani zarywać nocy (i tak już zbyt krótkich), więc napisałam do wydawnictwa, że proszę o przesunięcie mu terminu, skoro się nie wyrabia. Na co uzyskałam grzeczną odpowiedź, że oczywiście, mam pracować w swoim tempie i nie przejmować się nadgorliwym panem, który najwyraźniej nie otrzymał dokładnych informacji o zasadach współpracy.

Nie wiem, czy był to efekt tej kłótni, czy osobowości korektora, ale to nie był koniec problemów. Korektor uparł się, że musi dokonać jak najwięcej zmian, wobec tego robił dziwne rzeczy w rodzaju zamiany wszystkich “stworzyć” na “utworzyć” i odwrotnie – w miejscach, gdzie nie było to niczym uzasadnione. Dwukrotnie dokonał sobie samodzielnej zmiany kodu, który w efekcie stracił całkowicie sens i przestał się kompilować (przestawił nawiasy, usunął słowko new w deklaracji nowego obiektu itp.). Na szczęście sprawdzałam tekst odesłany mi po korekcie, obserwując wszystkie zmiany, a nie jedynie przeglądając komentarze. Nie mam pewności, czy czegoś nie przepuściłam, bo byłam już zmęczona, a wiadomo, że uwaga wtedy szwankuje. Ale mam nadzieję, że nie.

Nareszcie koniec!

I wreszcie nadszedł dzień, kiedy mogłam odetchnąć z ulgą. Książka była gotowa. Pozostały już tylko drobnostki, w postaci przejrzenia gotowej makiety książki czy zaakceptowania stworzonej przez grafika okładki. Książka jest dostępna na stronie Helionu. Bardzo ją Wam polecam. Mimo że dotyczy Javy 9, jest kompatybilna z najnowszą wersją JavaFX, z uwzględnieniem zmian, o których możesz przeczytać w tekście o zmianach w JavaFX – ich realizację znajdziecie w artykule Aktualność książki “JavaFX 9. Tworzenie graficznych interfejsów użytkownika”. Wiele godzin mojej i taty pracy nie poszło na marne – książka jest napisana przystępnym językiem, tłumaczy zagadnienia w prosty, jasny sposób i pozwala szybko nauczyć się korzystania z funkcjonalności JavaFX. Można ją traktować jako podręcznik, czytając krok po kroku, ale też nic nie stoi na przeszkodzie, by korzystać z niej, szukając konkretnych zagadnień. Było ciężko, ale efekt naprawdę wart jest polecenia.

Oprócz książki Helion udostępnia też pliki z kodami źródłowymi. Warto je pobrać, bardzo się przy nich napracowaliśmy, ale w efekcie powstał kod, który ułatwia zrozumienie treści znajdujących się w książce. Wszystkie kody można uruchomić i zobaczyć w praktyce, jak działają poszczególne elementy JavaFX. Pliki znajdują się tutaj:

Co się zmieniło?

Jak pewnie wiecie, Java jest co jakiś czas aktualizowana i pojawiają się nowe jej wersje. Jeśli popatrzycie tylko na numerki, to można odnieść wrażenie, że książka jest już dawno nieaktualna. Ale to nieprawda. Owszem, trochę rzeczy się zmieniło – ale wcale nie aż tak dużo. I choć nie planujemy w najbliższym czasie wydawania kolejnej wersji książki, to chcemy, żebyście wciąż mogli korzystać z zawartych w niej informacji. Dlatego specjalnie dla Was zamieściliśmy informacje o zmianach w Java FX od JavaFX 9 aż do najnowszej wersji, a także zaktualizowaliśmy kody i opisaliśmy zmiany dotyczące samej książki.

Nowa wersja książki

W sprzedaży jest już też dostępna nowa, zaktualizowana wersja książki, zgodna z wersją JavaFX 17:

Kody do nowej książki znajdziecie tutaj:

A jeśli chcielibyście ściągnąć sobie pełny projekt IntelliJ IDEA z kodami przykładów, to jest dostępny tutaj:

Kod w Kotlinie można ściągnąć stąd:

Jeśli chciałbyś wiedzieć, jak zamienić kod JavaFX na Kotlina, to instrukcja znajduje się w tym artykule.