Felbuzdulva a Droidfoci pozitív fogadtatásán, felmerült az ötlet, hogy építsük be az egyébként is tervezett Android mérésbe. Ezt több szempontból is jó ötletnek tartom. Egyrészt látványos: a hello world tutorialokhoz képest sokkal szórakoztatóbb. Másrészt amellett, hogy viszonylag kevés kóddal látványos eredmény érhető el, viszonylag sok részét megmozgatja az API-nak: szenzorok, menü, layout, kontrol, érintésérzékelés és rajzolás. Ha hozzávesszük azt is, amit a diákok a már elkészült kód tanulmányozásából felszedhetnek: külső alkalmazás indítása, preferenciák mentése, hálózat-kezelés, minden tudása meglesz a diáknak, hogy - ha mást nem is,- játékokat írjon. Végül az sem egy utolsó dolog, ha végre elkészül egy igazán ergonómikus kliens a játékhoz.
Szóval ma délelőtt nekiáltam modularizálni a már így is kissé átdolgozott klienst, mert mit is csinálnék szombat reggel 8-tól, amikor már túl vagyok a reggeli sajtószemlén - nem átvitt, hanem a szó szoros értelmében. Minden haladt szépen rendeltetésének megfelelően, egészen addig, amíg el nem kezdett aggasztani, hogy honnan fogom majd tudni, hogy mit írt a diák. Nem lenne elegáns azt mondani a laboron, hogy "Hozz létre egy Activity-t, tedd bele a Manifest-be, keresd meg ezt és ezt a helyet a kapott kódban, és itt meg itt meg itt írd bele az osztály nevét, az osztálya elérhetőségét, és utána, ha nem gépelted el, ki is próbálhatod". Azt szerettem volna mondani a diákoknak, hogy "Hozz létre egy Activity-t, tedd bele a Manifest-be, és már ki is próbálhatod." Ugye rövidebb :)
Azt, hogy mindezt hogyan lehet XML parser vagy Reflection nélkül, kizárólag az Android API-ra támaszkodva megvalósítani, az alábbi linken osztottam meg az angol ajkú közönséggel. Röviden elöljáróban annyit, hogy a PackageManager sokban segít.