Facul ad de In o má ica
Depa amen o de Sis emas In o má icos y Compu ación
T abajo de n de g ado del G ado en Ingenie ía In o má ica
Los 2Found
: Encuen a us obje os pe didos
usando open da a y edes de colabo ación
Au o es
:
Ca olina Ri e o Fe nández
Da id Zamo a Rey
Di ec o
:
Jesús Co eas Fe nández
8 de junio de 2018
Ag adecimien os
Quie o ag adece a mi amilia y a mis amigos po el apoyo mos ado en odo momen o
a lo la go del desa ollo del p oyec o, ya que sin ellos es o no hab ía sido posible.
También a nues o di ec o del p oyec o el D . Jesús Co eas Fe nández, po la conanza
deposi ada en noso os pa a lle a a cabo el p oyec o y po sus enseñanzas y dedicación.
Da id Zamo a Rey.
En p ime luga , ag adece a mi compañe o Da id po el ma a illoso abajo, es ue zo y
dedicación que ha mos ado du an e es e año, po apoya me y ayuda me en odo momen o.
G acias a mi g an amiga Lau a, po es a en las buenas y en las malas a lo la go de oda
la ca e a, animándome y le an ándome siemp e que lo he necesi ado. Sé que me lle o una
compañe a de ida. G acias a Pablo, po no cansa se de mí, de mis idas y enidas, po
c ee en mí, po que e me al y como soy. G acias a mis pad es, po p opo ciona me la
educación y la conanza necesa ias pa a a on a la ca e a y, sob e odo, pa a la ida.
G acias a nues o di ec o , po hace nos más lle ade o es e abajo de n de g ado, po
c ee en es a p opues a que, al nal, ha salido adelan e. G acias a odos los que han es ado
en es os du os años, an o amigos y compañe os como p o eso es. Y, pa a e mina , g acias
a la luz de mi ida, ejemplo de amo , pe dón y supe ación. Mi he mano, Césa , el que
siemp e ha es ado a mi lado, dándome odo sin espe a nada. Te quie o.
Ca olina Ri e o Fe nández.
i
Resumen
Ac ualmen e las en idades públicas es án haciendo conside ables es ue zos po hace
accesible g an can idad de in o mación que manejan in e namen e, es o o ece opo unida-
des p o echosas en el uso de es e ipo de da os comúnmen e denominados como
open da a
o da os abie os. Es a in o mación supone una pieza undamen al en la anspa encia de
una en idad y consis e en da os que, como su nomb e indica, ienen una na u aleza pública
y abie a, y que son o ecidos po en idades an o públicas como p i adas, pudiendo se
usados pa a cualquie n po cualquie pe sona que así lo desee. La publicación de da os
es á en auge ac ualmen e y cada ez son más las ins i uciones que se suman a es e ipo
de acciones, ya que gene an un benecio mu uo an o pa a las pe sonas que ienen a su
disposición más in o mación, como pa a las en idades que los p opo cionan.
Es e p oyec o iene como obje i o es udia la inuencia que eje cen es e ipo de da os
abie os y comp oba los benecios que o ecen en aplicaciones de di e sos ámbi os. Como
ejemplo de los esul ados de la in es igación inicial sob e da os abie os, se ha desa ollado
una aplicación llamada
Los 2Found
que c ea una ed de colabo ación en e usua ios pa a
ecupe a obje os pe didos, haciendo pa a ello uso de in o mación de
open da a
disponible
g acias a dos o ganizaciones:
SNCF
y
Google
. Nues a in ención con el desa ollo de es a
aplicación es demos a el po encial de es e ipo de inicia i as e incen i a el uso de las
mismas en aplicaciones u u as.
Abs ac
Cu en ly public en i ies a e making conside able eo s o make accessible a la ge
amoun o in o ma ion ha hey handle in e nally, his oe s p o able oppo uni ies in
he use o his ype o da a commonly denomina ed as
open da a
o open da a. This
in o ma ion is a undamen al piece in he anspa ency o an en i y and consis s o da a
ha , as i s name indica es, ha e a public and open na u e, and a e oe ed by bo h public
and p i a e en i ies, and can be used o any pu pose by any pe son so wish The publica ion
o da a is cu en ly booming and mo e and mo e ins i u ions a e joining his ype o ac ion,
as hey gene a e a mu ual bene bo h o he people who ha e mo e in o ma ion a hei
disposal, and o he en i ies ha p o ide hem.
The objec i e o his p ojec is o s udy he inuence o his ype o open da a and
o e i y he bene s i oe s in applica ions om a ious elds. As an example o he
esul s o he ini ial esea ch on open da a, an applica ion called ex i Los 2Found has
been de eloped ha c ea es a collabo a ion ne wo k be ween use s o eco e los objec s,
using in o ma ion om ex i open da a a ailable hanks o wo o ganiza ions:
SNCF
and
Google
. Ou in en ion wi h he de elopmen o his applica ion is o demons a e he
po en ial o his ype o ini ia i es and encou age he use o hem in u u e applica ions.
Índice gene al
1. In oducción 1
1.1. Mo i ación.................................... 1
1.2. Obje i os y o ganización del abajo . . . . . . . . . . . . . . . . . . . . . 2
1.3. Es uc u a de la memo ia . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. In oduc ion 5
2.1. Mo i a ion.................................... 5
2.2. Objec i es and wo k o ganiza ion . . . . . . . . . . . . . . . . . . . . . . . 6
2.3. S uc u e o he documen . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. Redes de colabo ación 9
3.1. Fac o es ele an es de una ed de colabo ación . . . . . . . . . . . . . . . . 9
3.2. Ejemplos de edes de colabo ación . . . . . . . . . . . . . . . . . . . . . . . 10
4.
Open Da a
11
4.1. In oducción................................... 11
4.2. Obje i os y p incipios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3. Fo ma os..................................... 12
4.4. Fo mas de publicación de
open da a
...................... 14
4.5.
Open da a
en el gobie no local:
Sma Ci ies
................. 14
4.6. Aplicaciones con da os abie os . . . . . . . . . . . . . . . . . . . . . . . . 16
4.7. Uso de da os abie os en nues a aplicación . . . . . . . . . . . . . . . . . . 17
5. Análisis de aplicaciones simila es 19
5.1. In oducción................................... 19
5.2. Es udio de o as he amien as simila es . . . . . . . . . . . . . . . . . . . . 19
5.2.1.
MissingX
................................ 19
5.2.2. In e az ................................. 19
ii
2 Capí ulo 1. In oducción
pe dido o encon ado algún obje o con el n de de ol é selo a su legí imo dueño, además
hace uso an o de écnicas de edes de colabo ación como de
open da a
, si iéndonos de
ejemplo empí ico del es udio ealizado pa a demos a el benecio que se ob iene con el
uso de es os concep os.
La aplicación es á disponible en
Google Play S o e
y se puede desca ga bien buscándola
po su nomb e,
Los 2Found
o accediendo a la página co espondien e a su cha en el
siguien e enlace
h ps://play.google.com/s o e/apps/de ails?id=es.los 2 ound
.
Pa a p oba la aplicación simplemen e es necesa io egis a se con un nue o usua io
y ya se pod án c ea anuncios de pé dida o hallazgo de obje os, ealiza búsquedas de
anuncios en la aplicación, o consul a el
open da a
disponible sob e obje os pe didos.
Todas las posibilidades que o ece es a aplicación se explica án de alladamen e en los
p óximos capí ulos de es a memo ia.
1.2. Obje i os y o ganización del abajo
El obje i o gene al del p oyec o consis i á en mos a el po encial y las en ajas que se
pueden ob ene al hace uso de una ed de colabo ación en e usua ios y de da os abie os
pa a la esolución de p oblemas.
En es e caso implica la in es igación sob e es os concep os y el pos e io desa ollo de
una aplicación mó il, cuya nalidad se ha explicado b e emen e en el apa ado an e io .
O o de los obje i os buscados es demos a la mayo capacidad y po encial de las
aplicaciones que hacen uso de da os abie os en e a las que no u ilizan es e ipo de
inicia i as.
A la ho a de empeza con el desa ollo de la aplicación decidimos hace lo de mane a
que ue a lo más sencilla e in ui i a posible, pa a a ae a g an can idad de usua ios.
En cuan o al comienzo del desa ollo del p oyec o u imos una p ime a eunión con
nues o di ec o , en la que se comen a on los p ime os equisi os, c i e ios y uncionali-
dades que se iban a lle a a cabo en el p oyec o, además de es ablece el desa ollo de
una aplicación
And oid
as ealiza una p ime a in es igación inicial sob e los concep os
explicados an e io men e.
De es a mane a se p e endía que el esul ado del p oyec o no ue a me amen e una
aplicación, sino que se pusie a en con ex o en un ámbi o en el cual se obse a an las
posibilidades que exis en al hace uso de es os concep os.
Pa a empeza nues o abajo en el p oyec o, en p ime luga se ha á un minucioso
es udio sob e los concep os de edes de colabo ación y open da a.
1.2. Obje i os y o ganización del abajo 3
En segundo luga , se ealiza á un análisis de o as aplicaciones simila es comp obando
así qué ac o es debemos ene en cuen a a la ho a de desa olla la aplicación. De es a
mane a que emos asegu a nos de cub i una necesidad que no es e ya cubie a po o a
aplicación exis en e.
T as ealiza el análisis en el capí ulo 5, Análisis de aplicaciones simila es, se pudo
comp oba que ninguna aplicación de obje os pe didos ap o echa in o mación de open
da a, po lo an o nues a aplicación se á única en es e sen ido y nos b inda á un pun o de
o iginalidad cla e a la ho a de dis ingui nos de o as aplicaciones semejan es.
Pa a ello se ha á una búsqueda de los ca álogos de da os abie os sob e obje os pe didos
disponibles, con el obje i o de selecciona el que más se adecúe a nues as necesidades y
usa la in o mación que nos o ezca en nues a aplicación.
T as el es udio sob e los concep os y el análisis de la compe encia se elabo a á un
p ime p o o ipo de la aplicación, en el cual se diseña an las in e aces p incipales con la
he amien a
Jus In Mind
, eniendo en cuen a la guía de diseño de
Ma e ial Design
de
Google
con in ención de que la aplicación sea a ac i a pa a el usua io.
También se plan ea án dis in as opciones que pod á ene el usua io en la aplicación,
como ealiza búsquedas de o os anuncios, con ac a y comunica se con o os usua ios,
especica el luga del anuncio de a ias mane as dis in as, e in eg a open da a en nues a
aplicación pa a po encia la de la mayo mane a posible.
Una ez se e mine el diseño de las in e aces de las pan allas impo an es y se engan
cla as las opciones del usua io en la aplicación, se pasa á a ealiza los p ime os diag amas
en idad elación de la base de da os, así como sus co espondien es diag amas elacionales.
Una ez consigamos una e sión nal de la es uc u a de la base de da os de la aplica-
ción, se olca á en un che o
SQL
.
T as es o se empeza á a desa olla la aplicación u ilizando
And oid
y ayudándonos de
la documen ación ocial de su página [1] y del en o no
And oid S udio
.
Después se diseña án las p ime as pan allas uncionales de la aplicación en
XML
, o-
mando como e e encia los diseños elabo ados p e iamen e en el p o o ipo de la aplicación,
ambién se comenza án a implemen a algunas de las clases p incipales en
Ja a
.
Una ez se hayan conseguido a ias pan allas de la aplicación, se abaja á en las
conexiones con la base de da os median e
PHP
usando
JSON
como o ma de comunicación,
además de implemen a la lógica in e na de la aplicación y de los che os del se ido .
Po úl imo, una ez desa ollado el p o o ipo de la aplicación se in es iga á como u i-
liza la
API
que nos o ecía el open da a escogido an e io men e pa a ealiza pe iciones
ob eniendo los da os necesa ios, así como o as
API's
que nos puedan hace al a en nues a
aplicación.
4 Capí ulo 1. In oducción
1.3. Es uc u a de la memo ia
La memo ia es á di idida en capí ulos cla amen e di e enciados, en los cuales se da
de alle del plan eamien o y el desa ollo del p oceso seguido en la elabo ación del p oyec o.
Capí ulo 1 - In oducción: Se desc ibe la mo i ación que nos lle ó a la ealización del
p oyec o, los obje i os a alcanza y la es uc u a de es a memo ia.
Capí ulo 2 - In oduc ion: Es la aducción al inglés del p ime capí ulo.
Capí ulo 3 - Redes de colabo ación: Se de alla el p oceso lle ado a cabo en la in es i-
gación de los concep os undamen ales que se han usado en el p oyec o, así como de
los ejemplos p ác icos de inicia i as ya exis en es, además de la in o mación esul an e
de la in es igación ealizada.
Capí ulo 4 - Open Da a: En es e capí ulo se explica en p o undidad el es udio
ealizado sob e es e concep o en la in es igación p e ia al desa ollo del p o o ipo
Los 2Found
.
Capí ulo 5 - Análisis de aplicaciones simila es: Consis e en un análisis de las aplica-
ciones que se encuen an ac ualmen e en el me cado y que ienen una uncionalidad
simila a la nues a.
Capí ulo 6 - Open Da a
SNCF
y
Google APIs
: En él se explica de alladamen e la
in es igación de las dis in as
APIs
que se han usado en su implicación en el p oyec o.
Capí ulo 7 - P ime p o o ipo: Se cen a en la ealización de los diseños de las p ime as
in e aces de la aplicación, la denición de los ipos de luga es y anuncios y el diseño
de la es uc u a de la base de da os.
Capí ulo 8 - Diseño e implemen ación de
Los 2Found
: T a a sob e el abajo ealizado
du an e el diseño nal y la implemen ación de la aplicación.
Capí ulo 9 - Conclusiones y abajo u u o: Se exponen las p incipales conclusiones
del p oyec o así como el abajo u u o posible.
Capí ulo 10 - Conclusions and u u e wo k: Es la aducción al inglés del no eno
capí ulo.
Capí ulo 11 - Apo aciones indi iduales: Se explican las con ibuciones pe sonales de
cada in eg an e al p oyec o.
Capí ulo 2
In oduc ion
2.1. Mo i a ion
Pee collabo a ion is a use ul and ingenious mechanism o sol ing p oblems o all kinds.
The e ha e always been many o hese ini ia i es based on collabo a i e wo k among
use s, since he as majo i y o p oblems can be esol ed in a as e and easie way i his
is done oge he wi h o he indi iduals, being he mos ecien way o deal wi h hem.
his kind o dicul ies.
These mechanisms a e no new and ha e been a ound o a long ime, being used in
opics no based on echnology such as scien ic p oduc ion o he collec ion o epidemiolo-
gical in o ma ion.
I is o all his ha we conside i necessa y o suppo ini ia i es ha encou age he
c ea ion and / o e olu ion o collabo a ion ne wo ks among use s, in o de o p omo e
his ype o wo k mechanisms.
Wi hin his ype o ini ia i es, i is in e es ing o obse e he possibili ies o access o
in o ma ion h ough wha is now known as open da a u
open da a
, public in o ma ion ha
ins i u ions disclose so ha his be accessible o any in e es ed pe son o o ganiza ion.
These da a anspa ency exe cises a e cu en ly in ashion, and mo e and mo e o ga-
niza ions a e ca ying ou his ype o ac ion, dissemina ing in o ma ion and making i
a ailable o any use who wishes o consul i .
This p ojec a ises om he a emp o demons a e he po en ial and he exis ing
possibili ies o bo h collabo a ion ne wo ks and
open da a
, o inc ease eciency in sol ing
p oblems o die en kinds.
Due o his, in he s place an in es iga ion is going o be ca ied ou , bo h o he
s a e o he a and on he p ac ical examples o al eady exis ing ini ia i es, o la e de elop
an applica ion as he nal esul o he p ojec .
Los 2Found
is an applica ion
And oid
ha deals wi h he loss and e u n o los objec s,
and i s main objec i e is o pu in con ac use s who ha e los o ound an objec in o de o
e u n i o i s igh ul owne In addi ion, i makes use o collabo a ion ne wo k echniques
as well as
open da a
, using an empi ical example o he s udy ca ied ou o demons a e
5
6 Capí ulo 2. In oduc ion
he bene ob ained wi h he use o hese concep s.
The applica ion is a ailable in he
Google Play S o e
and can be downloaded by sea -
ching o i by i s name, ex i Los 2Found o by accessing he page co esponding
o i s le in he ollowing link
h ps://play.google.com/s o e/apps/de ails?id=en.
los 2 ound
.
To es he applica ion you simply need o egis e wi h a new use and you can c ea e
ads o loss o nding o objec s, sea ch o ads in he applica ion, o consul he
open da a
a ailable abou los objec s.
All he possibili ies oe ed by his applica ion will be explained in de ail in he nex
chap e s o his epo .
2.2. Objec i es and wo k o ganiza ion
The gene al objec i e o he p ojec will be o show he po en ial and he ad an ages
ha can be ob ained by making use o a collabo a ion ne wo k be ween use s and open
da a o sol e p oblems.
In his case, i in ol es esea ch on hese concep s and he subsequen de elopmen o
a mobile applica ion, whose pu pose has been b iey explained in he p e ious sec ion.
Ano he o he objec i es sough is o demons a e he g ea e capaci y and po en ial
o applica ions ha make use o open da a compa ed o hose ha do no use his ype o
ini ia i e.
When we s a ed wi h he de elopmen o he applica ion, we decided o do i in a way
ha was as simple and in ui i e as possible, o a ac a la ge numbe o use s.
Rega ding he beginning o he de elopmen o he p ojec , we had a s mee ing wi h
ou di ec o , in which he s equi emen s, c i e ia and unc ionali ies ha we e going
o be ca ied ou in he p ojec we e discussed, as well as es ablishing he de elopmen
o an applica ion
And oid
a e making an ini ial ini ial in es iga ion abou he concep s
explained abo e.
In his way i was in ended ha he esul o he p ojec was no me ely an applica ion,
bu pu in o con ex in an en i onmen in which he possibili ies ha exis when making
use o hese concep s we e obse ed.
To s a ou wo k on he p ojec , we will s make a ho ough s udy abou he con-
cep s o collabo a ion ne wo ks and open da a.
Secondly, a s udy o o he simila applica ions will be ca ied ou , hus e i ying wha
ac o s we mus ake in o accoun when de eloping he applica ion. In his way we wan
2.2. Objec i es and wo k o ganiza ion 7
o make su e we co e a need ha is no al eady co e ed by ano he exis ing applica ion.
A e ca ying ou he s udy o o he simila ools in he chap e 5, Análisis de aplica-
ciones simila es, i was possible o e i y ha no applica ion o los objec s akes ad an age
o open da a, he e o e ou applica ion will be unique in his sense and will gi e us a poin
o key o iginali y when i comes o dis inguishing us om o he simila applica ions.
To do so, a sea ch o he open da a ca alogs on los objec s a ailable will be made, wi h
he aim o selec ing he one ha bes sui s ou needs and using he in o ma ion ha we
oe in ou applica ion.
A e he s udy on he concep s and he analysis o he compe i ion a s p o o ype
o he applica ion will be elabo a ed, in which he main in e aces will be designed wi h
he ool
Jus In Mind
, aking in o accoun he design guide o
Ma e ial Design
de
Google
wi h he in en ion o making he applica ion a ac i e o he use .
I will also conside die en op ions ha he use may ha e in he applica ion, such
as sea ching o o he ads, con ac ing and communica ing wi h o he use s, speci ying
he place o he ad e isemen in se e al die en ways, and in eg a ing open da a in ou
applica ion o enhance i om he g ea e possible way
Once he design o he in e aces o he impo an sc eens is nished and he use 's
op ions a e clea in he applica ion, he s diag ams o he da abase will be made, as
well as hei co esponding ela ional diag ams.
Once we ge a nal e sion o he da abase s uc u e o he applica ion, i will be
dumped in o a le
SQL
.
A e his, he applica ion will be de eloped using
And oid
and using he ocial docu-
men a ion o he And oid [1] page and he
And oid S udio
en i onmen .
A e he s unc ional sc eens o he applica ion will be designed in
XML
, aking as
e e ence he designs p e iously elabo a ed in he p o o ype o he applica ion, some o he
main classes in
Ja a
will also be implemen ed.
Once se e al sc eens o he applica ion ha e been achie ed, he connec ions o he
da abase will be wo ked h ough
PHP
using
JSON
as a o m o communica ion, in addi ion
o implemen ing he in e nal logic o he applica ion and he se e les.
Finally, once he p o o ype o he applica ion has been de eloped, i will be in es iga ed
how o use he
API
oe ed by he open da a chosen p e iously o make eques s ob aining
he necessa y da a, as well as o he
API's
ha we may need in ou applica ion.
8 Capí ulo 2. In oduc ion
2.3. S uc u e o he documen
The epo is di ided in o clea ly die en ia ed chap e s, which de ail he app oach and
he de elopmen o he p ocess ollowed in he de elopmen o he p ojec .
Chap e 1 - In oduc ion: The mo i a ion ha led us o he ealiza ion o he p ojec ,
he objec i es o be achie ed and he s uc u e o his memo y a e desc ibed.
Chap e 2 - In oduc ion: I is he English ansla ion o he s chap e .
Chap e 3 - Collabo a ion ne wo ks: I de ails he p ocess ca ied ou in he in es i-
ga ion o he undamen al concep s ha ha e been used in he p ojec , as well as he
p ac ical examples o exis ing ini ia i es, as well as he in o ma ion esul ing om
he esea ch ca ied ou .
Chap e 4 - Open Da a: This chap e explains in dep h he s udy ca ied ou on his
concep in he esea ch p io o he de elopmen o he p o o ype
Los 2Found
.
Chap e 5 - Analysis o simila applica ions: I consis s o a s udy o he applica ions
ha a e cu en ly in he ma ke and ha ha e a simila unc ionali y o ou s.
Chap e 6 -
SNCF
and
Google APIs
: I explains in de ail he esea ch o he die en
APIs
ha ha e been used in hei in ol emen in he p ojec .
Chap e 7 - Fi s p o o ype: Focuses on he ealiza ion o he designs o he s
in e aces o he applica ion, he deni ion o he ypes o places and announcemen s
and he design o he s uc u e o he da abase.
Chap e 8 - Design and implemen a ion o
Los 2Found
: I deals wi h he wo k done
du ing he nal design and implemen a ion o he applica ion.
Chap e 9 - Conclusions and u u e wo k: The main conclusions o he p ojec a e
p esen ed as well as he possible u u e wo k.
Chap e 10 - Conclusions and u u e wo k: I is he English ansla ion o he nin h
chap e .
Chap e 11 - Indi idual con ibu ions: The pe sonal con ibu ions o each membe
o he p ojec a e explained.
Capí ulo 3
Redes de colabo ación
En es e capí ulo se explica á, as habe sido in es igado pa a la ealización de es e
p oyec o y de es e capí ulo en conc e o, en qué consis e el concep o de edes de colabo ación
y cuáles son sus ipos y ac o es ele an es, así como ejemplos p ác icos.
Según la RAE (Real Academia Española) una ed es un
conjun o de elemen os o gani-
zados pa a un de e minado n
, es a denición se ajus a pe ec amen e al concep o de ed
de colabo ación, ya que consis e en una o más asociaciones de in e esados cuyo obje i o
es log a esul ados aco dados conjun amen e median e la pa icipación y la colabo ación
en e ellos.
En la g an mayo ía de los casos, las colabo aciones de los in eg an es de es e ipo de
edes es án p incipalmen e basadas en el al uismo, es deci , no espe an ecibi ecompensa
alguna po su con ibución y se a an de en idades sin ánimo de luc o.
La idea de es e ipo de edes es unciona como si ue an una unidad, in eg ada po
mul i ud de indi iduos pe o uncionando al unísono pa a maximiza la p oduc i idad. Es os
mecanismos de abajo compa ido p oducen muy buenos esul ados a g an elocidad y
la aplicación de los mismos a oda clase de indus ias ha ocasionado un cambio en sus
pa adigmas, p oduciendo mejo as muy no ables en emas de p oduc i idad en los úl imos
años.
En el caso conc e o de nues a aplicación las edes de colabo ación nos si en pa a pone
en con ac o a pe sonas, pudiendo de es a mane a colabo a y ayuda se en e sí con el n
de encon a los obje os que se hayan podido pe de y de ol é selos a su dueño o iginal.
3.1. Fac o es ele an es de una ed de colabo ación
Den o de es e ipo de edes cabe des aca una se ie de ac o es impo an es a ene
en cuen a, como po ejemplo, las dicul ades que pueden su gi p oducidas po el desigual
comp omiso de sus in eg an es, lo cual puede inui en el in e és de los pa icipan es y
ocasiona p oblemas pa a las posibilidades que o ece un espacio coope a i o que se basa
en la olun a iedad y el benecio mu uo.
También exis en ac o es que a o ecen el éxi o o p og eso de es e ipo de edes, como
po ejemplo:
9
10 Capí ulo 3. Redes de colabo ación
Tene un obje i o denido y conc e o.
Selecciona con c i e io los pa icipan es de la ed.
La eciencia y ecacia en la coo dinación y la ges ión de la ed.
La ac i ud pa icipa i a.
El cumplimien o de los comp omisos.
La exis encia de un esquema cla o y acep ado po los in eg an es.
El sen imien o de compa i el abajo y los benecios de la ed.
3.2. Ejemplos de edes de colabo ación
Todas las sociedades han u ilizado edes de colabo ación a lo la go de su his o ia.
Ejemplos adicionales de ello son: la in o mación epidemiológica, que nos pe mi e conoce
in o mación en e los sis emas sani a ios de di e en es países, e i ando así la p opagación
de dis in as en e medades epidémicas o; la p oducción cien íca, según la cual los in es iga-
do es de dis in os países e ins i uciones han colabo ado y compa ido conocimien os en e
ellos, con el único obje i o de po encia el desa ollo en sus in es igaciones cien ícas.
La ecnología acual y en pa icula el caso de in e ne han po enciado las edes de cola-
bo ación en e pe sonas. Ejemplo ilus a i o de es as edes es
Wikipedia
[40], que consis e
en una enciclopedia lib e edi ada de mane a colabo a i a en la que cualquie usua io que
lo desee puede modica a ículos y apo a in o mación ex a sob e cualquie ema.
Fue c eada en 2001 y, desde en onces, ha c ecido de una mane a inmensu able. Ac ual-
men e con iene más de 1.360.000 a ículos c eados po usua ios de odo el mundo sob e
odo ipo de emas. Es un cla o ejemplo del po encial que ienen es e ipo de inicia i as.
O o ejemplo cla o es
S ack O e ow
[37], que consis e en una comunidad de desa olla-
do es en la cual se pueden encon a soluciones a p oblemas de p og amación en di e en es
lenguajes.
Fue lanzada en agos o de 2008 y esul a de g an ayuda pa a cualquie duda o consul a
que se enga sob e p ác icamen e cualquie lenguaje y, ac ualmen e, cuen a con casi 9
millones de usua ios egis ados.
Po úl imo, en nues o caso conc e o la ed de colabo ación c eada en nues o p oyec o
iene como n de ol e los obje os pe didos a los dueños legí imos de los mismos, de mane a
al uis a y sin ob ene ningún ipo de benecio a cambio.
Capí ulo 4
Open Da a
Además de lo is o en el capí ulo 3, Redes de colabo ación, en es e capí ulo se de alla
en p o undidad o o concep o del que hacemos uso en nues o p o o ipo
Los 2Found
que
se conoce como
open da a
, o da os abie os.
También se explica á cuáles son los obje i os y p incipios de es a inicia i a, en qué
o ma os se suele publica la in o mación, de qué mane a se debe hace y algunos ejemplos
ac uales de aplicaciones que hagan uso de es a in o mación.
4.1. In oducción
Los da os abie os u
open da a
son una inicia i a global que consis e en que la in o ma-
ción es é disponible de o ma lib e pa a odo el mundo, sin ningún ipo de es icción de
acceso, copy igh u o os mecanismos de con ol. De es a mane a pueden se modicados
o in eg ados en o os conjun os de da os.
Es e ipo de in o mación se sus en a en di e sos undamen os como la anspa encia,
la colabo ación y la pa icipación, apo ando benecios an o pa a las en idades que hacen
públicos es os da os gene ando conanza en las ins i uciones, como pa a las pe sonas que
ienen acceso lib e a es a in o mación. De es a mane a se ayuda al desa ollo económico
y a la c eación de nue os sec o es y se icios pa a los ciudadanos. También es impo an e
des aca que, debido a su na u aleza pública, es os da os nunca con end án in o mación
pe sonal sob e indi iduos especícos.
En los úl imos años, cada ez son más las ins i uciones que se suman a es e ipo de
inicia i as, ligadas a las polí icas de gobie no abie o, acili ando de es a mane a sus da os
a cualquie usua io. La adminis ación pública pione a ue da a.go [6] en EE.UU y, poco
a poco, es as inicia i as se han ido ex endiendo po odo el mundo.
Pese al inc emen o in e nacional de es e ipo de inicia i as, las o ganizaciones que p o-
mue en la adopción de da os abie os a ni el in e nacional nos ad ie en de que la mayo ía
de los da os es án desac ualizados, incomple os o son de baja calidad, debido a que se
publican de o ma compleja y dispe sa, lo que da luga a una di ícil comp ensión de los
mismos.
11
Capí ulo 5
Análisis de aplicaciones simila es
5.1. In oducción
En es e capí ulo se explica de alladamen e el análisis que hemos ealizado, eniendo en
cuen a las he amien as o aplicaciones que ac ualmen e se encuen an en el me cado y qué
uncionalidades o ecen.
Con es o p e endemos obse a qué se icios suelen b inda es as aplicaciones pa a da
un en oque dis in o a nues a aplicación, con el n de hace la des aca en e a las demás
y, de es a mane a, no desa olla algo que ya es é disponible.
De la misma mane a, es e análisis nos ayuda a descub i alguna ca ac e ís ica in e e-
san e que no hubiésemos pensado an es y ealiza , así, una aplicación comple a y uncional.
T as busca aplicaciones que a en emas de obje os pe didos en la pla a o ma de
Google Play S o e [17], hemos hecho una selección de las cinco que más nos han llamado
la a ención po sus ca ac e ís icas in e esan es y que amos a compa a pa a ealiza es e
análisis.
5.2. Es udio de o as he amien as simila es
5.2.1.
MissingX
MissingX
[25] es una aplicación pa a anuncia si se ha encon ado o pe dido algún
obje o. Su uncionamien o es muy simple y cons a de un menú in e io con 4 secciones, en
cada una de las cuales se in eg a una uncionalidad dis in a.
5.2.2. In e az
Como emos en la gu a 5.1,
MissingX
mues a nada más inicia se dos bo ones con
los ex os
Los Some hing
y
Found Some hing
en el apa ado p incipal (a). Al pincha en
cualquie a de ellos nos edi ige a un o mula io en el cual se nos p egun an da os como
nues o país o la echa, además de qué obje o hemos pe dido o encon ado (b).
19
20 Capí ulo 5. Análisis de aplicaciones simila es
(a) Apa ado p incipal (b) Fo mula io obje os
Figu a 5.1:
MissingX
: Sección p incipal
El iempo de ca ga de la aplicación es len o en gene al y no se ap o echa oda la pan alla
en muchas secciones.
Además de es a sección p incipal, la aplicación cuen a con o a pa a egis a obje os
encon ados como emos en la gu a 5.2(a), o a pa a cha ea con usua ios (b) y o a de
congu ación (c).
(a) Regis a obje os en-
con ados (b) Cha (c) Congu ación
Figu a 5.2:
MissingX
: Res o secciones
5.2. Es udio de o as he amien as simila es 21
5.2.3. Qué nos in e esa
T as analiza es a aplicación nos han gus ado a ios aspec os como los dos bo ones de
la sección p incipal. En el diseño p elimina de nues a aplicación ya eníamos pensado
algo muy pa ecido, dado que apo a apidez a la ho a de la in e acción con el usua io, que
es undamen al en es e ipo de se icios, sob e odo si el usua io quie e publica el anuncio
de la pé dida de su obje o lo an es posible.
Po o o lado, nos ha pa ecido muy in e esan e da la opción al usua io de indica en
un mapa en qué pun o se ha pe dido o encon ado el obje o, ya que es una mane a ápida
e in ui i a de indica el luga donde se ha dado la si uación.
Po lo an o, y eniendo en cuen a es os aspec os, a la ho a de desa olla nues a
aplicación y especica el luga donde se ha pe dido o encon ado un obje o ha emos una
dis inción de has a es mane as dis in as de hace lo. Una cuando se a e de una di ección
pública con calle y núme o, o a que se especiquen en un mapa las coo denadas GPS y,
po úl imo, o a si el luga es en un medio de anspo e como puede se me o, au obús,
en, e c, donde o zamos al usua io a que nos especique cla amen e la línea y la es ación,
ya que señala lo en un mapa no se i ía de mucho.
5.2.4.
Los o Found
Los o Found
[21] es una aplicación en la que hay in o mación an o de obje os pe didos
y encon ados como de pe sonas que han desapa ecido. También exis e una sección donde
se puede e la can idad de anuncios con sus espec i os obje os.
5.2.5. In e az
Como emos en la gu a 5.3, el egis o en la aplicación es el mismo pa a odos, no
dis ingue en e las pe sonas que encuen an algo y las que lo pie den (a), po lo que es
necesa ia la siguien e pan alla (b) donde el usua io debe indica qué ipo de anuncio quie e
publica , si uno de pé dida u o o donde indique lo que ha encon ado.
En cualquie caso, es ineludible la sección 5.3(c) donde se piden los da os del obje o en
cues ión, ya sea en el caso de habe lo pe dido como en el de habe lo encon ado. An es de
es e o mula io, hay un l o de ca ego ías, donde el usua io indica la co espondien e con
su obje o encon ado o pe dido.
22 Capí ulo 5. Análisis de aplicaciones simila es
(a) Regis o en la aplica-
ción (b) Pan alla de selección (c) Fo mula io obje os
Figu a 5.3:
Los o Found
: Sección p incipal
La aplicación cuen a ambién con un apa ado de búsqueda donde puedes pone la
ca ego ía del obje o que es ás buscando, como se mues a en la gu a 5.4(a). Los esul ados
pueden se de obje os oda ía sin halla o de los ya encon ados an e io men e.
Hay o a sección in e esan e donde se indican las di e en es ca ego ías jun o con el
núme o de obje os pe didos y encon ados de la misma 5.4(b). Además, hay un con ado
que señala la can idad de obje os pe didos que se han encon ado g acias a la aplicación.
(a) Búsqueda de obje os(b) Lis ado de ca ego ías
Figu a 5.4: Los o Found: Res o de secciones
5.2. Es udio de o as he amien as simila es 23
5.2.6. Qué nos in e esa
Al analiza es a aplicación hemos iden icado a ios aspec os ele an es: el p ime o
es que dis ingue dos ipos de egis o, uno pa a las pe sonas que pie den obje os y o o
pa a las pe sonas que los encuen an. En nues a aplicación ha emos es o pa a simplica el
egis o de obje os encon ados, con el n de pone el meno núme o de obs áculos posibles
a la pe sona que encuen a algo y iene la in ención de de ol e lo, incen i ando así el uso
de la aplicación po ambas pa es. El segundo aspec o ele an e es que no ha emos isible
pa a odos los usua ios los obje os pe didos, ya que es o puede lle a a que haya pe sonas
en adas de en a en la aplicación única y exclusi amen e pa a e los luga es donde se
han pe dido obje os y p e ende quedá selos o ende los. Po úl imo, o a ca ac e ís ica
in e esan e de es a aplicación es una sección con un lis ado de ca ego ías an o de los
obje os que más se han pe dido como de los que más se han encon ado y, además, un
egis o de los obje os encon ados g acias a la aplicación.
5.2.7. Find My Los
Find My Los [21] es una aplicación i aliana que ayuda a las pe sonas que han pe dido un
obje o en cualquie si io, ya sea en la calle, en un cen o come cial, en cualquie anspo e
público, ho eles, e c, además de ecoge anuncios de pe sonas que han encon ado algo. A
es as úl imas se les da la opción de elegi si quie en o no ecompensa, da el obje o en
pe sona o en ia lo median e una emp esa de anspo e.
5.2.8. In e az
Aunque en la pan alla p incipal dis inga a los usua ios, el o mula io de egis o sigue
siendo el mismo pa a ambos, po lo que, cuando en as en la aplicación, hay o a pan alla
p egun ando de nue o al usua io si ha pe dido o encon ado un obje o.
En la pan alla de inicio, que se mues a en la gu a 5.5(b), el icono de
Found i ems
de la pa e in e io esul a muy ú il, siemp e y cuando se pueda l a de alguna mane a
pa a que al usua io no le salgan lis as in e minables de anuncios.
Po o a pa e, el icono de cha ambién es adecuado ene lo en la pan alla p incipal
pa a un acceso ápido a posibles con e saciones con o os usua ios que hayan pe dido un
obje o.
24 Capí ulo 5. Análisis de aplicaciones simila es
(a) Regis o en la aplica-
ción (b) Pan alla de inicio
Figu a 5.5: Find My Los : Sección p incipal
Las cap u as de la gu a 5.6 mues an lo que debe ellena el usua io si ha pe dido o
encon ado algo. Se puede comp oba que al usua io que ha pe dido un obje o no se le da
la opción de elegi si quie e da una ecompensa po su obje o (a).
Además, hemos comp obado la u ilidad de pe mi i a ias opciones en el campo
Whe e
ha e you los / ound i ?
de la gu a 5.6(b), una con la di ección y o a pa a elegi un luga
público de una lis a desplegable que apa ece en la aplicación.
(a) Fo mula io a ellena (b) Opciones de luga (c) Fo ma os de luga
Figu a 5.6: Find My Los : O as secciones
5.2. Es udio de o as he amien as simila es 25
5.2.9. Qué nos in e esa
De es a aplicación hemos acla ado a ias ideas que ya eníamos, como da la opo uni-
dad al usua io que ha pe dido algo de elegi si quie e da una ecompensa al que encuen e
su obje o pe dido.
También nos ha pa ecido ele an e la posibilidad de l a po ca ego ías las búsquedas
de los obje os que más se han pe dido o encon ado, pa a no ene que busca en e mul i ud
de anuncios.
Como ya hablamos en 5.2.1,
MissingX
, o a idea in e esan e consis e en da la posi-
bilidad de ubica un luga conc e o únicamen e pinchando en un mapa, además de o ece
una lis a de luga es públicos o, simplemen e, da la opción de esc ibi la di ección.
Po úl imo, el usua io puede edi a su pe l y añadi da os, como su núme o de elé ono,
su cuen a de
PayPal
pa a el posible pago o ecompensa, e c. Ya eníamos pensado inclui
una sección de pe l de usua io pe o es e análisis nos ha dado más mo i os oda ía pa a
hace lo.
5.2.10. Los -Tag
Los -Tag [22] es una aplicación alemana que pe mi e pone e ique as a los obje os
pe sonales. De al mane a que, cuando alguien encuen e ese obje o, solo debe escanea
el código QR o in oduci el ID de la e ique a, y la aplicación se enca ga á de pone en
con ac o a esa pe sona con el p opie a io pa a que in e cambien el obje o po la posible
ecompensa.
5.2.11. In e az
A la ho a de egis a se, el usua io indica si quie e gua da una e ique a nue a o si ha
encon ado algo. Como obse amos en la gu a 5.7(a), és a puede se un ID o un código
QR (b), y además se puede modica cuando el usua io quie a (c).
Si el usua io ha pe dido algún obje o, solo debe pone el ID de la e ique a que haya
asignado a ese obje o en cues ión, una ecompensa a elegi po él mismo y o os alo es
como la ca ego ía. Todo es o se e en la gu a 5.8(a).
Si alguien encuen a un obje o, puede in oduci o el ID de la e ique a o el código QR
pa a que la aplicación le b inde los da os necesa ios pa a con ac a con el dueño del obje o
(b), además de ob ene la in o mación de si ecibi á ecompensa o no.
Po úl imo, la aplicación iene una ienda con odos los obje os encon ados que no han
sido eclamados po su p opie a io (c).
26 Capí ulo 5. Análisis de aplicaciones simila es
(a) Regis o en la aplicación (b) E ique a obje os (c) Modica e ique as
Figu a 5.7: Los -Tag: Sección p incipal
(a) Fo mula io obje o pe dido (b) Fo mula io obje o encon-
ado (c) Tienda
Figu a 5.8: Los -Tag: O as secciones
5.2. Es udio de o as he amien as simila es 27
5.2.12. Qué nos in e esa
Es una idea muy o iginal el hecho de e ique a obje os en la aplicación pa a que, en
caso de pé dida, se puedan encon a más ácilmen e.
A pesa de su o iginalidad, obse amos a ios p oblemas en la aplicación. Uno de ellos
es que, an es de la pé dida, es necesa io habe se egis ado jun o con las e ique as y, en
gene al, el usua io no suele es a p edispues o a e ique a odos los obje os que lle a encima.
Nunca se piensa que ayamos a pe de nues as pe enencias has a que, nalmen e, ocu e.
Po lo que, a menos que el usua io sea p e iso , es e mecanismo no end ía demasiado
sen ido.
O o p oblema encon ado en es a aplicación consis e en que la pe sona que encuen a
un obje o, nada más escanea la e ique a, puede sabe si ecibi á una ecompensa po
de ol e ese obje o o no. Es o puede lle a a esa pe sona a sopesa si ealmen e le me ece
la pena de ol e el obje o en cues ión. Si uación que que emos e i a a oda cos a pa a el
co ec o uncionamien o de nues a aplicación.
Po úl imo, la ienda de obje os no eclamados ambién es una posible sección pa a
nues a aplicación, pa a ende los obje os encon ados de un anuncio que caduca y nunca
llega a su p opie a io. Es o mo i a ía a los usua ios que encuen an un obje o a egis a lo
en la aplicación.
5.2.13.
Find i - Los and Found
Find i - Los and Found
[11] es una aplicación con uncionalidades semejan es a odas
las aplicaciones an e io es ya analizadas. En es e caso, al igual que ocu ía con la aplicación
Los o ound
que analizamos en la sección 5.2.4,
Los o Found
se pueden localiza
pe sonas o masco as que se hayan pe dido, además de obje os.
5.2.14. In e az
Como obse amos en la gu a 5.9, nada más ab i la aplicación, nos encon amos con
una pan alla de login (a), simila a la que p e endemos c ea pa a nues a aplicación. En
ella podemos en a si ya enemos cuen a o egis a nos en caso con a io. Una ez hemos
en ado y ellenado los campos de in o mación que nos pide la aplicación (país, ciudad,
idioma, e c), accedemos a una pan alla p incipal algo con usa (b), en la cual enemos un
lis ado de nues os anuncios publicados (si hemos publicado alguno), y un buscado de
obje os jun o con un icono pa a l a la búsqueda po luga , echa y ca ego ía (c).
34 Capí ulo 6.
Open Da a SNCF
y
Google APIs
SNCF
[36], o la
sociedad nacional de e oca iles anceses
, ya que dispone de un o al
de 211 conjun os de da os dis in os que se ac ualizan unas es eces al día.
Es a can idad de da os en cons an e ac ualización nos si en pa a demos a el po encial
que ienen las inicia i as de da os abie os y la g an ayuda que nos pueden b inda a la ho a
de ealiza aplicaciones como la nues a, po lo que in es igamos de qué mane a podíamos
u iliza la
SNCF API
[4] disponible pa a consegui los da os que necesi ábamos en nues a
aplicación.
En nues o caso conc e o nos in e esaban dos conjun os de da os de la página, po un
lado
Décla a ions de pe es
[5], que egis a las decla aciones de pé dida de obje os y po
o o
Obje s ou és
[28], e e en e a obje os encon ados.
Ambos conjun os de da os ienen in o mación sob e los obje os pe didos o encon ados
en los e oca iles de oda F ancia. El o ma o de es os dos conjun os de da os pueden
e se en la gu a 6.1.
Figu a 6.1: Conjun os de da os sob e decla aciones de pé dida y obje os encon ados
6.3. Conjun os de da os abie os
SNCF
35
Una uncionalidad ele an e de
Los 2Found
consis e en que una de las posibilidades de
las que dispone el usua io a la ho a de especica un luga donde ha pe dido o encon ado
un obje o es indicando la línea y la es ación del medio de anspo e en cues ión. La base de
da os de
Los 2Found
con iene la in o mación de líneas y es aciones de e oca il disponiles
en la web de
SNCF
, es o se puede ap ecia en la gu a 6.2.
Figu a 6.2: Coincidencia de es aciones en e nues a aplicación y el conjun o de da os
abie os
G acias a es o es posible ealiza un ma ch de un obje o de un anuncio local, es deci ,
c eado po el usua io en nues a aplicación, con un obje o que es é publicado en el conjun o
de da os abie os. Es o mejo a de una mane a muy no able la eciencia de la aplicación ya
que no solo se compa an los obje os locales publicados en la aplicación sino que ambién
se es an compa ando con conjun os de da os públicos que con ienen miles de obje os: el
ca álogo de decla aciones de pé dida po ejemplo lle a an sólo en 2018 públicados más de
65000 obje os.
Debido a la di e encia de idioma ha sido necesa io c ea una abla nue a en la base
de da os llamada
con e so
que cumple la unción de aduci las ca ego ías de obje os
del ancés al español. Pa a pode hace compa aciones en e ellas, la abla con iene una
columna con el nomb e de la ca ego ia de nues a aplicación en español, y o a columna
con su co espondien e nomb e en ancés. De es a mane a, a la ho a de busca obje os
que hagan ma ch en el open da a se aducen dinámicamen e los nomb es de los mismos,
en caso de no coincidi con ninguna de las cua o ca ego ias en español se conside a como
un obje o den o de la ca ego ía O os.
36 Capí ulo 6.
Open Da a SNCF
y
Google APIs
Sin es a abla no se ía posible ealiza ma ches en e los obje os locales y los publicados
en los conjun os de da os abie os. Su es uc u a puede e se en la gu a 6.3.
Figu a 6.3: Es uc u a de la abla con e so
6.4. Conexión con el p o eedo de open da a
SNCF
Pa a conec a nos al open da a y ob ene los da os que nos in e esan se hace algo
semejan e a que se explica en la sección 8.8, Uso de AsyncTask, solo que en es a ocasión
se usa el mé odo
GET
en ez de
POST
.
Den o de la
URL
de la pe ición
GET
ealizada al open da a exis en dis in as opciones
que nos o ece la
API
con las que podemos especica las dis in as p e e encias que en-
gamos a la ho a de consul a los da os, como po ejemplo qué columnas nos in e esan, en
qué o den que emos los da os, cuán os da os que emos, la zona ho a ia, e c. Todas es as
mane as dis in as de l a la pe ición
GET
es án disponibles en la
SNCF API
[4].
En el caso conc e o de nues a aplicación, hacemos una pe icion
GET
al conjun o de
da os de obje os encon ados si es amos buscando ma ch con un anuncio de ipo
Pé dida
o al o o conjun o en caso con a io.
En ambos casos el o ma o de la pe icion es semejan e: gua damos en un
S ing
la
URL
de la
API
co espondien e al conjun o al que hagamos la consul a, y le pasamos a és a
la echa del anuncio o iginal en el o ma o adecuado, pa a busca obje os que hayan sido
publicados en echas ce canas a la del anuncio o iginal.
En el enlace de más abajo po ejemplo se hace una pe ición al conjun o de obje os
encon ados, de mane a que se es an pidiendo 500 las, o denadas de mane a descenden e,
al pone un guión an es de la palab a ese ada
so
, desde el día 20 de mayo de 2018 al
día 23 de mayo de 2018.
h ps://da a.snc .com/api/ eco ds/1.0/sea ch//?da ase =obje s- ou es- e
s i u ion&q=da e+%3E%3D+2018%2F05%2F20+da e+%3C+2018%2F05%2F23& ows=500
&so =-da e& imezone=Eu ope/Mad id
6.5. Incon enien es su gidos con el p o eedo de open da a 37
6.5. Incon enien es su gidos con el p o eedo de open
da a
A pesa de la po encia que nos b inda dispone de al can idad de da os, exis en in-
con enien es que han su gido a la ho a de conec a nues a aplicación con el conjun o de
da os abie os.
Un ejemplo de es e ipo de incon enien es es el hecho de que en el ca álogo de decla a-
ciones de pé dida no siemp e es é disponible el luga donde se ha pe dido el obje o. Es o
inuye en el ma ching ealizado en e anuncios ya que al no ene disponible el luga de
pé dida no se puede compa a con el luga de hallazgo, siendo imposible calcula el po cen-
aje de dis ancia en e ambos luga es, al y como se explica en la sección 8.6, Búsqueda
de co espondencia de anuncios compa ibles.
Ocu e exac amen e lo mismo con el colo del obje o, ya que es un a ibu o que en
nues a aplicación si consul amos al usua io pe o en el ca álogo de da os abie os no es á
publicado, po lo que ampoco es posible calcula el po cen aje de ma ching en e ambos
colo es.
De es a mane a se pie den dos ac o es de g an ele ancia a la ho a de ealiza el
ma ching en e dos anuncios, po lo que en es e sen ido el ma ching ealizado con los
obje os publicados en el conjun o de da os abie os es más imp eciso que el ealizado de
mane a local. En la gu a 6.4 se puede e el mensaje de e o mos ado al usua io cuando
la dis ancia de un obje o del conjun o de da os no es á disponible.
(a) Anuncio o iginal (b) Resul ados ma ch con
open da a (c) Luga y dis ancia no
disponibles
Figu a 6.4: Luga no disponible al ealiza ma ch con open da a
38 Capí ulo 6.
Open Da a SNCF
y
Google APIs
6.6. Uso de las
API
de
Google
Una de las ca ac e ís icas ele an es de nues o sis ema es la posibilidad de in oduci
el luga de pé dida o hallazgo de un obje o de di e sas o mas: ma ca la posición en un
mapa, in oduci una di ección o un luga de anspo e. Además, pa a busca las posibles
co espondencias de anuncios de pé dida y hallazgo (ma ching), es necesa io calcula la
dis ancia en e luga es de anuncios dis in os. Pa a ello, hemos es udiado las
API
que
p opo ciona
Google Maps
como da os abie os.
6.6.1.
Dis ance Ma ix API
de
Google
Con el p opósi o de calcula un po cen aje de dis ancia que apo ase in o mación ele-
an e al ma ching nal en e los dos anuncios, nues a in ención e a hace uso de las
API
de
Google
pa a ob ene la dis ancia exis en e en e dos luga es indicados po los usua ios.
Pa a es a labo nos es de g an u ilidad la
Dis ance Ma ix API de Google
[7], ya que
p opo ciona in o mación sob e la dis ancia y el iempo de iaje pa a una u a con un o igen
y un des ino, en nues o caso solo necesi amos conoce la dis ancia exis en e en e los dos
pun os pa a calcula el po cen aje de dis ancia adecuado en cada caso.
T as in es iga sob e es a
API
y lee su documen ación a en amen e obse amos la
can idad de opciones que o ece a la ho a de hace la pe ición, además de la comodidad y
sencillez de su uso.
Tan solo hace al a ene una cuen a de
Google
y solici a una cla e de
API
, es o se
hace debido a que hay más opciones disponibles pe o son de pago, como l a según el
ipo de anspo e o aumen a el núme o de pe iciones a la
API
po día, ya que exis e un
lími e pa a los usua ios que la usan de mane a g a ui a.
Debido a es as limi aciones, nos plan eamos u iliza o a solución dis in a a la
API
, ya
que no podemos medi el núme o de pe iciones que se an a ealiza desde nues a aplica-
ción, al no sabe cuán os usua ios an a u iliza la, po lo que buscamos o as al e na i as
y encon amos una solución usando la
Fó mula del semi e seno
[9], como se comen a en
la sección 8.6, Búsqueda de co espondencia de anuncios compa ibles.
Con es a ó mula no enemos la necesidad de u iliza la
Dis ance Ma ix API
de
Google
ni ningún ipo de limi ación de uso, po lo que nalmen e la usamos pa a calcula la
dis ancia y con ella calcula un po cen aje de dis ancia que con ibuya de o ma no able
al po cen aje de ma ching nal.
6.6. Uso de las
API
de
Google
39
Figu a 6.5: Google De elope s
6.6.2.
Geocoding API
de
Google
T as comp oba el co ec o uncionamien o de la o mula del semi e seno pa a calcula
la dis ancia en e dos pun os a pa i de sus la i udes y longi udes, nos encon amos con el
p oblema que se da si el usua io ha escogido o a al e na i a dis in a a señala en un mapa
el luga donde ha pe dido o encon ado un obje o, como se explica en 8.4.3, Pan allas de
luga , ya que en onces no disponemos de la la i ud y la longi ud pa a usa es a ó mula y
consegui la dis ancia.
Pa a a egla es a si uación necesi amos con e i las di ecciones especicadas po pa e
del usua io, ya sean di ecciones conc e as o es aciones de anspo e, a coo denadas GPS
con la i ud y longi ud, y es o es p ecisamen e lo que hace la
Geocoding API de Google
[13],
ya que con ie e di ecciones especícas en coo denadas geog ácas.
Po lo an o y si iéndonos de los conocimien os adqui idos al in es iga la
Dis ance
Ma ix API
de
Google
a pesa de no habe la u ilizado nalmen e, u ilizamos la
Geocoding
API
pa a ealiza el paso p e io al cálculo de la dis ancia en e dos pun os, que consis e
en consegui la longi ud y la la i ud de una di ección especica.
Pa a ello, en el caso de que el usua io hubie a especicado la di ección de una mane a
conc e a, es deci , indicando calle, núme o y código pos al, ealizamos la pe ición a la
API
pasándole es a in o mación, si en cambio ha especicado el luga indicando una línea y
es ación de anspo e, o an solo una línea como es el caso del en, en onces u ilizamos
el nomb e de la linea o es ación pa a consegui las coo denadas geog acas.
De es a mane a esol emos el p oblema y podemos calcula la dis ancia en e dos pun os
sin impo a de qué mane a ha especicado el usua io el luga , y siemp e y cuando engamos
las dis ancias de ambos obje os disponibles, en o o caso se le comunica al usua io que no
puede calcula se la dis ancia, como se comen ó en 6.5, Incon enien es su gidos con el
p o eedo de open da a.
A pesa de las limi aciones que ienen las
API
de
Google
en su e sión g a ui a, el
núme o de usua ios que eligen especica el luga de una mane a dis in a a indica lo en un
mapa son una mino ía, po lo an o no supone un p oblema a la ho a de ene un núme o
limi ado de pe iciones po día que se pueden ealiza a es a
API
.
Capí ulo 7
P ime p o o ipo
7.1. In oducción
En es e capí ulo se de allan las ca ac e ís icas p incipales del p ime p o o ipo de la
aplicación, la a qui ec u a inicial del sis ema, el diseño p elimina de la in e az de usua io,
los ipos de anuncios exis en es, la base de da os, e c.
Las in e aces del p o o ipo las hemos diseñado median e el p og ama
Jus In Mind
[20] a ando de segui es ilo de diseño de
Ma e ial Design de Google
pa a
And oid
.
También ealizamos unos p ime os diseños de la es uc u a de la base de da os, que
uimos enando poco a poco has a llega a la e sión nal, que se desc ibe en el capí ulo
8, Diseño e implemen ación de Los 2Found.
7.2. A qui ec u a inicial del sis ema
A la ho a de ges iona el manejo de da os pa a el p o o ipo de la aplicación, sopesamos
la idea de que el se ido ue a el enca gado de desca ga oda la in o mación que necesi á-
semos de los conjun os de da os abie os que usá amos. Hicimos es o po que pensábamos
que si el clien e e a el enca gado de ges iona es a g an can idad de da os pod ía causa
p oblemas o un iempo de espe a mayo del deseado.
Tal y como se puede ap ecia en las gu as 7.6, Base de da os de es e mismo capí-
ulo, exis e una abla llamada
Open Da a (Es ación)
en la que se pensaba almacena la
in o mación p oceden e del conjun o de da os abie os, como la echa, la ho a, el ipo de
obje o y el obje o en cues ión.
Debido a es o, el diag ama de al o ni el de la a qui ec u a del sis ema de la gu a 7.1
cons a de un clien e, que en es e caso se a a de una aplicación desa ollada en ja a pa a
disposi i os mó iles, y un se ido
Ubun u 14.04
[39] con
Apache
[2] ins alado, en el cual
se ejecu an los che os
PHP
[32] que comunican el se ido con la base de da os
MySQL
[27], ambién incluye comunicación con sis emas ex e nos como las
APIs
de
SNCF
y de
Geocoding de Google
. Nues a in ención e a que el clien e gua da a sólamen e una copia de
aquellos da os que necesi a, y no iene que consul a al se ido cada poco iempo.
41
42 Capí ulo 7. P ime p o o ipo
Figu a 7.1: A qui ec u a inicial del sis ema
7.3. Comunicación en e los componen es del sis ema
Desde el p incipio del p oyec o eníamos cla o qué componen es íbamos a u iliza pa a
desa olla nues a aplicación. Lo que u imos que in es iga ue cómo se iban a comunica
esos componen es en e sí.
T as la in es igación, nalmen e nos acabamos decan ando po usa un se icio web
median e
PHP
que comunica a nues a aplicación con el se ido , y que es e a su ez
a ase con nues a base de da os
MySQL
a a és de un p o ocolo de in e cambio de da os
llamado
JSON
, conocido po se lige o y usa se, no malmen e, en na egado es.
De es a mane a los a chi os PHP se enca ga ían de ealiza las ope aciones y las con-
sul as necesa ias, comunicándose con la base de da os y ecibiendo las espues as a las
pe iciones co espondien es en cada caso.
(a)
PHP
(b)
MySQL
(c)
JSON
Figu a 7.2: Componen es del sis ema
7.4. Diseño p elimina del in e az de usua io 43
7.4. Diseño p elimina del in e az de usua io
T a amos de diseña las in e aces de nues a aplicación siguiendo la guía de diseño de
Google Ma e ial Design
[24], empezando po las pan allas p incipales esenciales como la
de login o la pan alla p incipal del usua io.
Pa a segui elmen e la guía de diseño nomb ada an e io men e, e a necesa io deni
una pale a de colo es que usá amos en la aplicación. Nos decan amos po usa
Indigo 500
como colo p incipal e
Indigo 700
como colo complemen a io, además de usa el blanco
como colo de ondo en las pan allas de la aplicación.
Figu a 7.3: P o o ipo: Pale a, icono y logo de Los 2Found
T as es o, pasamos a diseña las pan allas p incipales con
Jus In Mind
, la he amien a
que hemos mencionado an e io men e. Al se la pan alla de login la p ime a que e el
usua io al ab i la aplicación, nues a in ención e a que causa a una imp esión posi i a e
inci a a a segui usando la aplicación. En la gu a 7.4 podemos e el diseño ealizado pa a
la pan alla de login y la pan alla de egis o.
(a) Pan alla de login(b) Pan alla de e-
gis o
Figu a 7.4: P o o ipo: Pan allas de login y egis o
Capí ulo 8
Diseño e implemen ación de Los 2Found
8.1. In oducción
En es e capí ulo se explica á odo el abajo e e en e al diseño, implemen ación y
planicación ealizados a lo la go del p oyec o. Además, se pod án ap ecia los cambios que
nos hemos is o obligados a ealiza , debido a las dicul ades su gidas o a las al e aciones
de los equisi os a lo la go del p oyec o. Se ha edac ado el capí ulo en o den c onológico
pa a que así el lec o pueda segui los pasos ealizados en el p oyec o a medida que a
leyendo las dis in as secciones.
8.2. A qui ec u a del sis ema
A pesa de lo dicho en la sección 7.2, A qui ec u a inicial del sis ema del capí ulo 7
P ime p o o ipo, donde se hablaba sob e que el se ido se enca gase de la ges ión de
las uncionalidades que conlle a an el manejo de g andes can idades de da os o el cálculo
de nume osas ope aciones, en la e sión nal de la aplicación se delegó es a a ea en el
clien e, es deci , la aplicación, al comp oba que no suponía ningún ipo de p oblema ni
una espe a demasiado la ga pa a el usua io.
Po lo an o, nalmen e se delegó la a ea de la ges ión de la in o mación de los conjun os
de da os abie os al clien e y no al se ido . De es a mane a, es la aplicación clien e la que
se conec a al open da a en cues ión y ob iene los da os necesa ios en cada caso.
Como se obse a en las gu as de la sección 8.5, Implemen ación y cambios en la base
de da os de es e capí ulo, nalmen e la abla
Open Da a (Es ación)
no es á p esen e, ya
que as nues a decisión, no eníamos necesidad alguna de que exis ie a en el diseño nal
de la es uc u a de nues a base de da os.
Tal y como hemos comen ado, en la gu a 8.1 obse amos el diag ama de al o ni el de
la a qui ec u a nal del sis ema, en el que se puede obse a que ha cambiado la ges ión
de la in o mación p o enien e, an o de los conjun os de da os abie os de
SCNF
, como
de la
Geocoding API de Google
, siendo la aplicación clien e la enca gada de conec a se y
ob ene la in o mación co espondien e de es as uen es. Es e p oceso se explicó en mayo
p o undidad en el capí ulo 6,
Open Da a SNCF
y
Google APIs
.
51
52 Capí ulo 8. Diseño e implemen ación de Los 2Found
Figu a 8.1: A qui ec u a del sis ema
8.3. Conexión en e se ido y aplicación And oid
Como se explicó p e iamen e en el capí ulo an e io en la sección 7.3, Comunicación
en e los componen es del sis ema, a la ho a de elegi de qué mane a íbamos a ealiza la
conexión en e el se ido y la aplicación nos decan amos po un se icio web median e el
lenguaje
PHP
[32], usando
JSON
[19] como p o ocolo de in e cambio de da os.
De es a mane a hemos c eado una clase en
PHP
pa a cada una de las en idades exis-
en es en nues a aplicación, en la cual se implemen an odas las ope aciones necesa ias en
cada caso pa a su co ec a in e acción con nues a base de da os.
También hemos denido adicionalmen e un a chi o
PHP
pa a cada una de las ope a-
ciones ealizadas, en las cuales se a an los da os ecibidos median e el p o ocolo
HTTP
y
el mé odo
POST
, gua dando es os da os en a iables pa a pos e io men e llama a la clase
co espondien e a la en idad en cues ión y ealiza la ope ación p ocesando esos da os.
En la gu a 8.2 podemos obse a una de las unciones ejecu adas en los se icios
PHP
del se ido pa a el co ec o uncionamien o del login y el egis o de la aplicación, la
clase
ge Use ByEmailJSON.php
, en la que as p ocesa y gua da en a iables los da os
co espondien es, se llama al mé odo
selec ()
de la clase
Use Class.php
, pa a ealiza la
consul a co espondien e a la base de da os.
8.3. Conexión en e se ido y aplicación And oid 53
Figu a 8.2: Clase usua io
En la gu a 8.3 emos la clase
Use Class.php
donde se implemen an los mé odos de
selección, inse ción y ac ualización co espondien es a las ope aciones de SELECT, IN-
SERT y UPDATE de nues a base de da os. También obse amos la inclusión de la clase
dbFunc ions.php
pa a la conexión con el se ido , y emos la unción
selec ()
, que ealiza la
consul a
SELECT * FROM usua io WHERE email = ?
pa a ob ene oda la in o mación
sob e un usua io a pa i de su email y gua da la pos e io men e en un a ay
awda a[]
.
Figu a 8.3: Clase
ge Use ByEmailJSON.php
54 Capí ulo 8. Diseño e implemen ación de Los 2Found
8.4. Diseño del in e az de usua io
8.4.1. Pan allas de login y egis o
Pa a empeza con el desa ollo de la aplicación lo p ime o ue pasa las pan allas que
habíamos diseñado en nues o p ime p o o ipo con
Jus In Mind
a los layou s p opios de
And oid median e a chi os con o ma o
XML
.
Los p ime os layou s ealizados ue on los co espondien es a las pan allas mos adas
nada más ab i la aplicación, que son la de login y egis o, mos adas en la gu a 8.4.
(a) Pan alla de login (b) Pan alla de egis o
Figu a 8.4: Pan allas de login y egis o de Los 2Found
La in e az de es as pan allas es á o mada po un
Cons ain Layou
que nos pe mi e
ajus a el con enido dependiendo del amaño de la pan alla del mó il, den o iene un
Linea Layou
que dispone los elemen os uno debajo de o o. Es e ipo de layou es muy
ap opiado pa a in e aces que con engan o mula ios, como ocu e en es e caso.
En la pan alla de login, den o del
Linea Layou
enemos una imagen pa a el logo de la
aplicación, dos campos de ex o pa a que el usua io in oduzca su email y con aseña, y un
bo ón pa a en a en la aplicación. Más abajo hay un ex o y o o bo ón pa a accede a la
pan alla de egis o en caso de que no engamos una cuen a. Además, exis e un ex o ocul o
debajo del bo ón pa a en a que se mues a en caso de que las c edenciales in oducidas
no sean co ec as, comunicándole el mensaje de e o al usua io.
En cuan o a la pan alla de egis o su in e az iene una es uc u a semejan e a la de
login, solo que cuen a con más campos de ex o con da os a ellena pa a pode egis a
al usua io en la aplicación.
8.4. Diseño del in e az de usua io 55
8.4.2. Pan alla p incipal y de c eación de un anuncio
La pan alla p incipal de la aplicación mues a al usua io sus anuncios, si ha c eado
alguno. Es o se hace g acias a un
Recycle View
, componen e isual que mues a los ele-
men os de una lis a, en es e caso anuncios. Pa a que se mues e co ec amen e, es a is a
iene que es a den o de un elemen o llamado
D awe Layou
.
Cada is a de es e ipo iene un adap ado (
Adap e
) asociado que si e pa a ges iona
los elemen os de la lis a y enlaza los con los elemen os co espondien es. En la aplicación se
hace uso de es e ipo de is as pa a a ias uncionalidades impo an es como los anuncios,
la búsqueda y el cha .
Además de es os elemen os, la pan alla p incipal ambién dispone de una ba a supe io
o
oolba
, siguiendo la guía de diseño de
Ma e ial Design de Google
y a ando de es a
mane a de cap a la a ención del usua io de o ma que las in e aces le esul en a ac i as
y ag adables.
También exis e un ex o ocul o que solamen e se mues a en caso de que el usua io no
haya c eado anuncios oda ía. Un bo ón o an e (
Floa ing Ac ion Bu on
) que, al pulsa lo,
b inda la posibilidad de c ea un nue o anuncio y una ba a de na egación desplegable
(
Na iga ionView
) pa a pode accede a las demás secciones de la aplicación. Todos es os
elemen os se pueden e en la gu a 8.5.
(a) Pan alla p incipal con
anuncios (b) Pan alla p incipal sin
anuncios
Figu a 8.5: Pan alla p incipal de Los 2Found
56 Capí ulo 8. Diseño e implemen ación de Los 2Found
T as especica el luga de una de las es mane as posibles como se explica á en 8.4.3,
Pan allas de luga , se pasa a la pan alla de c eación de un anuncio, que consis e en un
elemen o llamado
Cons ain Layou
que con iene una ba a supe io y a ios elemen os
o ganizados den o. En e ellos enemos dos desplegables (
Ma e ialBe e Spinne
), uno
pa a que el usua io elija el ipo del anuncio y o o pa a que escoja la ca ego ía del obje o
en cues ión. T as comple a oda la in o mación y pulsa en con inua , accedemos a la
pan alla de los da os conc e os del obje o en cues ión. Como ejemplo, en la gu a 8.6 se
mues an los da os solici ados si el obje o especíco es una a je a banca ia.
(a) Pan alla de c eacion anun-
cio (b) Pan alla ellenada (c) Pan alla especica a je a
banca ia
Figu a 8.6: Pan alla de c eación de un anuncio
La pan alla de c eación de anuncio, ambién con iene es bo ones que al pulsa los
ab en un diálogo con el co espondien e desplegable (
Picke
) en cada caso. Exis e uno
pa a indica la echa en el
Da ePicke
, o o simila pa a elegi la ho a en un
Hou Picke
y
el úl imo pa a selecciona el colo del obje o en el
Colo Picke
, es os elemen os se pueden
e en la gu a 8.7.
8.4. Diseño del in e az de usua io 57
(a) Da e picke (b) Hou picke (c) Colo picke
Figu a 8.7: Picke s Los 2Found
Una ez se pulsa en el bo ón con ma se nos mues a la pan alla p incipal de la aplica-
ción con nues o nue o anuncio c eado, mos ado en la lis a de anuncios. Si en la en ana
de anuncios se pulsa sob e un anuncio exis en e, se mues a la pan alla de in o mación
conc e a con odos los da os disponibles en la aplicación sob e el anuncio en cues ión. Ade-
más, enemos la posibilidad de elimina un anuncio, po ejemplo si el usua io ha conseguido
ecupe a su obje o, o bien busca un 'ma ch' con o o anuncio.
(a) Pan alla p incipal con
nue o anuncio (b) In o mación conc e a
anuncio
Figu a 8.8: Pan alla p incipal con nue o anuncio
58 Capí ulo 8. Diseño e implemen ación de Los 2Found
8.4.3. Pan allas de luga
Como se mencionó an e io men e en la sección 5.2.3 Qué nos in e esa, es de i al
impo ancia o ece al usua io a ias posibilidades a la ho a de indica el luga donde se ha
pe dido o encon ado el obje o, y u imos es o en cuen a a la ho a de diseña las pan allas
de la aplicación pa a es a uncionalidad en conc e o.
También hubo conclusiones e óneas ex aídas del análisis ealizado en los capí ulos
an e io es, como la de la sección 5.2.6, Qué nos in e esa ya que nalmen e no cumplimos
a ias decisiones que omamos as el análisis.
Nada más pulsa en el bo ón o an e de la pan alla p incipal, se nos b inda la posibilidad
de c ea un nue o anuncio, como se explicó en la sección 8.4.2, Pan alla p incipal y de
c eación de un anuncio más adelan e.
T as es o se le solici a al usua io que indique la in o mación sob e el luga , pa a ello se
le dan es opciones dis in as. Si el usua io elige la p ime a de las opciones, que se a a de
un luga de anspo e, se le uel e a solici a que especique de qué ipo de anspo e se
a a, dándole nue amen e es opciones, como emos en la segunda cap u a de la gu a
8.9.
Después de hace su elección, el usua io debe á indica en los desplegables en qué línea
y es ación pe dió o encon ó el obje o, la in o mación sob e las líneas y es aciones que
le o ece la aplicación al usua io ienen di ec amen e del open da a que escogimos en la
sección 4.7, Uso de da os abie os en nues a aplicación. La es uc u a de es e open da a
se explicó de alladamen e en el capí ulo 6,
Open Da a SNCF
y
Google APIs
.
(a) Tipos de luga (b) Tipos de luga de
anspo e (c) Luga de anspo e
especico
Figu a 8.9: Especica luga de anspo e
8.4. Diseño del in e az de usua io 59
En caso de que el usua io escoja la segunda opción de luga (mapa), se le o ece la
posibilidad de si ua el pun o exac o donde localizó o pe dió el obje o en un mapa como
el de la segunda cap u a de la gu a 8.10. Si el disposi i o no iene ac i ado el GPS, se
mues a el mensaje que apa ece en 8.10(a).
(a) Solici ud de loca-
lización (b) Mapa (c) Especica luga
conc e o
Figu a 8.10: Especica luga , mapa y di ección conc e a
En es e caso se gua da en la base de da os la la i ud y longi ud del pun o señalado pa a
su pos e io p ocesamien o a la ho a de ealiza el ma ch con o o anuncio. También se le
o ece al usua io la posibilidad de localiza su posición pulsando en el bo ón si uado en la
pa e supe io de echa del mapa, en caso de habe concedido los pe misos de localización
pe inen es. Po úl imo si el usua io escoge la e ce a opción de luga , end á que especica
los da os conc e os sob e la di ección en cues ión, calle, núme o y código pos al.
8.4.4. Pan allas de búsqueda
El usua io ambién iene la posibilidad de busca en e los anuncios de la aplicación
pa a e si es á publicado alguno que pueda es a elacionado con su obje o, pa a ello el
usua io pulsa en la sección de búsqueda de la ba a de na egación desplegable.
Una ez en ella, escoge la ca ego ía y el ipo de anuncio que desea busca y pulsa en el
bo ón o an e con la lupa. Au omá icamen e se le mues an al usua io los anuncios de la
aplicación que cumplen con los l os in oducidos, y puede pincha en ellos pa a ob ene
más in o mación sob e los mismos.
En caso de que el usua io in oduzca l os que no cumpla ningún obje o de la aplicación
se le mos a a un mensaje in o mándole de la si uación, como se e en la e ce a cap u a
de la gu a 8.11.
66 Capí ulo 8. Diseño e implemen ación de Los 2Found
po sus coo denadas GPS y po consiguien e en e los dos luga es de los anun-
cios empa ejados. Pa a calcula el po cen aje a pa i de la dis ancia se hace uso
de una ó mula p opia que de uel e po cen ajes al os cuan o más pequeña es la
dis ancia en e los dos luga es egis ados y ice e sa. Es impo an e des aca
que en el caso de a a se de luga es de anspo e, lo que se calcula no es la
dis ancia ísica eal en e ambos luga es, sino una dis ancia i ual, ya que en el
caso de que los obje os de ambos anuncios se encuen en en la misma línea, la
dis ancia esul an e se á 0 me os, a pesa de que los obje os no se encuen en
en la misma es ación de la línea.
•
El núme o de días que han pasado desde que se publicó la pe dida del obje o
has a que se publicó el hallazgo: Se iene en cuen a es e ac o ya que hay más
posibilidades de que se a e del mismo obje o si han pasado pocos días desde
que se denunció su pe dida has a que se publicó su hallazgo.
Además de los c i e ios y ac o es explicados an e io men e, es impo an e esal a que
al y como se explicó en 7.7, Algo i mo de ma ching exis en dos ipos dis in os de ma ch,
uno local que busca co espondencias en e anuncios c eados en la aplicación y o o con
open da a que iene en cuen a los obje os publicados en los conjun os de da os abie os de
SCNF
.
Cabe des aca que la búsqueda ealizada en es e úl imo ipo de ma ch se e o zosamen e
limi ada po los da os que nos p opo ciona el open da a, es e ipo de p oblemas se comen an
de alladamen e en la sección 6.5, Incon enien es su gidos con el p o eedo de open da a
del capí ulo 6,
Open Da a SNCF
y
Google APIs
.
8.7. Diseño e implemen ación de la es uc u a de clases
A la ho a de ajus a el diseño de la base de da os a nues o p oyec o en And oid hemos
cons uido una es uc u a de clases siguiendo el sis ema de mapeo elacional de obje os
[23].
De es a mane a enemos una co espondencia exis en e en e las ablas de nues a base
de da os y los a ibu os del código o ien ado a obje os.
En cuan o a la in e az de usua io, la es uc u a de paque es y clases de nues o p oyec o
sigue un pa ón común, de al mane a que pa a cada is a de la aplicación exis e un
paque e con el nomb e en cues ión que con iene odas las clases y el código necesa io pa a
la ejecución y el co ec o uncionamien o de esa is a.
En e los se icios
PHP
que b inda nues o se ido se encuen an:
8.7. Diseño e implemen ación de la es uc u a de clases 67
announceClass.php
: Con iene odos los mé odos e e en es al uso y modicación de
la en idad anuncio, así como los enca gados de ealiza las consul as del ma ch de la
aplicación.
cha Class.php
: En es e caso con iene los mé odos enca gados de ges iona la en idad
cha , así como los mensajes de cada uno de ellos.
placeClass.php
: Es la clase p incipal de la en idad luga de la aplicación, con iene los
mé odos de inse ción y ob ención de luga es de la aplicación.
placeT anspo Class.php
: Se a a de uno de los es sub ipos de la en idad luga
exis en es en la aplicación, con iene los mé odos enca gados de la a a de luga es de
anspo e.
placeMapClass.php
: Es el segundo de los sub ipos de luga , es la enca gada de inse a
y ob ene los da os ob enidos cuando un usua io pulsa un luga geog áco en el mapa.
placeConc e eClass.php
: El úl imo de los es sub ipos de luga , al igual que
place-
MapClass.php
ges iona la inse ción y ob ención cuando un usua io indica un luga
de es e ipo.
ypeObjec Class.php
: Incluye odas las unciones pa a inse a u ob ene da os sob e
un obje o de cualquie ca ego ía exis en e en la aplicación.
use Class.php
: Con iene los mé odos de ac ualización, inse ción y ob ención de da os
e e en es a la en idad usua io.
En la gu a 8.17 podemos obse a la mayo ía de los a chi os
PHP
con enidos en
el se ido , en la p ime a cap u a obse amos que la es uc u a con iene cinco g andes
di ec o ios que ep esen an cada una de las en idades de nues a aplicación.
Den o de cada uno de ellos exis en dis in os a chi os
PHP
enca gados de ealiza
se icios muy conc e os, es os ealizan llamadas a las unciones con enidas en las clase
p incipal de cada en idad, como po ejemplo
announceClass.php
.
68 Capí ulo 8. Diseño e implemen ación de Los 2Found
(a) Se icios
PHP
del se ido (b) Se icios
PHP
del se ido
Figu a 8.17: Se icios
PHP
del se ido
En la gu a 8.18 podemos ap ecia la es uc u a de di ec o ios de nues o p oyec o
And oid, es á di idida en 3 g andes di ec o ios, el p ime o con iene el a chi o
mani es .xml
de la aplicación, en el cual es án las ac i idades de la misma así como núme os y nomb es
de e sión. Después enemos el di ec o io
ja a
que con iene odas las clases
.ja a
de la
aplicación, como emos en la p ime a y segunda cap u a de la gu a 8.18. Es a se subdi ide
a su ez en o os es g andes di ec o ios,
da abase
po un lado, que con iene odas las clases
enca gadas de a a con el se ido o con las
API
de los sis emas ex e nos,
en i ies
po
o o lado, donde es án las clases que ep esen an las en idades que exis en en nues a
aplicación, y po úl imo
los 2 ound
, el cual se subdi ide a su ez en dis in os di ec o ios
que con ienen oda la implemen ación de la in e az de usua io de la aplicación. Po úl imo
en la e ce a cap u a obse amos el di ec o io
es/layou
que con iene odas las is as de
la aplicación en o ma o
XML
.
(a)
da abase
y
en i ies
desplegados (b)
los 2 ound
desple-
gado (c)
es/layou
desple-
gado
Figu a 8.18: Di ec o ios del p oyec o And oid
8.8. Uso de AsyncTask 69
8.8. Uso de AsyncTask
A la ho a de ealiza las conexiones con la base de da os desde el código
Ja a
median e
PHP
, es necesa io el uso de ac i idades asínc onas. Es o se debe a que en And oid no se
pe mi e ealiza conexiones con la base de da os en el h ead p incipal, po lo que hemos
implemen ado es e ipo de ac i idades como clases in e nas p i adas den o de cada una de
las clases
Ja a
en las cuales hemos necesi ado ealiza una conexión con la base de da os.
Es e ipo de ac i idades ex ienden de
AsyncTask
y ienen es mé odos a implemen a ,
como podemos e en el ejemplo de la gu a 8.19.
Figu a 8.19: Implemen ación de AsyncTask
El p ime mé odo
OnP eExecu e
se ejecu a an es de ealiza la a ea implemen ada en
la ac i idad, como indica su nomb e, en nues o caso lo usamos pa a mos a le al usua io
un mensaje en o ma de diálogo in o mándole de que se es a ealizando una a ea y que
debe espe a .
En segundo luga ,
doInBackg ound
es donde se llama al mé odo que ealiza la conexión
con la base de da os, en es e caso
ndUse ByEmail
de la clase
DB_use
. En es e ipo
de clases se implemen an las ope aciones que ienen acceso a la base de da os y gua dan
co espondencia con las ya implemen adas en
PHP
en la pa e del se ido .
En cada una de ellas exis e un a ibu o p i ado de ipo
S ing
que con iene la u a
a la ca pe a donde se encuen an los che os co espondien es a cada clase, a su ez en
cada mé odo de la clase se especica el nomb e del che o a ejecu a en cada caso, y
se c ea un obje o JSON al cual se le pasan los pa áme os necesa ios pa a ealiza la
70 Capí ulo 8. Diseño e implemen ación de Los 2Found
consul a co espondien e en la base de da os, es ableciendo una comunicación median e el
mé odo
POST
, as es o se lee la espues a dada po el se ido y se ealiza la ope ación
co espondien e en cada caso.
Po úl imo, el mé odo
onPos Execu e
es el enca gado de ealiza las acciones que co-
espondan con la espues a dada po el mé odo
doInBackg ound
, en nues o caso conc e o
ambién lo usamos pa a ocul a el diálogo que le mos ábamos p e iamen e al usua io, una
ez ha e minado de ealiza se la a ea co espondien e.
Capí ulo 9
Disponibilidad de la aplicación
9.1. In oducción
En es e capí ulo se explica á la es uc u a de di ec o ios del código uen e de la aplica-
ción así como la disponibilidad de la e sión nal de la aplicación Los 2Found desa ollada
a lo la go de es e p oyec o.
9.2. Es uc u a de di ec o ios
Todo el código uen e de la aplicación es a disponible de o ma pública en un eposi o io
de
Gi Hub
[15] al que se accede median e el siguien e enlace:
h ps://gi hub.com/Da idZam/Los 2Found
En e odo el á bol de di ec o ios y che os disponibles caben des aca :
Backend se ido
: Con iene una copia de odos los a chi os
PHP
alojados en el
se ido , de es a mane a al publica los en el eposi o io se encuen an disponibles
pa a cualquie pe sona que desee consul a los.
app
: Es el di ec o io p incipal de la aplicación, con iene la ca pe a
s c/main
que
con iene a su ez po un lado odas las clases
.ja a
del p oyec o en la ca pe a
ja-
a/es/los 2 ound
así como odas las is as exis en es de la aplicación en o ma o
.xml
en la ca pe a
es/layou
.
LICENSE.md
: Es e che o con iene la licencia del código, que en es e caso es
Apache
2.0
[3].
README.md
: Po úl imo exis e un che o
eadme
que con iene in o mación sob e
dónde se puede desca ga la aplicación, así como a ias cap u as de la misma.
71
72 Capí ulo 9. Disponibilidad de la aplicación
Figu a 9.1:
Los 2Found
en el eposi o io de
Gi hub
9.3. Disponibilidad
La aplicación es á disponible en
Google Play S o e
[17], la hemos subido a la pla a o ma
pa a acili a la desca ga e ins alación po pa e de los usua ios, ya que e a uno de nues os
obje i os del p oyec o. Pa a ello ue necesa io c ea una cuen a de desa ollado de
Google
y usa la
Google Play Console
[16] pa a publica la aplicación en la ienda de aplicaciones
de
Google
. Se puede encon a buscándola po su nomb e,
Los 2Found
, en
Google Play
S o e
o bien en el siguien e enlace:
h ps://play.google.com/s o e/apps/de ails?id=es.los 2 ound
.
Figu a 9.2:
Los 2Found
en
Google Play S o e
Capí ulo 10
Conclusiones y abajo u u o
10.1. Conclusiones
T as naliza el p oyec o, conside amos que nues o obje i o p incipal, el cual consis ía
en desa olla una aplicación
And oid
a modo de ejemplo empí ico del po encial y de las
en ajas que nos b inda el open da a, se ha cumplido.
Además, uno de nues os obje i os pe sonales con es e p oyec o consis ía en desa olla
una aplicación uncional y pone la a disposición de los usua ios publicándola en la
Google
Play S o e
, lo cual hemos log ado.
Cabe des aca la dicul ad ex a su gida po la al a de conocimien os que eníamos
sob e la p og amación en
And oid
, ya que no habíamos p og amado en es e en o no p e-
iamen e.
Aun así, el ap endizaje de es e lenguaje ha sido una g a a expe iencia con la ayuda de
los u o iales de
And oid
[1] que han o mado una pa e esencial de nues a ins ucción,
así como el desa ollo de una aplicación pa a es a pla a o ma desde ce o.
También es ele an e odo lo que hemos ap endido sob e planicación de abajo, de-
nición de equisi os y odo aquello e e en e a la ges ión de p oyec os, ya que al en en a nos
con un p oblema eal nos hemos is o obligados a oma las medidas necesa ias pa a e-
sol e lo de la mejo mane a posible, consiguiendo así la p epa ación necesa ia pa a los
p oblemas que se nos p esen en en el u u o.
O o de los aspec os en los cuales hemos adqui ido conocimien os es odo lo e e en e
al diseño de la aplicación, hace in e aces que le esul en a ac i as, sencillas y amigables
al usua io no es una a ea ácil, y equie e ene en cuen a ac o es como la disposición de
los elemen os en las pan allas o el uso de los colo es en las mismas.
Uno de los g andes e os del p oyec o ha sido llega a una e sión nal de la es uc-
u a de la base de da os, ya que pasamos meses cambiando cons an emen e el diseño con
in ención de consegui eeja odos los equisi os del p oyec o de mane a co ec a, has a
que alcanzamos uno cuya implemen ación encajaba con las necesidades de la aplicación,
a pesa de es o hemos enido que ealiza modicaciones de ca ác e le e en el diseño en
algunos pun os del p oyec o.
73
74 Capí ulo 10. Conclusiones y abajo u u o
Es ele an e menciona que hemos abajado a lo la go de odo el p oyec o con un
eposi o io de
Gi Hub
, lo cual, a pesa de habe lo hecho p e iamen e en alguna ocasión a
lo la go de la ca e a, nos si e pa a consegui expe iencia con es e ipo de he amien as
cuyo uso hoy en día es á en auge en las emp esas y que segu amen e engamos que usa
en nues o u u o labo al.
Po úl imo, la a ea de co egi algunos allos que comp obamos as ene publicada
la aplicación en la
Google Play S o e
y di ulga ac ualizaciones con las co ecciones de los
mismos nos si úa en el papel de un desa ollado p o esional enca gado de asegu a que
su aplicación uncione de la mane a más ecien e y co ec a posible, si iéndonos de g an
expe iencia pa a el u u o.
10.2. T abajo u u o
A pesa de que el p oyec o ha du ado un cu so en e o, lo cual son ap oximadamen e
9 meses de abajo, no hemos podido elabo a odos los aspec os del p oyec o que nos
hubie an gus ado, po lo cual quedan como abajo u u o.
Uno de es os aspec os es la exis encia de una e sión web de la aplicación, ya que de
es a mane a se p opo ciona ía una ía al e na i a si el usua io po ejemplo ha pe dido su
elé ono mó il y no puede accede a la aplicación pa a publica la pé dida o hallazgo de
un obje o.
Al p incipio del p oyec o sopesamos es a posibilidad, pe o acabamos desca ándola
debido a que p e e íamos desa olla una e sión mó il po su mayo disponibilidad en e
a la e sión web, y no disponíamos del iempo sucien e pa a elabo a las dos e siones.
O o de los pun os pendien es consis e en amplia las ca ego ías de obje os incluidas en
la aplicación, ya que de es a mane a se da ía luga a una mayo p ecisión que se eeja ía
en un mayo acie o po pa e de la aplicación.
La azón po la cual incluimos las cinco ca ego ías exis en es en la aplicación p oce-
de de la in o mación publicada po un medio de comunicación [38] sob e los obje os más
ecuen emen e pe didos, es os son los cinco ipos de obje os que más se pie den es adís i-
camen e, po lo an o de es a mane a cub íamos la mayo pa e de los obje os pe didos o
encon ados solamen e con unas cuan as ca ego ías.
A pesa de es o, inclui o as ca ego ías de obje os como o denado es o opa con ibui-
ían a una mayo p ecisión del ma ching, ya que cualquie ipo de obje o que no encaje
en las ca ego ías disponibles de la aplicación se conside a den o de la ca ego ía
O o
, e-
niendo quizá demasiada a iedad den o de es a úl ima ca ego ía, lo cual puede causa
compa aciones en e o denado es y ga as o p endas de es i .
10.2. T abajo u u o 75
También se pod ían amplia los ipos de luga de anspo e de la aplicación, incluyendo
po ejemplo ae opue os al a a se de un ipo de luga es donde se pie den una g an
can idad de obje os odos los días, de es a mane a se es a ía cub iendo es e ipo de zonas
con mayo p ecisión, si po ejemplo el usua io pudie a especica en qué e minal o pue a
de emba que ha pe dido el obje o en cues ión.
En el caso de que se c ease un conjun o de da os abie os ela i o a obje os pe didos
en nues o país con un i mo de ac ualización y unas dimensiones simila es al que hemos
u ilizado de F ancia se pod ía implemen a en nues a aplicación, consiguiendo así una
mayo e ec i idad al dispone de más obje os con los que pode hace ma ch.
Po úl imo, ambién se ía deseable que la aplicación es u ie a disponible pa a o os
sis emas ope a i os como
iOS
, cub iendo de es a mane a al mayo núme o posible de
usua ios.
82 Capí ulo 12. Apo aciones indi iduales
ello, yo me enca gué de congu a los aspec os del se ido
Ubun u
que nos iban a hace
al a, como
MySQL
o
phpMyAdmin
, y la co ec a congu ación de los mismos.
Una ez congu ado el se ido mi compañe a y yo nos pusimos a implemen a los
a chi os
PHP
enca gados de ealiza la co ec a conexión con la base de da os, así como
de ealiza las consul as a la misma.
Pa a comp oba el co ec o uncionamien o de la conexión al se ido y su congu a-
ción una ez habíamos e minado de implemen a los a chi os del mismo, comenzamos a
p og ama en
And oid
las p ime as unciones
Ja a
y a implemen a , jándonos en nues os
p ime os diseños ealizados, los p ime os layou s de la aplicación en
XML
.
Respec o a la ealización de es as a eas, nos epa imos el abajo en e mi compañe a
y yo y, as una semana de iempo ap oximadamen e, conseguimos que el login y el egis o
de la aplicación unciona an de mane a co ec a.
Al mismo iempo que ealizábamos es a a ea yo me ocupe de diseña un logo y un
icono adecuados pa a la aplicación y pa a la pale a de colo es que habíamos escogido p e-
iamen e.
En es e pun o del p oyec o disponíamos de una e sión es á ica de la aplicación con las
p ime as pan allas diseñadas y uncionando, las semanas siguien es seguimos implemen an-
do uncionalidades de la aplicación y ealizando cambios en el diseño de la base de da os,
debidos a las necesidades que su gie on mien as implemen ábamos el código.
Así, du an e los meses de eb e o, ma zo, ab il y mayo nos dedicamos comple amen e
a la implemen ación del código de la aplicación ealizando cambios y subiéndolos a un
eposi o io de Gi Hub del p oyec o que eníamos mi compañe a y yo.
Cuando e minamos de implemen a la aplicación, decidimos subi la a
Google Play
S o e
, lo cual e a uno de nues os obje i os del p oyec o. Pa a ello, yo me egis é como
desa ollado de
Google
con un co eo y pagamos la cuo a de 25 dóla es al año.
Una ez hecho es o, gene é el a chi o
APK
mado digi almen e con una cla e median e
el IDE
And oid S udio
, y con el a chi o c ee una nue a e sión de la aplicación y su cha
co espondien e en
Google Play S o e
.
También ha sido necesa io as la publicación de la aplicación lanza algunas ac ualiza-
ciones con co ecciones de bugs exis en es en la p ime a e sión publicada, al enca ga me
yo de la a ea, u e que epe i el p oceso de gene a el
APK
y c ea una nue a e sión de
la aplicación, pa a después subi la a p oducción y pone la a disposición de los usua ios.
Po úl imo, du an e odo es e p oceso desc i o en los pá a os an e io es pa icipé en
la edacción de la memo ia y de las co ecciones que nos p opuso nues o di ec o du an e
el p oyec o.
Bibliog a ía
[1]
And oid De elope s
. (2008).
u l
:
h ps://de elope .and oid.com/guide/?hl=
es-419
.
[2]
Apache, Apache So wa e Founda ion
. (1995).
u l
:
h ps://www.apache.o g/
.
[3]
Apache License, Apache So wa e Founda ion
. (2004).
u l
:
h ps://www.apache.
o g/licenses/LICENSE-2.0.h ml
.
[4]
API, SNCF
. (2013).
u l
:
h ps://da a.snc .com/api/ 1/documen a ion
.
[5]
Décla a ions de pe es, SNCF
. (2015).
u l
:
h ps://da a.snc .com/explo e/
da ase /obje s- ou es-ga es/?so =da e
.
[6]
da a.go , U.S go e nmen
. (2009).
u l
:
h ps://www.da a.go /
.
[7]
Dis ance Ma ix API, Google
. (2016).
u l
:
h ps://de elope s.google.com/
maps/documen a ion/dis ance-ma ix/s a ?hl=es-419
.
[8]
Dis ancia euclidiana, Wikipedia
. (2018).
u l
:
h ps://en.wikipedia.o g/wiki/
Colo _di e ence
.
[9]
Fó mula del semi e seno, S ackO e Flow
. (2017).
u l
:
h ps://s acko e low.
com/ques ions/1502590/calcula e- dis ance- be ween- wo- poin s- in-
google-maps- 3
.
[10]
Fó mula del semi e seno, Wikipedia
. (2017).
u l
:
h ps://es.wikipedia.o g/
wiki/Fó mula_del_ha e sine
.
[11]
Find I - Los and Found
. (2013).
u l
:
h ps://play.google.com/s o e/apps/
de ails?id=alcanza .com. indi
.
[12]
Fo ma os disponibles de open da a
. (2009).
u l
:
h p://da os.gob.es/es/
dashboa d
.
[13]
Geocoding API, Google
. (2016).
u l
:
h ps://de elope s.google.com/maps/
documen a ion/geocoding/in o?hl=es-419
.
[14]
Geocoding API, Google
. (2017).
u l
:
h ps://de elope s.google.com/maps/
documen a ion/geocoding/in o?hl=es-419
.
[15]
Gi Hub, Ch is Wans a h
. (2008).
u l
:
h ps://gi hub.com/
.
[16]
Google Play De elope Console, Google
. (2016).
u l
:
h ps://de elope .and oid.
com/dis ibu e/console/
.
[17]
Google Play S o e, Google
. (2008).
u l
:
h ps://play.google.com/s o e?hl=es
.
83
84 Bibliog a ía
[18]
Inmuebles de alquile A agón
. (2011).
u l
:
h ps://play.google.com/s o e/
apps/de ails?id=es.plaa.and oid
.
[19]
JSON, Douglas C ock o d
. (2001).
u l
:
h ps://json.o g/json-es.h ml
.
[20]
Jus In Mind
. (2015).
u l
:
h ps://www.jus inmind.com/
.
[21]
Los O Found
. (2013).
u l
:
h ps://play.google.com/s o e/apps/de ails?
id=com. eckmapx.l .ac i i y
.
[22]
Los -Tag
. (2012).
u l
:
h ps://play.google.com/s o e/apps/de ails?id=ch.
aaap.los ag
.
[23]
Mapeo elacional de obje os, Wikipedia
. (2017).
u l
:
h ps://es.wikipedia.o g/
wiki/Mapeo_obje o- elacional
.
[24]
Ma e ial Design, Google
. (2014).
u l
:
h ps://www.ma e ial.io/
.
[25]
MissingX
. (2012).
u l
:
h ps://play.google.com/s o e/apps/de ails?id=com.
missingx
.
[26]
Moo i
. (2014).
u l
:
h ps://play.google.com/s o e/apps/de ails?id=com.
anzma e
.
[27]
MySQL, O acle Co po a ion
. (1995).
u l
:
h ps://www.mysql.com/
.
[28]
Obje s ou és, SNCF
. (2015).
u l
:
h ps://da a.snc .com/explo e/da ase /
obje s- ou es- es i u ion/?so =da e
.
[29]
Página web del ayun amien o de Mad id
. (2006).
u l
:
h p://da os.mad id.es/
.
[30]
Pa ea la Palma
. (2015).
u l
:
h ps://gi hub.com/pacom /Sende osLaPalma
.
[31]
Pha ma aba
. (2010).
u l
:
h ps://play.google.com/s o e/apps/de ails?id=
com.linsms.pha ma aba
.
[32]
PHP
. (2018).
u l
:
h ps://es.wikipedia.o g/wiki/PHP
.
[33]
Real Time Rome
. (2009).
u l
:
h p://senseable.mi .edu/wikici y/d
.
[34]
Reu ilización de la in o mación del sec o público, gobie no de España
. (2009).
u l
:
h ps://adminis acionelec onica.gob.es/pae_Home/pae_Es a egias/
pae_Gobie no_Abie o_Inicio/pae_Reu ilizacion_de_la_in o macion_en_
el_sec o _publico.h ml
.
[35]
Sma AppCi y
. (2015).
u l
:
h ps://www.esma ci y.es/comunicaciones/
sma appci y-app-pa a-ciudades-in eligen es
.
[36]
Socié é na ionale des chemins de e ançais, SNCF
. (2010).
u l
:
h ps://www.
snc .com/
.
[37]
S ackO e Flow
. (2008).
u l
:
h ps://s acko e low.com/
.
Bibliog a ía 85
[38]
Telemad id, No icias Mad id
. (2017).
u l
:
h p://www. elemad id.es/no icias/
mad id/no icia/me o-c ea-una-o icina-de-ges ion-de-obje os-pe didos-
en-plaza-cas illa
.
[39]
Ubun u, Canonical L d.
(2004).
u l
:
h ps://www.ubun u.com/
.
[40]
Wikipedia
. (2001).
u l
:
h ps://es.wikipedia.o g/
.