21 września 2011

Zapiski z drugiej części "Hello, Android"

Jak już pisałem w Zapiski z pierwszej części "Hello, Android", Pragmatic Programmers udostępnił mi darmową wersję "Hello, Android", wydanie 3, którą powoli acz nieprzerwanie czytam w wolnych chwilach - podczas dojazdów do/od klienta, a zwykle wieczorem. Nie sądzę, aby dane mi było całkowicie poświęcić się Androidowi, czy osiągnąć szczyty tworząc aplikacje mobilne na niego, ale frajdy jest z nim co niemiara (właśnie uzmysłowiłem sobie, że jest to mój pierwszy raz, kiedy napisałem "co niemiara" i to początkowo z błędem!). Twierdzę, że nauka Androida pomaga zrozumieć tworzenie aplikacji graficznych w ogólności, więc może przydać się również poza obszarem tworzenia aplikacji mobilnych. Poznawanie nowego, jeśli jeszcze dodatkowo podparte stosunkowo gładkim wejściem w temat, najwyraźniej sprawia mi dużo zadowolenia.

Dzisiaj skończyłem czytać 2. część zatytułowaną "Android Basics" i przyznam, że, ku mojemu ogromnemu zdumieniu, czytanie jej na S2ce bardzo przypadło mi do gustu. Obawiałem się, że będzie mi brakowało możliwości oznaczania sekcji, do których warto wrócić, podczas dalszej nauki, ale od kiedy znalazłem tę funkcję w czytniku Amazon Kindle for Android i mam dodatkowo możliwość umieszczania notatek - "zapisków na marginesie", jestem w pełni usatysfakcjonowany. Drukowanie odeszło do lamusa. Dodatkowo jest funkcja tłumaczenia słówek, co tym bardziej uzasadnia moją inwestycję (warto przypomnieć, że jest to bodaj pierwsza moja inwestycja stricte "naukowa" powyżej 1000 PLN i krążyłem koło niej przez miesiące rozważając iPhone, iPad, Kindle i właśnie smartfona z Androidem - HTC Sensation lub Samsung Galaxy S2). Chciałbym, aby dalsze inwestycje były tak udane.

Dzięki lekturze oswoiłem się z tworzeniem interfejsu użytkownika, opanowałem rozumienie znaczenia aktywności (android.app.Activity), widoków (android.view.View) i poznałem klasy android.content.Intent oraz android.widget.Toast. Poznałem AndroidManifest.xml i generowaną klasę R. Bardzo proste (żeby nie napisać prostackie) aplikacje są już w moim zasięgu. Kiedykolwiek widzę to niewielkie okienko w czytniku Google Reader, które informuje o oznaczeniu wpisu gwiazdką, już wiem, że użyto Toast. Zacząłem przyglądać się aplikacjom, które używam na S2ce, pod kątem użytych klas i jak rozwiązano komunikację pomiędzy aktywnościami (wciąż zastanawia mnie, jak napisano górną belkę w Google Reader, ale rozumiem, że wszystko w swoim czasie). W rozdziale mogłem zapoznać się z LogCat - widokiem Eclipse ADT do przeglądania zapisów w dzienniku Androida i co mnie niezwykle zaskoczyło, są tam również zapisy z fizycznego urządzenia, kiedy podłączone jest do komputera po USB. Trzeba było widzieć moją minę, kiedy poszukując wpisów z klasy android.util.Log, zobaczyłem zdarzenia o wygaszaniu ekranu, ładowaniu baterii i w ogóle niskopoziomowych zdarzeń, które fruwają po "magistrali" androidowej. Aż do rozdziału 5. "Multimedia" bawiłem się przednio.

Od rozdziału 5. "Multimedia" zacząłem się lekko nudzić. Może dlatego, że oswoiłem się trochę ze środowiskiem i gdyby narysować krzywą ilości wiedzy, jaką musiałem przyswoić względem rozdziałów, to naturalnie na początku było jej więcej i chyba była bardziej przydatna. Mimo, że daleko mi do tytułu znawcy tematu, to zdążyłem już nabrać pewności, że tytuł jest na wyciągnięcie ręki i nie jest to szczególnym wyzwaniem (czyżbym był zbyt pewny siebie?!). Ot, programowanie w Javie z nowym API. Tego doświadczyłem już wielokrotnie, więc kolejne ślęczenie nad dokumentacją, wcale mnie nie przeraża. Oczywiście, wymaga to wielu godzin spędzonych nad dokumentacją i ciągłego konfrontowania jej w praktyce, ale obawiałem się, że całe środowisko będzie wymagało całkowitej zmiany myślenia, przyzwyczajeń, czy czegoś w ten deseń. Nic bardziej mylnego. Uważam, że wybór S2ki był strzałem w dziesiątkę, bo swoimi możliwościami - ekran, procesor, pamięć - zdejmuje ze mnie karby zestawiania właściwego środowiska wykonawczego, co niejednokrotnie wpływa na ogólny pogląd sprawy i dalszej nauki. Dodatkowo, wejście w temat Androida z książką "Hello, Android" jest dopasowane na miarę. Dziękuję Bartek za pomoc! (patrz jego komentarz do wpisu Wrześniowy Android).

Rozdział 5. to omówienie sposobów na odgrywanie muzyki w tle, czy podczas wciśnięcia przycisków w aplikacji, wyświetlanie filmów i na zakończenie wprowadzenie do przechowywania stanu aplikacji w przestrzeni zarezerwowanej dla niej bezpośrednio na urządzeniu lub karcie SD. Na szczęście jest tego tyle, aby dać ogólny pogląd, bez wnikania w szczegóły. I dobrze, bo na tym etapie nie jest mi to potrzebne. Nie mogę doczekać się przedstawienia SQLite, ale to już wiem, że wcześniej zapoczątkuję wieczorną lekturą artykułu Understanding Android local data store APIs, na który dzisiaj trafiłem. Więcej na moim kanale @jaceklaskowski na twitterze. Zapraszam do nasłuchiwania.

Przy okazji, coraz częściej dochodzą do mnie głosy, że wstrzeliłem się z tym moim androidowym wrześniem w plany wielu osób, które również rozważały wejście w Androida. Super móc zamienić słowo z innymi - na blogu, Google Buzz, czy GTalku, rozumiejąc, o czym się do mnie mówi. Niesamowite uczucie wszechobecnego wsparcia i wspólnego badania tematu. Cudownie, że dzięki Androidowi mam również okazję poznać nowe osoby. Bezcenne! Pojawiła się wręcz oferta przeprowadzenia przeze mnie autorskiego szkolenia z Androida. Wszystko to sprawia, że aż się chce zintensyfikować wysiłki. Chyba złapałem falę! :)

1 komentarz:

  1. Witam. Miło się czyta Twoje wpisy, przypominają mi, jak sam zaczynałem dopiero przygodę z Androidem :)

    Co do Twojego pytania i górną belkę w Reader, to ja to robię tak, że rozszerzam klasę RelativeLayout, do której wczytuję przygotowany wcześniej RelativeLayout w XML, gdzie ustawiam tło, obrazki dla przycisków itd. Sama klasa natomiast udostępnia metody do ustawiania listenerów na przykład itp. Następnie taką napisaną przez siebie klasę używam w layoutach, z których korzystają dane Activity :)

    Może nie brzmi to zbyt prosto, ale z czasem okazuje się, że pod Androidem prawie wszystko jest proste :)

    Pozdrawiam i czekam na kolejne wpisy.

    OdpowiedzUsuń