17 września 2011

Androidowe WTF - PM też może

Trudno mi to teraz wytłumaczyć, ale posiadanie smartfona znacząco poprawiło moją chęć spróbowania kolejnej nowinki programistycznej bezpośrednio na telefonie. Nauka Androida widocznie przyspieszyła, bo bardziej się chce.

Chciałbym wierzyć, że nie interesują mnie gadżety - czy ich posiadanie dla poprawienia sobie samopoczucia z samego posiadania, czy dla chęci poprawienia sobie pozycji w społeczeństwie, czy z powodu ślepego podążania za trendem konsumpcyjnym (acz w tym przypadku mam pewne wątpliwości, czy zakup Galaxy to nie właśnie "owczy pęd"?!), ale każdorazowo, kiedy tylko biorę go w ręce, zaraz nachodzi mnie ochota, aby sprawdzić, jak też napisać własną aplikację na niego.

Uruchomienie aplikacji na smartfonie

Pisałem ostatnio, że przede mną jest sprawdzenie, jak to jest uruchomić aplikację bezpośrednio na urządzeniu. Do tej pory, niespełna 3-4 dni, jedynym środowiskiem, na którym uruchamiałem aplikacje androidowe był emulator - Android Virtual Device (AVD), którego podniesienie trwało wieki. Okazało się później, że można pozostawić emulator już uruchomiony i powinno być sprawniej. W zasadzie naturalne, kiedy przyrówna się to do smartfona, który jest włączony, kiedy uruchamiamy na nim aplikacje. Nic nadzwyczajnego, nieprawdaż? A jednak mnie to dziwiło.

To było w piątek, wieczorem. Postanowiłem sprawdzić, co można zrobić z poziomu Mac'a na S2 po porcie USB. Zacząłem poszukiwania jakiegoś narzędzia zarządzającego zawartością i po kwadransie, nie mając nic ciekawego, znużyło mnie. Zabrałem się za pisanie mojej aplikacji androidowej - z S2ką podłączoną do kompa. Całkowicie zapomniałem o nim, bo też, co mi miało przeszkadzać.

Po kilku zmianach postanowiłem sprawdzić działanie aplikacji i odpaliłem ją. Nic więcej nie zmieniając w samej konfiguracji środowiska odpaliłem emulator i jakoś tak dziwnie szybko zobaczyłem, że uruchamianie się zakończyło, tzn. wgranie aplikacji i jej uruchomienie, ale na ekranie nic się nie zmieniło - zero emulatora, ale jednak gdzieś ta aplikacja została uruchomiona. Tylko gdzie?!

I wtedy sobie przypomniałem, sekcję "1.4 Running on a Real Phone" z książki "Hello, Android", w której napisano:

"As long as the phone is plugged in, Eclipse should load and run applications on the phone instead."

Wymaga to wcześniejszego włączenia opcji USB debugging na urządzeniu - opcja Ustawienia > Aplikacje > Opracowywanie > Debugowanie USB (Ciekawie przetłumaczono "Development" na "Opracowywanie" - przyznaję, że jestem znany z wymyślnych tłumaczeń, ale na takie nie posunąłbym się).

I teraz już powinno być wszystko jasne, gdzie "poszła" moja aplikacja - nieświadomie uruchomiłem ją na smartfonie! Chciałbym móc wyrazić swoje zdumienie i radość, kiedy zobaczyłem aplikacje działającą na mojej S2ce! Sprawdź samemu i przekonaj się o roli gadżetów dla poprawienia efektywności pracy zespołu :) Niewielkim kosztem można zdopingować zespół do ponadplanowych działań na własną rękę, albo wręcz uatrakcyjnić prace rozwojowe (projektu i samych uczestników). Gorąco polecam zakup S2ki każdemu z członków zespołu przy projekcie androidowym.

PMowie też mogą tworzyć aplikacje androidowe

I jakby na dokładkę, spotkałem się wczoraj w biurze z jednym z kierowników projektów (PM, ang. project manager) i kiedy wspomniałem o moim, wieczornym wydarzeniu, poprosił, abym mu pomógł zestawić środowisko (Java SDK, Android SDK, Eclipse, Eclipse ADT), bo on też myślał, aby spróbować. Widziałem, jaki był zachwycony, kiedy uruchomił aplikację na swoim smartfonie, bez specjalnej wiedzy programistycznej. Sądzę, że na tym jednym "wybryku" się nie skończy.

WTF = What a Terrible Failure

Od wersji Android 2.2 (API Level 8) mamy metodę android.util.Log.wtf(), której zadaniem jest zgłoszenie sytuacji wyjątkowej w logu, która nie powinna w ogóle wystąpić. Interesujące, że zanim zabrałem się za Androida, sądziłem, że WTF znaczy coś zupełnie innego. Od tej pory, kiedykolwiek usłyszę WTF, będę sądził, że mówiący "siedzi" w Androidzie :)