úterý 27. října 2009

Listopadová Online dílna GUG.CZ: gadget "Where are you?" pro Google Wave

GUG.cz vás zve do Online dílny na listopad, jejímž tématem je Google Wave. Nemáte Wave přístup? Pokud jste zaregistrováni na pražský Google Developer Day, tak nevadí - všichni registrovaní na GDD (pozor, včetně lidí, kteří se nakonec na GDD nedostali, ale registrovaní jsou) získají od Google přístup do Wave sandboxu. Zadání soutěžního úkolu vám tentokrát přináší Martin Hassman, známý publicista, vývojář, evangelista a nadšenec pro webové technologie, zakladatel serveru Zdroják a spoluzakladatel skupiny CZilla. Martin bude k dispozici pro konzultace jednak na našem diskusním fóru, zároveň i během konzultačních hodin přímo na GDD (přesné časy přineseme později). Nejúspěšnější řešitel úlohy získá telefon Android G1 a  přiměřené množství slávy na blogu Google a našich stránkách, vč. nově budované "síni slávy" v naší Vývojářské výkladní skříni. Další tři úspěšní řešitelé odejdou s čestným uznáním a menšími cenami od Google. Nejlepší aplikace bude zveřejněna na GUG.cz, vč. zdrojového kódu.



Termíny: 
vyhlášení soutěže - 26.10.2009
Uzavření příjmu soutěžních prací: 29.11.2009  (zasílejte na wave@gug.cz)
Konzultační hodiny online: 27.10.-28.11.
Konzultační hodiny face to face: 6.11. na Google Developer Day

Úkol: Vytvořte gadget "Where are you?" pro Google Wave, který bude sdružovat uživatele pomocí geolokace

Anotace:

Google Wave dokáže sdružovat uživatele ve svém virtuálním světě, ovšem někdy je dobré setkat se i osobně ve světě reálném. Vaším úkolem bude vytvořit gadget, který zobrazí polohu čtenářů dané vlny. Usnadní jim zjistit, zda se nachází ve stejném městě, čtvrti nebo ulici. Může tak posloužit např. k volbě vhodného místa pro večerní sraz nebo jako prostá seznamka.

Základní požadavky:

Vytvořte gadget, který po přidání do vlny na Google Wave zobrazí mapu a tlačítko "Přidej moji polohu". Po stisknutí tohoto tlačítka je zjištěna geografická poloha uživatele a zobrazena na mapě. Poloha je uložena, takže ji následně vyznačenou na mapě vidí i ostatní čtenáři vlny. Ke zjištění polohy uživatele využijte geolokační API (viz dále).

Geolokační API: jedná se o stejné API, které používají Google maps - můžete si je vyzkoušet na http://maps.google.com stisknutím bílého kulatého tlačítka hned nad oranžovým panáčkem na mapě. Geolokace využívá detekci Wifi přípojných bodů ve vašem okolí, bude proto uspokojivě fungovat jen v případě, že máte na počítači zapnutou Wifi a ve vašem okolí je minimálně jeden Wifi přípojný bod. V případě, že Wifi nemáte, bude vaše poloha odhadnuta pomocí vaší IP adresy, to je ovšem prakticky vždy nepřesné (pokud budete v centru Prahy, může být pomocí Wifi vaše poloha zjištěna až s přesností 150 metrů, při absenci wifi to bude s přesností cca 10 kilometrů - sami vidíte ten rozdíl). K využití této funkce je také nutné mít prohlížeč podporující geolokační API. V tuto chvíli existují dvě možnosti: buď Firefox verze 3.5 a vyšší (nativní podpora geolokace) nebo jakýkoliv prohlížeč s nainstalovaným pluginem Google Gears (podpora geolokace pomocí pluginu).

Lite verze:

Tato verze nabídne pouze základní funkčnost, a sice jednorázové uložení polohy jednoho uživatele. Řeší situaci, kdy uživatel chce ukázat ostatním, kde se právě nachází: vloží nový gadget do vlny a pomocí tlačítka "Přidej moji polohu" zaznamená svou pozici, která se následně zobrazí na mapě i ostatním (mapa se vycentruje okolo uložené polohy). Pro zjištění polohy uživatele je použito geolokační API zmíněné výše.

Full verze:

V tomto případě nabídneme uložení polohy do mapy všem čtenářům vlny. Gadget po přidání do vlny zobrazí prázdnou mapu, pomocí tlačítka "Přidej moji polohu" může každý čtenář vlny uložit do mapy svou vlastní polohu (pro zjištění polohy uživatele je použito geolokační API). Poloha je zobrazena ikonkou na mapě, kterou vidí všichni čtenáři vlny. Další čtenáři mohou svou polohu přidávat do stejné mapy. Pokud některý čtenář uloží svou polohu podruhé, provede tím aktualizaci své polohy (jeho původní souřadnice budou nahrazeny souřadnicemi novými).

U mapy budou dvě tlačítka sloužící k zaměření mapy:
  • "Najdi nejbližšího": aktuálně přihlášeného uživatele zobrazí ve středu mapy a zároveň změní zvětšení, aby byl zobrazen i neblíže umístěný další uživatel
  • "Zobraz všechny": změní zvětšení tak, aby mapa akorát zobrazila všechny uložené uživatele
Poznámky k implementaci:
  • Protože dbáme na soukromí uživatelů, budeme údaje o jejich poloze ukládat pouze do datového úložiště v Google Wave (nebudeme je zasílat na žádný jiný server).
  • Můžete si vybrat, zda budete podporovat geolokační API, které nabízí Google Gears, nebo geolokační API, které nabízí Firefox 3.5. V ideálním případě může aplikace podporovat obojí.
Náměty na zlepšení:
  • Aplikace se může vyrovnat i se stavem, kdy uživatelův prohlížeč geolokaci nepodporuje. V takovém případě mu povolí nastavit polohu ručně. Taková poloha by ovšem měla být označena jako ručně vložená (menší důvěryhodnost).
  • Geolokace někdy dokáže být velmi přesná (až na 150 metrů!), některým uživatelům by takové přesné určení jejich polohy mohlo vadit. Přidejte jim volbu znepřesnění jejich polohy např. na okruh několika málo kilometrů.
Odkazy:

Pro odevzdání musí být dodány zazipované zdrojové kódy a gadget musí běžet na veřejné adrese.

Hodnotí se kvalita kódu, funkčnost výsledné aplikace, nápaditost a user experience.

3 komentáře:

Aichi řekl(a)...

Takže pokud jsem nebyl přihlášen, a nemám na Wave přístup, tak mam smůlu?

Martin Hassman řekl(a)...

Aichi: Pořád tu je možnost, že od někoho seženeš pozvánku. BTW Pokud by návštěvníci GDD dostali možnost rozesílat další pozvánky pro svém kamarády (to vůbec netuším, ale ta možnost tu je, protože ti první pozvaní tuhle možnost měli), tak to rozhodně nebude problém. Jinak se zkus poptat v okolí.

Pitrsonek řekl(a)...

Jestli bude mít někdo navíc pozvánku do WAVE. Prosím o zaslání, rád bych využil pro účast v soutěži.

Děkuji s pozdravem
petr.vytlacil@gmail.com