Nedávno jsem někde něco četl o FourSquare a docela mě ta služba zaujala. Ne proto, že bych měl potřebu nějak šířit, kde právě jsem a co dělám (resp. co mě zase sere), protože na to mám Twitter. Jen tak z čiré zvědavosti jsem si tam založil account s tím, že když někam půjdu, udělám check in.
Bohužel od té doby jsem udělal jeden check in a víc nic. Proč? Jednak moc nikam nechodím, druhak když někam jdu, dost často si nevzpomenu dát to na FourSquare. Největším problémem byla ale nedostupnoust klienta pro Windows Mobile. Existuje sice aplikace WinMoSquare, ale ta mi velmi nevyhovuje z několika důvodů.
Požaduje GPS a neumí si zjistit polohu z mobilní sítě. To je velmi nepříjemné, protože málokdy se mám čas a můžu lítat a honit satelity. Navíc to má větší spotřebu baterie.
Dalším problémem je GUI. Než se aplikace spustí a já mohu něco udělat, musím si prohlídnout asi 15 sekund animace a úvodní obrazovky. Proboha a sakra proč? Ovládání té aplikace je přizpůsobeno pro patlání na displeji, samé animace, které zdržují, no hrůza. Takhle by se aplikace dělat neměly. Když už vlastní vzhledy a animace, tak tak, aby to nerušilo a aby to bylo rychlé. Jinak je to cesta do pekel.
WinMoSquare mi tedy nevyhovoval a když jsem nedávno zjišťoval, jak vykopat z ID buňky mobilní sítě GPS pozici, našel jsem článek Learn How to Find GPS Location on Any SmartPhone, and Then Make it Relevant na CodeProjectu.
A tak jsem dnes asi v jednu hodinu odpoledne sednul k Visual Studiu, vykopal pár tříd z výše uvedeného článku a udělal jednoduché GUI. Celkem to zabralo něco málo přes 2 hodiny i s napsáním tohoto článku. Není to vzor elegance, zvláště třídy, které pracují s mobilní sítí a GPS by zasloužily dost refaktoringu (nechal jsem je tak, jak jsou, jen je použil), rozhodně by aplikaci neškodil robustnější návrh atd.
Ale základní funkcionalitu, kterou chci a která mi stačí, to nějak umí. Seznam naposledy navštívených míst (abych mohl dělat check in na oblíbených místech i bez chytání polohy), nalezení polohy dle mobilní buňky a zobrazení zajímavých míst poblíž. Neztrácel jsem čas s implementací nějakých odznaků, starostů, diskusí u míst a já nevím čeho všeho ještě, to si můžu prohlédnout na webu, když na to budu mít čas. Neumí to přidávání nových míst, ale to také nebudu dělat nijak často. Heslo se posílá po síti v plaintextu (je tam jen basic authentication), ukládá se také nešifrované. Je to opravdu jen triviální a velmi rychlá implementace.
Aplikace vyžaduje .NET Compact Framework 3.5 a testoval jsem ji jen na svém zařízení s rozlišením 480x640. Na jiných nevím, jak to bude vypadat a fungovat.
Pokud má někdo o tuto aplikaci (polotovar, nedodělek, open source) zájem, můžete si ji stáhnout následujícím odkazem. Pokud byste měli zájem doimplementovat do ní nějaké další funkce, můžete to zkusit. V nejbližších dnech ji dám na CodePlex, takže o úpravy se budete moci podělit.
Pokud nechcete zdrojové kódy, ale jen aplikaci, zkopírujte si obsah složky Bin\Debug do adresáře na kartě nebo v Program Files a vytvořte si ve Start Menu odkaz.