https://pixabay.com/pl/telefon-ekran-technologia-mobilnych-1052023/

Android. Początki

Cześć!

Wracam znów po dłuższej przerwie, spowodowanej natłokiem domowych obowiązków, z tematem nowym na moim blogu, nowym również dla mnie, w nieco innej formie niż dotychczasowe wpisy. Od jakiegoś czasu chodziło mi po głowie, aby pójść za trendem i wgłębić się w tematy aplikacji mobilnych. Jak teraz o tym myślę, w zasadzie nie powinna to być chęć, a konieczność, biorąc pod uwagę ten szeroki i stale rosnący rynek. Nie wiem jak Wy, ale w moim przypadku jest tak, że lubię przeczytać książkę na temat danego zagadnienia. Nawet jak jej treść nie jest zbyt szczegółowa, lektura pozwala usystematyzować pojęcia związane z daną technologią.

Równolegle do przeglądania dokumentacji deweloperskiej, zacząłem zastanawiać się, jaką książkę mógłbym przeczytać. Jakiś czas temu miałem fazę na śledzenie promocji na e-booki o tematyce informatycznej. Z tamtego czasu zostało mi trochę nieprzeczytanych pozycji. Wróciłem do tej listy i okazało się, że znalazła się tam książka Andrzeja Stasiewicza, „Android. Podstawy tworzenia aplikacji”. Aż wstyd się przyznać, książka była u mnie od 2014 roku. Wtedy to był jeszcze w miarę świeży tytuł (rok wydania 2013), ale siadając do lektury pozostało mi mieć tylko nadzieję, że w podstawowych założeniach wybranej technologii nie było rewolucji w stylu Angular JS – Angular 2. W dalszej części tego wpisu, opiszę swoje wrażenia z lektury.

Andrzeja Stasiewicz, Android. Podstawy tworzenia aplikacji
Andrzeja Stasiewicz, Android. Podstawy tworzenia aplikacji

Może na początku warto zrobić jakieś założenia, czyli czego oczekiwałem po lekturze. Przede wszystkim zależało mi, aby poznać technologię, jej podstawowe założenia, jakie komponenty są wykorzystywane, zobaczyć kilka przykładów kodu prostych aplikacji dla Androida i ogólnie z czym to się je. W skrócie moje oczekiwania kończyły się na totalnych podstawach podstaw, choć rozpatrywanych z poziomu posiadania jakiejś tam wiedzy programistycznej. W zasadzie, tytuł książki pozwolił mi myśleć, że to może być dobry wybór.

Jak wspomina autor, książka została napisana na podstawie jego doświadczeń w nauczaniu programowania. Czytając, faktycznie odnosiłem wrażenie, że jest to podręcznik szkolny, z dosyć dużą domieszką instrukcji laboratoryjnych, z jakimi czasem spotykałem się na studiach, w których było opisane krok po kroku, jak wykonać poszczególne zadania.

Pierwszy rozdział wywołał u mnie sporą niechęć spowodowaną opisem instalacji środowiska, w tym Android SDK, Eclipse, a nawet Java. Czy na prawdę w książkach dla programistów tego typu opisy są konieczne? W dalszej części książki również znajdziemy opisy obsługi środowiska Eclipse, gdzie należy „kliknąć” aby przykładowo uruchomić kreator tworzenia nowej klasy.

Gdzieś na przełomie rozdziału pierwszego i drugiego powoli kształtowała się we mnie świadomość, że nie powinienem dalej oczekiwać fajerwerków, bo książka wyraźnie jest kierowana do zaczynających swoją przygodę nie tylko z Androidem, ale ogólnie z programowaniem. Pozostaje pytanie, czy naukę programowania powinno zaczynać się od aplikacji mobilnych czy może lepiej być tradycjonalistą i zacząć od aplikacji konsolowych, kiedyś pisanych w Pascalu, później w C/C++, a w obecnych czasach w Pythonie? W zasadzie po pewnych przemyśleniach, odpowiedź wcale nie musi być oczywista. Zakładając, że grupę odbiorców mają faktycznie stanowić uczniowie, to wypisanie w czarnym oknie „Hello World!” nigdy nie będzie stanowiło dla nich takiej frajdy jak przygotowanie czegoś nawet prostego, ale uruchomienie tego na tym samym urządzeniu, co Angry Birds.

