Vyhlášení výsledků

Dostali jsme celkem 8 soutěžních řešení, z nichž čtyři řešení splnila požadované předpoklady a svoji kvalitou vyčnívala nad ostatními. Jedná se o řešení Jirky Daňka, Petra Bláhy, Ivo Šmída a Petra Abrahamczika. Z vyrovnaného pole na špici byla aplikace Jirky Daňka nejblíže reálnému použití, byla nejdotaženější do konce. Na pracích zbylých třech účastníků by bylo potřeba před vypuštěním zapracovat ještě o trochu více. Proto vyhlašujeme Jirku Daňka vítězem.

Při vyhlášení soutěže jsme kladli důraz na nové nápady, které soutěžící ve svých aplikacích přinesou, a na způsob, jakým budou potenciálnímu lapkovi ztěžovat práci s ukradeným telefonem. Tady je seznam nápadů, které nás oslovily.

  • Nápad Milana Svobody, který zkombinoval myšlenku aplikace "I am Rich" s AntiLapkou a všechny tři hodnotící uvedl minimálně do rozpaků, co se to vlastně na obrazovce děje. Mysleli jsme si, že si z nás vystřelil. Že se opravdu jedná o AntiLapku jsme poznali, až když jsme se podívali do zdrojových kódů. Opravdový zloděj by těžko poznal, že ukradený telefon je sledován.
  • V několika aplikacích se objevilo použití mapy v módu ukradeno, která zobrazuje aktuální pozici telefonu, což je dobrý nápad.
  • Jako nejpovedenější aktivní blokování uživatele se nám líbilo řešení Petra Bláhy, který k blokování uživatele použil opakující se alarm spouštějící otravnou aktivitu s výstrahou. Kdyby byl alarm ještě o trochu otravnější, bylo by i odinstalování aplikace problematické.
  • Petr Bláha a Jirka Šmíd šli tak daleko, že spouští alarm dokonce i po restartu telefonu.

Technické poznámky

  • Zhruba polovina lidí použila k realizaci stavu netýkavka řešení pomocí service, která poslouchala změny posílané SensorManagerem. Jako lepší řešení se nám pro tento účel jeví použití Activity, která má jednodušší lifecycle, a kde můžete snadno odregistrovat listenery v metodě onStop() a nezatěžujete tak systém více, než je nutné. Service totiž žije dokud na ni nezavoláte stopService(...), což většina řešení nezavolala.
  • V několika řešeních se objevilo použití vlastního úložiště nebo vlastní aktivity sloužící pro nastavení aplikace. Pro uložení nastavení aplikace jsou ideální preferences a k tomu dostupný framework pro tvorbu aktivit, které preference nastavují.
  • Pro opakované události je ideální využít AlarmManager, než si vytvářet vlastní service, ve které běží timer.

Jak jsme hodnotili

Abychom zůstali při hodnocení co nejvíce objektivní, připravili jsme si čtyři kategorie - splnění požadavků a funkčnost, krása kódu, komentáře apod., použitelnost a pochopitelnost aplikace,  rozšiřující nápady. Každý ze tří porotců pak jednotlivým aplikacím v daných kategoriích přidělil 0 až 10 bodů.

Hodnocení nakonec bylo ještě mnohem náročnější, než jsme sami čekali. Rozběhat každou aplikaci ve svém emulátoru si nezřídka vyžádalo opravu několika menších chybek a detailů v kódu. Nakonec se sice všechny body přidělit zdárně podařilo, po sečtení výsledků se ale ukázalo, že aplikace na špici jsou velmi vyrovnané. Nezbývalo proto, než na společné schůzce ze čtyř "finalistů" vybrat jednoho těsného vítěze.

Závěr

Příprava i vyhodnocování soutěže s AntiLapkou pro nás porotce bylo velmi zajímavé a poučné. Příště například musíme přesně specifikovat, jestli chceme aplikace fungující na telefonu nebo emulátoru a jak má být odevzdané a podepsané výsledné apk.

Oceňujeme, že v zaslaných aplikacích se objevilo několik zajímavých nápadů. Příjemně nás překvapila kvalita vítězných aplikací, stačila by jim mnohdy jen trocha ladění a bylo by možné rovnou publikovat do Android Marketu.

Děkujeme všem soutěžícím za účast!
Comments