Azért jó rétegszolgáltatásra helyspecifikus mashupot csinálni, mert minimális erőfeszítéssel nem egyszerűen egész százaléknyi felhasználóhoz juthatsz el, hanem egyből a potenciális közönség nagyjához — becslésem szerint legalább a feléhez: hajszál híján száz felhasználó próbálta ki a Négyeshatost.
Nem hiszek az okostelefonokban, a Foursquare-ben pedig pláne nem. Ezek után talán furcsán hangzik, hogy az őszi szünetben egy okostelefonokra szánt Foursquare-mashup webalkalmazást csináltam. Ellentmondás persze, de játszósprojektnek remek volt, a felhasznált (új és ezért szexi) elemekkel már régóta akartam valamit kezdeni, s az eddigi visszajelzések alapján — as seen on Webisztán: “Egyszerű és nagyszerű fejlesztés. Nem mellesleg: hasznos is.” — talán még értelme is van. A cucc maga végtelenül egyszerű, a kedvenc műfajomból, amiben nem látszik, mennyit szöszöltem vele:
Az eszköz tudja, hol vagy; az eszköz tudja, hol vannak a barátaid; az eszköz tudja, hogy járnak a buszok; te tudod, hova akarsz menni. Egyszerűbb nem is lehetne. Questions?
Buzzwordül ez úgy néz ki, hogy HTML5 Geolocation API felhasználásával a Foursquare-ről egy AppEngine-en futó alkalmazással oAuth-on keresztül begyűjtött POI-információk alapján, a BKV útvonaltervezőjére macgyverkedett social útvonaltervező mobilalkalmazás… jQuery Mobile keretrendszerre írva. Egy szuszra nagyjából ennyi.
A Foursquare része pofonegyszerű: a barátaim minden mozgását közvetítő szolgáltatástól egy egyszerű lekéréssel elérhető a szükséges információ, még ki is választhatom milyen formátumban szeretném az adatokat. Az általuk preferált oAuth bejelentkezés viszont ennél több fejfájást okozott: a leginkább ezzel a Pierre Richard filmrészlettel illusztrálható protokollt csak azután sikerült felfognom, miután apró cetlikkel végigjátszottam a hitelesítési táncot. Szerencsére még azelőtt megértettem, mielőtt előkerültek volna a legófigurák, de már ekkor teljesen nyilvánvalóvá vált előttem, mennyire alkalmatlan ez a protokoll kliensoldalon futó alkalmazásokhoz, ezek után pedig teljesen érthetetlen, a Twitter miért erőltette az oAuth használatát az (ebből a szempontból) sokkal egyszerűbb és megbízhatóbb natúr HTTP autentikációval szemben.
A BKV-útvonaltervezőjéhez az bkv.utvonalterv.hu szolgáltatást használom. Nem, nincs API-ja és nem kerestem meg senkit, hogy integrálhatom-e, simán generálok egy ugyanolyan lekérést, mint amit a saját weboldaluk, a szerver pedig illedelmesen válaszol. Igazán tartok attól, hogy amint kiderül a turpisságom, ki fogják tiltani az alkalmazásom, ezért, hogy ne provokáljam őket tovább feleslegesen, legalább beszólni nem fogok, milyen undorító az útvonaltervező kódja. Plusz nem szeretnék más-szemében-szálkát-is szituációba keveredni, én se vagyok egy született Crockford. Szóval csak megjegyzem, vannak érdekes megoldások.
A fránya cross-site scripting korlátok miatt az oldal az AppEngine-en fut, ezzel ez az első használható cucc, amit a Google szolgáltatásával építettem. Asszem mostanra kezdem kiismerni magam, hogy is mennek itt a dolgok, a pythonom is javul (bár még nem nyelvvizsga-szintű, nevezzük conversation-levelnek). Végül beletört a bicskám abba, hogy megtoldjam a template-ező nyelvét hamlpy támogatással, pedig egészen menő dolog lett volna, ha összejön.
A megjelenítésre a frissen bemutatott jQuery Mobile-t használom, ami az alfa kiadásból fakadó bugjaival és helyenként túlságosan beleokoskodó automatizmusaival együtt is sokkal jobb felhasználói élményt nyújt, mint amit én meg tudtam csinálni. Ez valahol frusztráló azért.
A helymeghatározásra egy geo-location-javascript nevű, nevével mindent eláruló modult használok, ami a különböző mobilrendszerek geolocation implementációi közötti eltérések elfedésére szolgál. Az oda- és visszageokódolást a Google Mapsre bíztam, majd ezzel készül a gyalogostérkép is, ha eljutok odáig.
Szóval erre ment rá a múlt hetem. Megérte? Valószínűleg nem, de élveztem.
