310 likes | 488 Views
Euskal Herria patrikan. 1. Zer da Ihesi? 2. Mugikorretarako aplikazioaren ezaugarriak 3. Garapenean erabilitako tresna nagusiak 4. Garapenean erabilitako teknika aipagarriak 5. Eskertza eta galderak. 2 Mugikorretarako aplikazioaren ezaugarriak (I).
E N D
1. Zer da Ihesi? • 2. Mugikorretarako aplikazioaren ezaugarriak • 3. Garapenean erabilitako tresna nagusiak • 4. Garapenean erabilitako teknika aipagarriak • 5. Eskertza eta galderak
2 Mugikorretarako aplikazioaren ezaugarriak (I) • Ihesi Euskal Herriko 7 lurraldeak kontutan hartzen dituen lehen turismo aplikazioa da • Argiaren Euskal Herrian Ihesi (ihesi.com) webgunearen osagarri izateko sortu dugu mugikorretarako bertsio hau • Aplikazio plataforma-anitza da: Android eta iPhone gailuetan erabiltzeko aukera egongo da • Garapenean kontutan izan ditugu gailu mugikorrek eskaintzen dituzten aukerak: geokokapena, argazkiak ateratzea... • Webgunean gomendioak herrien, zonaldeen eta lurraldeen arabera antolatuta daude baina mugikorretara egokitzean erabiltzailea jarri dugu erdigunean
2 Mugikorretarako aplikazioaren ezaugarriak (II) • Abiaraztean aplikazioa uneko posizioa eskuratzen saiatzen da mugikorraren geokokapen zerbitzua erabiliz
2 Mugikorretarako aplikazioaren ezaugarriak (III) • Kokapena ezin bada eskuratu erabiltzaileak herrien zerrendatik erreferentzia bezala erabiliko den herria hauta dezake • Erabiltzaileak kokapena edozein unetan alda dezake
2 Mugikorretarako aplikazioaren ezaugarriak (IV) • Kokapena zehaztu ondoren posizio horren inguruan gainerako erabiltzaileek gomendaturiko lekuen zerrenda ikus daiteke • Gomendioak distantziaren arabera edo erabiltzaileek emandako boto kopuruaren arabera ordenatu daitezke • Gomendioak kategoriaka antolatuta daude eta posible da kategoria jakin bateko gomendioak bakarrik bistaratzea
2 Mugikorretarako aplikazioaren ezaugarriak (V) • Gomendioen zerrendako elementu bat hautatzean pantailan gomendio horren xehetasunak agertzen dira • Erregistratutako erabiltzaileek gomendioei buruzko iritzia eman dezakete positibo edo negatibo bozkatuz • Xehetasunak ikusi ondoren gomendioa interesgarria irudituz gero, bertaraino nola irits daitekeen ikus dezake erabiltzaileak
2 Mugikorretarako aplikazioaren ezaugarriak (VI) • Gomendiora iristeko erabili nahi dugun moduaren arabera (oinez, garraio publikoan edo autoz) hiru bide desberdin ikusteko aukera ematen du aplikazioak
2 Mugikorretarako aplikazioaren ezaugarriak (VII) • Momentuko edo hautatutako herriari buruzko informazioa ikusteko aukera ematen du aplikazioak
2 Mugikorretarako aplikazioaren ezaugarriak (VIII) • Erregistratutako erabiltzaileek gainerako erabiltzaileei leku berriak gomendatzeko aukera daukate • Gomendio berriari argazkia gehitzeko bi aukera daude: mugikorraren argazki kamerarekin argazki berri bat ateratzea edo mugikorraren galeriatik argazki bat hautatzea. • Gomendio berriaren posizioa horretarako prestaturiko mapa bat erabiliz zehaztu dezake erabiltzaileak.
2 Mugikorretarako aplikazioaren ezaugarriak (IX) • Gailu mugikorretan interneterako konexioa izatea gero eta ohikoagoa den arren oraindik erabiltzaile batzuk interneterako konexio finkorik ez dute eta wifi-a dagoen lekuetan bakarrik konektatu daitezke sarera edo konexio mugatua dute • Konexioa duten erabiltzaileen kasuan ere izan daitezke gora-beherak • Guzti hori kontutan izanda aplikazioak konexiorik gabe ahalik eta funtzionalitate handiena izan dezan saiatu gara
2 Mugikorretarako aplikazioaren ezaugarriak (X) • Ihesi GNU GPL v3 lizentzia duen software librea da eta erabiltzaileek sortutako edukiek Creative Commons BY-SA lizentzia dute • Erabiltzaileen askatasunak babesteaz gain software libreak pribatutasuna babesten laguntzen du • Erabiltzailearen geokokapena erabiltzen duten aplikazioen kasuan bereziki garrantzitsua iruditzen zaigu aplikazioaren kodea aztertzeko aukera izatea, erabilera maltzurrik ez dagoela ziurtatzeko
3. Garapenean erabilitako tresna nagusiak • 3.1 Software pila (stack) • 3.2 Apache Cordova / Phonegap • 3.3 SQLite • 3.4 jQuery eta jQuery mobile • 3.5 Google Maps
3.2 Apache Cordova / Phonegap (I) • HTML, CSS eta Javascript erabiliz aplikazio plataforma-anitzak sortzeko aukera ematen du, plataforma bakoitzari dagokion programazio lengoaian programatu beharra saihestuz. • Gailuaren software eta hardwarearekin lan egiteko APIak eskaintzen ditu (azelerometroa, kamera, soinua, iparrorratza, kontaktuak, gertaera natiboak, geokokapena, fitxategi-sistema, datu-base lokalak...)
3.2 Apache Cordova / Phonegap (II) • Hainbat sistema eragiletarako aplikazioak sortzeko aukera ematen du: iOS (iPhone eta iPad), Android, webOS, Windows Phone, Blackberry 5/6/7, Symbian eta bada • Apache 2.0 lizentzia duen software librea da • http://cordova.apache.org/ • http://phonegap.com/
3.2 Apache Cordova / Phonegap (III) • Gomendioa: www karpeta bakarra erabili • Apache Cordova/Phonegap-en script-ek plataforma bakoitzeko www karpeta bat sortzen dute: Android: Android/assets/www IOS: ios/www • Honek kodea bikoiztea (edo hiruzkoiztea...) dakar. • Irtenbidea: Plataforma guztientzat www karpeta bakarra erabiltzea • Ondoren esteka sinbolikoak sortu behar dira plataforma bakoitzaren www karpetatik www karpeta orokorrera.
3.3 SQLite • Datu-base erlazionalen kudeaketarako sistema arin bat da • Ahalmen mugatuko gailuetarako bereziki egokia da • Kodea domeinu publikoan dago • http://www.sqlite.org/
3.4 jQuery eta jQuery mobile • jQuery Javascriptekin lan egitea errazteko sortutako liburutegi ezagun bat da. • jQuery mobile berriz smarthphone eta tabletarako egokitutako web aplikazioak sortzea errazteko jQuery-ren gainean eraikitako liburutegi bat da • MIT lizentzia dute biek eta software librea dira • http://jquery.com/ • http://jquerymobile.com/
3.5 Google Maps • Google-ren mapa-zerbitzu ezaguna • Hainbat API interesgarri eskaintzen ditu. • Javascript-eko APIaren dokumentazioa: https://developers.google.com/maps/documentation/javascript/
4. Garapenean erabilitako teknika aipagarriak • 4.1 Geokokapena, geokodeketa eta alderantzizko geokodeketa • 4.2 Google maps-en gainean Euskal Herriko mapa marraztea APIaren 3. bertsioarekin • 4.3 Distantzien gutxi gora beherako kalkulua: Taxilariaren geometria edo Manhattan distantzia • 4.4 Distantzien kalkulu zehatza
4.1 Geokokapena, geokodeketa eta alderantzizko geokodeketa (I) • Geokokapena objektu baten kokapen geografikoa eskuratzeko prozesua da. Gaur egungo gailu mugikorrek geokokapena eskuratzeko hainbat modu dituzte: telefoniako eta wifiko antenak erabiliz, GPS bidez... • Geokodeketa datu geografiko (kalearen izena, posta-kodea...) batetik abiatuta dagokion koordenatu geografikoak eskuratzeko prozesua da. • Alderantzizko geokodeketa berriz puntu baten koordenatuetatik abiatuta puntu horri dagokion helbidea lortzeko prozesua da.
4.1 Geokokapena, geokodeketa eta alderantzizko geokodeketa (II) • Erabiltzailea zein herritan dagoen jakiteko Google Maps-ek eskaintzen duen alderantzizko geokodeketa API-a erabili dugu • Kasu batzuetan Google maps-en alderantzizko geokodeketa zerbitzuak itzulitako herrien izenak ez datoz bat Ihesi aplikazioaren datu-basean dauden herrien euskarazko izenekin • Arazo honi aurre egiteko itzulpen taula bat sortu genuen
4.2 Google maps-en gainean Euskal Herriko mapa marraztea APIaren 3. bertsioarekin (I) • Ahotsak.com eta Codesyntax-ek Google Maps-en gainean Euskal Herriaren mugak (eta Euskal Herriko lurraldeenak) marraztea lortu zuten APIaren 2. bertsioa erabiliz eta Creative Commons BY-SA lizentziapean erabilgarri jarri zuten • Google Maps-en APIaren 2. bertsioa zaharkitutzat zuen Googlek 2010ean (deprecated) eta 2013ko maiatzaren 19tik aurrera ez zuela funtzionatuko jakinarazi zuten • Hori kontutan izanda kodea APIaren 3. bertsioarekin funtzionatzeko egokitzea erabaki genuen
4.2 Google maps-en gainean Euskal Herriko mapa marraztea APIaren 3. bertsioarekin (II) • Azkenean epea 2013ko azaroaren 19ra luzatu dute. Data horretatik aurrera APIaren 2. bertsioarekin funtziona dezan egokitutako 3. bertsioa zerbitzatuko zaie API zaharra erabiltzea eskatzen duten aplikazioei • Aplikazioa sinpleenek funtzionatzen jarraituko dutela espero duten arren eguneratzea gomendatzen dute
4.3 Distantzien gutxi gora beherako kalkulua: Taxilariaren geometria edo Manhattan distantzia (I) • SQLite-n ezin dira funtzio trigonometrikoak erabili SQL kontsultetan • Muga hori dela eta puntu batetik gertuen dauden gomendioak zein diren kalkulatzeko garaian taxilariaren geometria edo Manhattan distantzia deituriko gutxi gora-beherako metodo bat erabili behar izan dugu • Abantaila nagusia azkartasuna da, eragiketa oso sinpleak egiten baititu: batuketak, kenketak... • Desabantaila zehaztasun eza da
4.3 Distantzien gutxi gora beherako kalkulua: Taxilariaren geometria edo Manhattan distantzia (II) • Gomendioak Manhattan distantzien arabera ordenatzeko ondorengo baldintza erabiltzen dugu SQL kontsultan: ‘... ORDER BY abs(latitudea - (?)) + abs( longitudea - (?))’ non latitudea eta longitudea datu-baseko gomendioen koordenatuak diren eta ?-ak gure puntuarenak.
4.3 Distantzien gutxi gora beherako kalkulua: Taxilariaren geometria edo Manhattan distantzia (III) • Kalkulatutako distantzien errorea X eta Y ardatzetatik gertu dauden puntuetan nabarmentzen da bereziki. • Desabantaila honi aurre egiteko behar baino gomendio gehiago hautatzen ditugu, adibidez, gertuen dauden 20 gomendio bistaratu behar baditugu taxilariaren geometria erabiliz 30 gomendio eskuratzen ditugu eta ondoren zehazki kalkulatzen dugu gomendio horietara dagoen distantzia eta horren arabera gertuen dauden 20ak hautatzen ditugu.
4.3 Distantzien gutxi gora beherako kalkulua: Taxilariaren geometria edo Manhattan distantzia (IV) • Honi esker datu-baseko gomendio guztietara dagoen distantzia zehatza metodo konplexuagoak erabiliz kalkulatu beharra saihesten dugu • Honek garrantzia du datu-baseko gomendio kopurua handitu ahala kalkulurako gaitasun mugatua duten gailu mugikorretan.
4.4 Distantzien kalkulu zehatza: Haversine formula • (lat1, lng1) eta (lat2, lng2) puntuen arteko distantzia zehatza kalkulatzeko Haversine formula erabili dugu: • Distantziak kalkulatzeko metodo honen abantaila zehaztasuna da. • Desabantaila berriz kalkuluaren konplexutasuna da.
5. Eskertza eta galderak • Ezin amaitu eskerrak eman gabe, • Ihesi.com webguneko komunitateari • Erabili ditugun software libreko tresnen garapenean parte hartu duten guztiei • Aurkezpen honetara etorri zaretenoi Zuen parte hartzerik gabe Ihesi ez litzateke existituko. Mila esker! Galderarik?