Saatuani G1-puhelimen innostuin tietysti myös kokeilemaan Android-ohjelmointia. Googleltahan löytyy tarvittavat työkalut ilmaiseksi ohjelmien kehittämiseen Mac OS X:ssä, Linuxissa ja Windowsissa.

Valitettavasti Android SDK ei mielestäni ole ihan täysin Googlen laatukriteerien tasalla. Se on käytännössä plugin Eclipse-kehitysympäristöön, joka tarjoaa wizardin sovelluspohjan luomiseen sekä muutaman pretty-XML-editorin ja esikatseluikkunan.

GUI-käyttöliittymän muokkaaminen on siis käytännössä XML:n muokkaamista ja tulosten esikatselua graafisessa ikkunassa. Tämä on aika kaukana iPhone SDK:n ympäristöstä, jossa GUI-elementtejä voi selailla ja drag'n'dropata käyttöliittymään suoraan.

Android-emulaattori on periaatteessa ihan toimiva, mutta kestää ikuisuuden käynnistää. Jostain syystä Eclipselle pitää myös aina erikseen kertoa, haluaako käynnistää sovelluksensa Androidissa, vaiko kenties Java-applettina tai jonain muuna Java-sovelluksena. Tällaiset yksityiskohdat Google olisi voinut siistiä kuntoon.

Emulaattorin toimintaan liittyy muutakin epämääräisyyttä. Joskus se käynnistyy useaan kertaan rinnakkain. Eclipsen debug-logissa ei joskus näy mitään, vaan pitää käynnistää erikseen Terminalissa adb logcat. Tämä on sellaista sekoilua, jota odottaisi nykypäivänä vain Symbian-työkaluilta.

APIen tasolla Android tuntuu kohtalaisen fiksulta. Se käyttää pitkälti Javan valmiita luokkia (esim. java.net.*), joten Javaan tottuneelle omaksuminen on helppoa. Itselleni oli hiukan outoa palata Javan thread-pohjaiseen ohjelmointiin, kun on tottunut asynkronisiin I/O-kutsuihin sekä .NETissä että Cocoassa.

Varjopuoli on sitten siinä, että koko GUI on opiskeltava tyhjästä, sillä Androidissa on ihan omat widgettinsä ja näkymähierarkiansa. WYSIWYGin puuttuminen tekee tästä vielä hankalampaa, koska erilaiset widgetit pitää opiskella dokumentaatiosta.

Published 30.11.2008