Wracając do treści książki, tak jak wspomniałem, pisana jest prostym językiem, w formie instrukcji jak, krok po kroku, wykonać daną czynność. Oczywiście nie brakuje również szerszego komentarza wyjaśniającego, co w danym fragmencie kodu się wydarzyło. Niestety wiele tych opisów jest powtarzanych na przestrzeni kilku rozdziałów. W zasadzie każda przykładowa aplikacja zawiera zbliżony fragment o tym, jak „wyklikać” projekt. W książce nie brakuje elementów graficznych, które z pewnością ułatwią znalezienie początkującym odpowiedniej funkcjonalności w Eclipse.

Właśnie – Eclipse. To jest minus, ale nie książki, tylko czasu, w którym była pisana. Tyle, ile zdążyłem się zorientować, w świecie Androida króluje obecnie Android Studio, oparty na produktach ze stajni JetBrains. Dla zainteresowanych, w sprzedaży jest nowsze wydanie książki, z roku 2015, w którym (sądząc po spisie treści) Eclipse został zastąpiony przez Android Studio.

Jeśli chodzi o kod, to z mojego punktu widzenia, pojawił się on zdecydowanie za późno. Cztery pierwsze rozdziały obfitowały w soczyste opisy znaczników XML, przykładowo konfigurujących położenie przycisku w aplikacji. Dla mnie – za dużo czytania, za mało treści, jednak aby nie być zbyt surowym, należy przypomnieć, że grupą docelową są raczej nastolatkowie. Prawdopodobnie to dla nich, listingi w książce łączą anglojęzyczne nazwy funkcji z API, z autorskimi kliknieto_1() czy obroc(). Co niespotykane, angielskie nazwy są często tłumaczone na język polski w ramach wyjaśnienia działania wybranej metody czy pojęcia, przykładowo Canvas to „egzemplarz aparatu graficznego”. 🙂

Z punktu widzenia kodu, autor zakłada brak znajomości podstaw, wplatając lakoniczne wyjaśnienia pojęć z zakresu od konstruktora, przez polimorfizm, aż do typów generycznych. Nie jest to podręcznik Javy, więc oczywistym jest, że zawarta wiedza jest szczątkowa. Tu ponownie należałoby się zastanowić, czy branie się za Androida nie powinno zakładać znajomości samej składni i konstrukcji języka?

Podsumowując, co znalazłem w tej książce? Trochę przykładów bardzo prostych aplikacji pisanych dla Androida. Dowiedziałem się, że konfiguracja wyglądu aplikacji odbywa się na zasadzie modyfikacji plików XML, poznałem podstawowe znaczniki. Czego mi zabrakło? Chyba szerszego wstępu teoretycznego o tym, jak działa sam Android, jakie programista ma możliwości oraz z jakich komponentów budowane są aplikacje. Zabrakło również informacji o zagrożeniach związanych z różnicami pomiędzy poszczególnymi wersjami API oraz wskazówek w wyborze odpowiedniej platformy.

Bilans końcowy uważam raczej za nieznacznie dodatni, szczególnie biorąc pod uwagę czas poświęcony na przeczytanie w stosunku do ilości zdobytych informacji (dobra, przyznam się.. niektóre opisy struktury XML pomijałem;)). Dla kogo jest ta książka? Poleciłbym ją sobie o 15 lat młodszemu, na przełomie wieków (wtedy było trudniej z dostępem do wiedzy), choć szczerze raczej wolałbym najpierw poznać semantykę i podstawy języka.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *