27 września 2011

Zapiski z trzeciej części "Hello, Android" - "Beyond the Basics"

W Zapiski z pierwszej części "Hello, Android" oraz Zapiski z drugiej części "Hello, Android" przedstawiłem swoje spojrzenie na zawartość dwóch pierwszych części "Hello, Android", wydanie 3. Dzisiaj skończyłem trzecią część "Beyond the Basics".

Już wspominałem, że książka wręcz przykuwa do siebie swoją prostotą i nie zagłębia się w sztuczki i kruczki związane z danym tematem. Książka jest wprowadzeniem we wszystko, co możemy znaleźć na platformie Android bez zagłębiania się w niuanse posługiwania się daną cechą. "Poszukiwacze skarbów", czyli osoby, które co najmniej wertują książki w poszukiwaniu czegoś odkrywczego, mogą się zawieść jej zawartością, ale to może równie dobrze świadczyć, że są to osoby, które już spędziły trochę czasu z Androidem i być może jeszcze nie wiedzą dokładnie, jak on działa, ale wiedzą wystarczająco wiele o każdej z cech. Porównałbym to do mojego rozumienia roli architekta i specjalisty w IBM (pewnie w każdej innej firmie sprzedającej oprogramowanie wspomagające budowanie rozwiązań końcowych jest podobnie). Architekt posiada szeroką wiedzę, która jest stosunkowo płytka patrząc na każdy z produktów, ale wystarczająca, aby zaproponować architekturę systemu. W przeciwieństwie do architekta, specjalista wie dużo na temat wybranego produktu lub produktów, ale z pewnością będzie to podzbiór produktów, o których cokolwiek może powiedzieć architekt. Zwykłem to porównywać do wiedzy poziomej, w poprzek wielu produktów u architekta, a wiedzy pionowej w bardzo niewielu produktach, w szczególności jednego, u specjalisty. Książka "Hello, Android" jest bardzo dobrym kompedium wiedzy na temat platformy Androida dla architekta, ale zdecydowanie na niewiele się zda dla osób, które potrzebują wiedzy specjalistycznej, tej pionowej, np. podczas rozwiązywania problemu lub poszukiwaniu wiedzy tajemnej. To nie jest ten typ książki.

Już z samego tytułu można wnosić, że jej celem jest jedynie wprowadzenie, ale takie szersze, do wielu, jeśli nie wszystkich, głównych funkcjonalności oferowanych przez platformę Android. Uważam, że książka jest doskonałym wprowadzeniem dla początkujących i jeszcze przed częścią 4. "The Next Generation" śmiało mogę ją polecić wszystkim, którym marzy się zrozumienie istoty programowania w Javie na platformę Android lub samodzielnym spróbowaniem się z tematem tworzenia aplikacji androidowej.

Śmiem również twierdzić, że nie dane mi było jeszcze czytać książki, która swym rozmiarem nie przerażałaby mnie, lub nastawiała na dłuższą lekturę, a jednocześnie była na tyle bogata w treść, aby stanowić doskonały przyczułek do dalszych badań. Mógłbym nawet posunąć się do stwierdzenia, że często była zbyt przewidywalna w swojej prostocie i kiedykolwiek można byłoby spodziewać się czegoś bardziej trudnego, autor po prostu kończył rozdział proponując odnośniki do powszechnie dostępnej dokumentacji, np. tej na Android Developers.

W części trzeciej dowiadujemy się o możliwości komunikacji poza urządzenie, np. komunikacji z zewnętrznymi stronami, zabawą z JavaScript oraz użyciem usług RESTowych. Jest też dostatecznie wiele na temat SQLite i OpenGL, więc śmiało możnaby stwierdzić, że dla każdego coś dobrego. Uważam, że ta przekrojowa wiedza w książce zadowoli nawet najbardziej wybrednego czytelnika, bo choćby sam styl pisarski autora gwarantuje dobrą zabawę, nawet przy czytaniu o czymś, co już znamy. W naszym przypadku, czytanie angielskojęzycznych książek pisanych przez rodowitych anglojęzycznych już samo w sobie daje zysk, więc trudno mówić o stracie, jeśli poświęcimy tej książce trochę swojej uwagi. Ja nie mogę narzekać.

Moje nieśmiałe trudy związane z pisaniem aplikacji androidowej Lokatnik można znaleźć w repozytorium android-examples. I tu mam pytanie do znawców tematu posługiwania się gitem na GitHubie. Chciałbym stworzyć jedno repozytorium, np. android-examples z wieloma aplikacjami, np. Lokatnik czy Powitanie (czyli tak, jak jest teraz), ale nie chciałbym podczas git commit w Eclipse dla Lokatnik być informowanym o zmianach w drugim projekcie - Powitanie i vice versa. Czy jest na to rozwiązanie inne niż stworzenie dwóch oddzielnych repo?