Академический Документы
Профессиональный Документы
Культура Документы
INGENIERO EN INFORMTICA
Dedicatorias
Dedicado a mi familia, que supo inculcarme constancia, capacidad de
sacrificio, madurez, tenacidad y exigencia. Gracias a ellos he conseguido la meta
acadmica que ms persistencia requiere y que ms trabajo ha costado. La mayor de
vuestras virtudes ha sido dejarme escoger el camino permitiendo que me equivocara,
para as recibir las enseanzas que da la vida.
Dedicado a Javier Guitin, una de las personas de las que ms enseanzas
acadmicas he aprendido y que con sus clases maestras, consigui alimentar
la
Agradecimientos
Agradecido a todos aquellos profesores que tienen vocacin y que mucho
ms lejos los lmites de su trabajo, mostraron intencin de inculcar sus conocimientos
sobre nosotros.
Agradecido a Marta Zorrilla y Diego Garca que me han guiado hasta aqu,
siempre intentando sacar el mejor partido de este proyecto y proporcionndome los
medios que requera en cada momento. Gracias por vuestra ayuda.
Agradecido a Daniel Quevedo Ortiz, compaero de carrera y amigo que me
ha ayudado enormemente en la consecucin de este proyecto. Sus amables
consejos, me han ayudado siempre a conseguir el mximo partido en cada una de las
partes de ste.
Agradecido a ti, que me proporcionaste el cario y la estabilidad necesaria en
un ao complicado. Tus palabras fueron la fuerza que me impuls a embarcarme en
este proyecto. Gracias por escucharme cada da y poner tu mejor sonrisa.
Agradecido a los esfuerzos econmicos del ministerio de educacin puesto
que han conseguido que un joven con recursos bajos haya conseguido acabar su
nica meta, que era la de ser licenciado.
Resumen
Las aplicaciones mviles han impulsado el comercio de los Smartphones y han
dado sentido a su uso. Es difcil imaginar el gran xito de estos dispositivos entre los
usuarios sin el atractivo de las apps, que han sabido romper el mercado y encontrar
ms aceptacin de la que cabra imaginar en un principio. Tanto es as, que se ha
hecho necesario tener al alcance de la mano en cualquier momento y desde
cualquier lugar, acceso a cualquier tipo de informacin.
Con este vertiginoso avance de la tecnologa y la aparicin de los nuevos
dispositivos mviles, la importancia de las aplicaciones basadas en geo-localizacin
est creciendo exponencialmente. La tecnologa actual ofrece un campo de
posibilidades y la infraestructura necesaria para el desarrollo de nuevas aplicaciones
que satisfaran, e incluso optimizaran, las necesidades del usuario a las que estn
enfocados dichos dispositivos que requieren estar conectados en todo momento.
El hecho ms desalentador es que existen actualmente al menos una decena
de sistemas embebidos en Smartphones y Tablets, lo cual desde el punto de vista del
desarrollador, hace complicada cualquier intencin de abordar el inicio de una
aplicacin multiplataforma que tenga la aceptacin suficiente para obtener un
amplio nmero de usuarios activos.
El almacenamiento de la informacin es otro de los problemas del sector de
desarrollo mvil. El almacenamiento web est experimentando un fuerte crecimiento
en el sector y el modo en el que est evolucionando la infraestructura de la nube est
dando lugar, como consecuencia, a una mayor demanda de productos de
almacenamiento. Esto llevado a las plataformas mviles otorgara innumerables
ventajas dadas las limitaciones de espacio en estos dispositivos.
Por todo lo anteriormente descrito, este proyecto pretende aunar varas
tecnologas con el fin de mostrar la capacidad de desarrollo que estas proponen y sus
ventajas puestas al servicio comn. Por ello, se desarrolla una aplicacin mvil
multiplataforma basada en geo-localizacin mediante tecnologas web, y a su vez, se
desarrolla un sitio web con el mismo propsito para proporcionar su descarga y registro
entre otros. La informacin residir en un servidor web permitiendo el acceso a la
informacin, tanto a la aplicacin mvil como al sitio web.
Palabras
clave:
Geo-localizacin,
app,
multiplataforma,
Abstract
Mobile applications have boosted the trade of Smartphones and have justified
their use. It is hard to imagine the success of these devices among users without the lure
of apps, that they have known how to break the market and find and incredible
acceptance. Now is necessary to have in your hands at any time and from anywhere,
access at any type of information.
With the rapid advance of technology and the emergence of the new mobile
devices, the importance of geo-location applications is growing exponentially. Today's
technology offers a range of possibilities and the necessary infrastructure to develop
new applications that would satisfy, and even would optimize, the requirements that
user needs to be connected at all times.
The most discouraging fact is that currently, at least, there are a dozen
operative systems embedded in smartphones and tablets, which from the point of view
of the developer, makes difficult any purpose to begin the development of
multiplatform application that has enough acceptances to get a large number of
active users.
The storage of information is another problem of the mobile development
sector. The web storage is experiencing a strong increase and the way its evolving the
clouds infrastructure is inducing, therefore, to an increase of the demand for storage
products. It, in the mobile platforms, would provide many advantages regarding the
limitations of space in these devices.
For the above described, this project aims to combine several technologies in
order to show the ability of the development proposed and to join their advantages.
Therefore, it develops a mobile application platform based on geo-location using web
technologies, and in turn, develops a website with the same purpose to provide some
actions like download or registration. The information will reside on a web server that
can be accessed from the mobile application and website.
ndice
Tabla de ilustraciones ................................................................................................................... 7
Captulo 1.
Introduccin
Especificacin de Requisitos
Diseo e Implementacin
Interfaz Grfica
Pruebas
Tabla de Ilustraciones
Captulo 1.
Figura 1-1. Estudio sobre el uso de Smartphone en el mercado espaol ......................... 9
Figura 1-2. Estudio sobre el tipo uso de Smartphone en el mercado espaol ................. 9
Figura 1-3. Porcentaje de aumento de ingresos en App. Fuente: Flurry Analitycs .......... 10
Figura 1-4. Implementacin bsica de desarrollo de PhoneGap ...................................... 10
Figura 1-5. Cloud Computing ..................................................................................................... 11
Figura 1-6. Grfico orientativo del sistema .............................................................................. 12
Figura 1-7. Esquema de la metodologa Extreme Programming ........................................ 15
Figura 1-8. Fases de la metodologa DPC ................................................................................ 16
Captulo 2.
Figura 2-1. Casos de uso usuario Invitado. ............................................................................... 18
Figura 2-3. Casos de uso usuario registrado en la aplicacin web. ................................... 19
Figura 2-2. Casos de uso usuario registrado en la aplicacin movil. .................................. 20
Figura 2-4. PhoneGap Build. Abstraccin del uso del framework ...................................... 25
Figura 2-5. Proceso de desarrollo de la aplicacin mvil. .................................................... 27
Figura 2-6. Popularidad de Wordpress en el sector CMS. ..................................................... 28
Figura 2-7. Maquetacin HTML ................................................................................................... 30
Captulo 3.
Figura 3-1. Diseo de arquitectura a alto nivel ....................................................................... 32
Figura 3-2. Diagrama del patrn arquitectnico Tres capas ........................................... 34
Figura 3-3. Aproximacin lgica del sistema ........................................................................... 35
Figura 3-4. Patrn de distribucin lgica de los componentes ........................................... 36
Figura 3-5. Distribucin lgica de los componentes .............................................................. 36
Figura 3-6. Tipos de Arquitecturas de desarrollo en aplicaciones mviles ........................ 37
Figura 3-7. Arquitectura en el desarrollo de la aplicacin mvil ........................................ 38
Figura 3-8. Diagrama de clases JS API ...................................................................................... 39
Figura 3-9. Arquitectura en el desarrollo de la aplicacin mvil. ....................................... 40
Figura 3-10. Reaccin ante eventos nativos ........................................................................... 41
Figura 3-11. Diagrama de relacin de tablas ......................................................................... 43
Figura 3-12. Abstraccin de implementacin de la Web Layer ......................................... 44
Figura 3-13. Diagrama de secuencia de peticin de registro ............................................. 45
Figura 3-14. Diagrama de secuencia de inicio de sesin y recepcin de tareas ........... 47
Captulo 1. Introduccin.
1.1
Motivacin y antecedentes
Figura 1-1. Estudio de Empirica, sobre el uso de Smartphones en el mercado espaol. [34]
Figura 1-2. Estudio de Empirica, sobre el tipo uso de Smartphones en el mercado espaol. [34]
10
Tambin cabe destacar el rol que est tomando Google en el mbito de las
aplicaciones mviles con su sistema operativo Android. Actualmente, Google se halla
desarrollando intensamente APIs con fines de uso pblico en su plataforma mvil por
excelencia. Esto hace que todas las aplicaciones basadas en geo-localizacin
escojan Android por ser Google Maps el mejor preparado para el efecto.
Este proyecto se enmarca en el desarrollo de aplicaciones mviles, y en
concreto, en la creacin e implementacin de una aplicacin basada en geolocalizacin mediante la herramienta PhoneGap, que es el framework multiplataforma
ms reciente y completo. A su vez, las interesantes ventajas del Cloud Storage
provoca la implementacin de un sitio web y unos servicios que permitan el acceso
desde ambas aplicaciones al uso de la informacin alojada en el servidor de
almacenamiento.
11
1.2 Objetivos
Estudio de la API Google Maps v3. API que permite implementar su sistema
de mapas y geo-localizacin en entornos basados en tecnologas web.
12
13
Los equipos de desarrollo mvil suelen ser integrados por pocas personas. No
ms de ocho o diez desarrolladores entorno a una misma aplicacin o, incluso,
un nico desarrollador como es en este caso.
usuarios, en los distintos markets, sobre aplicaciones que aprecien la frecuente mejora
de la aplicacin para mantenerla viva y actualizada.
Particularmente, se ha utilizado una metodologa XP (Extreme Programming)
para el desarrollo de la aplicacin mvil. Esta permite que los cambios de requisitos
sobre la marcha sean un aspecto natural, inevitable e incluso deseable en el desarrollo
del proyecto. Proporciona la capacidad de adaptacin a los cambios de requisitos en
cualquier punto de la vida del proyecto demostrando que es una mejor aproximacin
y ms realista, que intentar definir todos los requisitos al comienzo del proyecto e
invertir esfuerzos despus en controlar los cambios en los requisitos.
14
Pruebas
unitarias
continuas,
frecuentemente
repetidas
automatizadas,
Refactorizacin del cdigo, es decir, reescribir ciertas partes del cdigo para
aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento.
15
Programacin:
Entregar
el
producto
final
de
forma
que
sea
100%
16
Los funcionales describen la funcionalidad y/o servicios del software, entre los que
se distinguen:
17
2.2.1
Requisitos
de Invitado
2.2 Requisitos
funcionales
La Figura 2-1 define con casos de uso lo que este tipo de usuario requiere de la
herramienta:
A la vista de los casos de uso, los requisitos textuales de la aplicacin web son los
siguientes:
siguientes:
18
2.2 Requisitos
funcionales
2.2.2
Requisitos
de Usuario Registrado
herramienta web:
19
Crear nuevas tareas, siempre definiendo una ubicacin para sta. Otras
caractersticas tambin son necesarias como la fecha, el titulo
Borra tareas.
Agregar una ubicacin, la cual podr ser definida por la bsqueda de la posicin
actual mediante GPS y/o red, o mediante la insercin de la direccin
manualmente.
Notificar aquella tarea cercana, dentro del rango definido por el usuario, al
usuario mientras est activa la aplicacin.
herramienta mvil:
20
2.2.3
Requisitos
de Sistema
2.2 Requisitos
funcionales
ptima:
o
Eficiente:
o
Interoperable:
o
Deber ser capaz de gestionar la conexin con todos los servicios web
disponibles, que permiten una completa operabilidad.
21
Segura.
o
Asegurar
un
mantenimiento
sencillo,
facilitar
la
escalabilidad
aumentar la seguridad.
Control de errores. Evitar que la herramienta se bloquee por un mal uso de esta,
advirtiendo de los errores que se han producido y aportando soluciones. Alguno
de los errores pueden ser:
o
Fallos internos del aplicativo, fallos software en caso del dispositivo mvil o
HTML en caso de la web.
22
2.2
2.3 Requisitos funcionales
no funcionales
2.3.1 Requisitos de producto
Las aplicaciones web y mvil de Geoapps-project.com estn orientadas a
ofrecer una accesibilidad que permita que los servicios que ofrecen, puedan
ejecutarse en dispositivos con configuraciones, funcionalidades y sistemas diferentes,
haciendo posible la utopa de la multiplataforma y la unificacin de lenguajes de
programacin. Este requisito es la parte central de la estructura del proyecto, con el fin
de invitar a desarrollar aplicaciones mviles multiplataforma accesibles desde
cualquier dispositivo o pc.
La confiabilidad en el almacenamiento remoto, est enfocada en el marco
Cloud Computing y debe ser analizada positivamente. Las ltimas tendencias se
inclinan por esta tecnologa que est en auge ya que permite, entre otras cosas,
acceder a la informacin cuando y desde donde se quiera.
Otro requisito a tener en cuenta es la fiabilidad del sistema de gestin de la
base de datos. Si una aplicacin es accesible simultneamente y los datos son
propietarios del usuario, es decir modificables, las transacciones debern ser
consistentes.
Como toda aplicacin que se precie en los markets de aplicaciones
conocidos, la sencillez es la nota predominante. Es por esto que la aplicacin mvil
desarrollada deben centrarse en ser sencilla e intuitiva,
proporcionando una
23
24
25
Una web
que presente estas tres tecnologas har de ella una web ms rica, completa,
interactiva, atractiva e interesante que las que se desarrollan hoy da debido a que
ofrece posibilidades infinitas con grficos e imgenes vectoriales, fotos, videos y otros
elementos. Para una mejor comprensin, se describen brevemente estas tecnologas:
HTML5. La ltima versin de HTML, el cual constituye el lenguaje bsico en
utiliza para dar forma a los sitios web. Extrapolado al mismo ejemplo
anterior, en este caso el CSS constituira la pintura, los muebles y la
finalizacin esttica de la casa.
JavaScript. Lenguaje de programacin que permite al cliente hacer
Esto
permitir
crear
aplicaciones
generales
multiplataforma,
que
posteriormente podrn ser adaptadas con mucha facilidad a cada sistema mvil.
26
Los dos pasos iniciales son simples y se cien a la tcnica habitual de desarrollo
en entornos web. Edicin de estructura HTML, creacin de hoja de estilos CSS, uso del
lenguaje de script JavaScript y test en navegadores web montados sobre un servidor
en localhost. Los dos siguientes se integran ya en el proceso de adicin de uso
hardware cuyo entorno de desarrollo implica el uso de la herramienta Eclipse con su
simulador Android SDK, para probar funcionalidades nicas en cada uno de los
sistemas mviles.
27
28
XHTML o HTML.
29
30
Ms
detalladamente, nos ofrece una infraestructura con la que tenemos mucha mayor
facilidad para crear aplicaciones complejas del lado del cliente, como por ejemplo,
en la creacin de interfaces de usuario, efectos dinmicos, aplicaciones que hacen
uso de Ajax etc.
31
32
33
34
Es importante destacar que los lmites entre las capas son lgicos, por lo que es
posible ejecutar las tres capas en la misma mquina. Lo importante es que el sistema
est claramente estructurado y que hay una buena planificacin de los lmites entre
las diferentes capas.
La distribucin lgica que marca el proyecto es la que sigue la pauta del
patrn de distribucin orientada a la web. Esta es un caso particular de la distribucin
del componente de la capa de presentacin ya que la particularidad de este caso es
la utilizacin de tecnologa web en la capa de presentacin. Se distribuye el
componente en dos subcomponentes, uno reside en el cliente, y el otro en el servidor.
o El componente a nivel del cliente es un cliente web tradicional (web browser).
o El componente a nivel del servidor consiste en un servidor web capaz de
generar contenido dinmico, junto a la implementacin de este contenido.
Esta disposicin orientada a la web, se puede ver reflejada en la Figura 3-4 que
se muestra a continuacin.
35
36
Las aplicaciones hbridas estn construidas de tal manera que son capaces de
ejecutar cdigo nativo y de interpretar contenido web, de forma que el usuario ve
conjuntamente informacin de los dos tipos. Adems, las pginas HMTL pueden
provenir de cualquier servidor web o residir en el propio dispositivo. De esta forma
disponemos de lo mejor de cada arquitectura. Por ejemplo, una aplicacin hbrida
permite, como en el caso de nuestra aplicacin mvil, presentar en pantalla una
pgina HTML5 sobre la que se muestra la posicin actual proporcionada por el GPS. El
37
38
39
40
41
42
wp_post. Tabla que almacena las entradas (posts) que son guardados en esta
tabla. (Post)
43
44
permitiendo
interoperabilidad,
ubicuidad,
rendimiento
soporte
de
mantenimiento eficiente.
Aun as, definirlo como un servicio web es un error, debido a que la definicin
de Web Service integra una serie de estndares de implementacin que no se han
llevado a cabo. Es por esto que esta capa intermedia presente en la capa de
persistencia se define como API o Web Layer, la cual proporciona la capacidad a la
aplicacin de: cerrar/abrir sesin en la aplicacin, conectar/desconectar de la base
de datos, tomar datos de perfil, registrar usuario y recibir/guardar tareas como se
muestra en la Figura 3-12.
45
46
47
48
49
50
Captulo 4. Interfaz
4.1
5.1Interfaz grfica de la aplicacin
Los resultados de la interfaz grfica y su implementacin final estn
desarrollados en el sistema operativo Android. De esta manera, la aplicacin despus
de ser descargada como fichero comprimido .apk y ejecutable en Android, puede
ser instalada para su utilizacin. Las imgenes utilizadas a continuacin son sobre el
dispositivo Huawei 3G Ascend con la versin Android 2.3.6. Una vez instalada,
podremos iniciarla pulsando sobre el botn de la aplicacin con nombre RemindMe.
51
En caso que el inicio de sesin produzca algn tipo de error, ya sea un fallo en
la transaccin, en el envo de datos, o en la autenticacin del usuario, se notificar
mediante el sistema de notificacin emergente del propio sistema nativo, en este caso
Android. En caso de no estar registrado en la BD, se podr registrar a travs de otro
formulario en la propia aplicacin, pulsando el botn Registrarse. De la misma
manera que la pantalla anterior, el formulario est protegido contra cualquier mal uso
de este o fallo en la comunicacin. Vase Figura 4-4.
52
53
sonido
beep
vibracin
pulsando
sobre
el
checkbox
54
55
Se podr pulsar sobre cada marcador para observar que tarea est asignada y
mostrar un dialogo que indique la informacin necesaria, como ttulo, notas,
prioridad y metros a los que se encuentra.
Satlite
Mapa
callejero
con
imgenes satlite.
acceder
esta
utilidad
56
Podremos tambin pulsar sobre la tarea de la lista que deseemos y ver su informacin
de forma extendida, vase en la figura 4-11.
57
58
Buscar direccin. Nos llevar a otra pantalla, que nos permitir introducir
una calle y nos proporcionar direcciones interpretables por la
aplicacin lo ms aproximadas. Tras definir la ubicacin aparecer un
mapa con un marcador que se posicionar en la ubicacin propuesta.
Si es correcta, se podr pulsar sobre guardar y almacenar esa
ubicacin. Vase Figura 4-14.
59
60
4.2 Resultado
Software utilizado
4.2
de la Interfaz grfica de la aplicacin web
La aplicacin web est implementada y subida a un dominio que se
corresponde con la direccin http://www.geoapps-project.com, y es accesible sin
necesidad de registro. Por ello, se realizar una descripcin somera de su interfaz.
Al acceder a la aplicacin web, se observan cuatro secciones, como se
observa en la Figura 4-16. Estas se corresponden con una pgina de contacto e
informacin sobre el sistema, dos pginas sobre ideas futuras de desarrollo,
y por
61
62
Captulo 5. Pruebas
5.1 Evaluacin y pruebas
Testear una aplicacin es un proceso muy efectivo para encontrar fallos, pero
no para demostrar la ausencia de ellos. Este es habitualmente uno de los dolores de
cabeza ms comunes para los desarrolladores de apps.
Todos sabemos que hay miles de modelos de mvil y Tablets diferentes. En el
mundo Apple, solamente hay unos pocos, pero en el mundo Android hay literalmente
miles de dispositivos con caractersticas diferentes, sin contar el resto de plataformas
para los que est desarrollado esta web, pero el uso de un entorno de desarrollo de
terceros (PhoneGap) fragmenta la pelea por universalizar el funcionamiento de una
app en todos los dispositivos posibles.
En el caso de la web, existen herramientas y utilidades SEO (Search Online
Optimization) online, para hacer pruebas, que proporcionan todo tipo de informacin
sobre una pgina, un dominio, su optimizacin SEO, su repercusin social etc.
Aun as, se han probado los flujos de funcionamiento habituales, puesto que
testear todas las posibles combinaciones sera innecesario si formalizamos un reporte
de bug en nuestra aplicacin. Como consecuencia de esto, se utiliza una estrategia
de testing inspirada en box-approach que se divide en dos partes:
Caja Negra: Desde fuera la funcionalidad solo nos importa lo que hace,
no como lo hace.
63
soporte
multiusuario.
Servicios. Las apps actan como clientes por tanto es necesario validar
5.2
Tecnologas utilizadas para las pruebas en el
4.2 Software
Software y
utilizado
sistema.
Durante el desarrollo de la aplicacin y cada una en su ciclo de vida
correspondiente, hemos utilizado las siguientes herramientas que han ayudado a
testear la aplicacin en la medida anteriormente descrita.
64
5.3 Software
Control de
versiones
4.2
utilizado
Cdigo fuente
Manuales de usuario
Prototipos intermedios
Es por esto, que dado que los elementos software van evolucionando a lo largo
del desarrollo se requiere:
Versin
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
10.0
11.0
12.0
13.0
14.0
15.0
16.0
17.0
18.0
19.0
20.0
21.0
Cambios
Maquetacin HTML.
Introduccin de diseos CSS.
Introduccin de lenguaje JavaScript.
Diseo XHTML y funciones AJAX.
Implementacin de jQueryMobile.
Diseo beta de aplicacin en inicio de sesin y registro.
Incluye conexin con base de datos remota.
Incluye conexin con API de Google Maps
Alertas y ajustes de notificacin beep y vibracin.
Incluye detector de GPS encendido.
Nuevo diseo en pgina principal, Twitter y aviso de notificacin.
Notificaciones pop-up y control de flujo de uso.
Diseo de tareas actualizado.
Inclusin de fotos e imgenes en tareas.
Inclusin de contactos en tareas y navegacin en mapa
Cambio de diseo en bsqueda de direcciones.
Diseo mejorado y recordar contrasea
Loaders de espera (Iconos de carga).
Diseo de notificacin y diseo responsable.
Condiciones de usuario.
Primera beta de la aplicacin consistente.
Figura5-1. Control de versiones y cambios de la aplicacin mvil.
65
66
5.2
6.3 Encriptacin
Encriptacin de
de cons
contraseas en el CMS Wordpress
Desde la versin 2.5 de Wordpress, la encriptacin de las contraseas est
basada en Phpass. Este es una herramienta de cifrado de contraseas de dominio
pblico para usos en aplicaciones PHP. La manera de manejar esta herramienta es
algo confusa y tiene un alto nivel de desinformacin en contraposicin a su anterior y
dbil compaera, el algoritmo Md5. Bien es cierto que la nueva solucin que plantea
Wordpress para potenciar la seguridad en su entorno es incomparablemente ms
potente, pero esto ha supuesto un escollo en el desarrollo de este proyecto.
El problema surgido ha sido el siguiente. La base de datos, est controlada por
un gestor de contenidos que trata a los usuarios de una forma tan ordenada y segura
como compleja y poco difundida. El problema es que no se cont en un principio con
el inicio de sesin y registro de usuarios fuera del entorno Wordpress, que
posteriormente se tuvo que desarrollar para conectar a los usuarios de la aplicacin
mvil con los datos almacenados en la BD y restringidos para usuarios registrados.
Este hecho, propici que se investigara la clase maestra que proporciona
Wordpress para tratar su encriptacin interna. La informacin encontrada fue escasa,
pero finalmente se consigui desencriptar y encriptar mediante este nuevo mtodo,
haciendo as posible la interconexin entre Wordpress, la BD y mi aplicacin mvil y as
finalmente, aprovechar las virtudes que me ofrecan cada una de ellas.
5.2
de cons
6.4 Encriptacin
Dominio y servidor
web
67
5.2
deremota
cons Cross Domain
6.5 Encriptacin
Comunicacin
Para comunicar la aplicacin mvil con la base de datos remota, hay ciertas
restricciones basadas en el Cross Domain Calls. Este es un mecanismo de seguridad en
navegadores actuales. Evitan que un script (XMLHttpRequest de AJAX) de una pgina
web puedan acceder a un servidor web diferente del que residen.
La solucin fue agregar, a esa interfaz de comunicacin, una poltica de
dominio que permitiera el acceso a cualquier host externo que haga peticiones. Esta
medida quiebra en cierta medida la seguridad del dominio, ya que cualquier usuario
con ciertos conocimientos puede realizar peticiones con objetivos malintencionados.
Por esto, se toma la decisin de fortalecer la seguridad ante tal contratiempo,
codificando los datos enviados y recibidos entre app y BD mediante encriptacin
JSON. Esta solucin es habitualmente usada y recomendada en conexiones pasarela
mediante la tecnologa AJAX Calls, una de las que implementa la aplicacin mvil.
68
5.7
de dispositivos
6.7 Falta
Dispositivos
mviles
69
Captulo 7. Conclusiones
El objetivo principal de este proyecto fin de carrera era crear e implementar la
infraestructura necesaria para el desarrollo de aplicaciones mviles basadas en geolocalizacin multiplataforma, y probar su implementacin en el sistema mvil Android
mediante el framework PhoneGap desviando su almacenamiento a una base de
datos alojada en un servidor web. Para su consecucin, se han realizado todas las
fases del ciclo de vida software, esto es, la captura de requisitos, anlisis, diseo e
implementacin, evaluacin y pruebas tanto del sitio web www.GeoApps-project.com
como de la aplicacin mvil
propuestos inicialmente.
En su diseo se ha tenido en cuenta que el perfil de usuarios es variado, por lo
que se ha realizado un gran esfuerzo para que la interfaz sea intuitiva y no requiera
conocimientos adicionales para su uso. Adems se ha desarrollado con un framework
multiplataforma de modo que la aplicacin pueda implementarse en un gran nmero
de dispositivos.
La geo-localizacin es la tecnologa en la que se apoya esta aplicacin.
Mediante la API de Google Maps v3 y las caractersticas hardware de la mayora de
los dispositivos mviles actuales, se ha creado una aplicacin mvil capaz de localizar
la posicin del usuario, crear tareas basadas segn su ubicacin, definirlas en el mapa
y mostrar notificaciones dependiendo de la proximidad, prioridad y fecha al conjunto
de tareas definidas. En definitiva, la aplicacin tiene por objeto optimizar el tiempo del
usuario respecto a tareas no prioritarias, definidas en el espacio, que permitan
completarlas por medio de notificaciones con el mnimo consumo de tiempo.
El sitio web responde a las necesidades bsicas con las que fue especificado.
Ofrece un diseo similar al de la aplicacin mvil y tiene la funcin de publicitar el
sistema implementado y, acceder a los mismos datos a los que se muestran desde la
aplicacin mvil para garantizar totalmente su uso desde cualquier dispositivo sea o
no mvil.
Generalmente, el almacenamiento interno disponible en estos dispositivos
mviles es reducido y caro, siendo habitualmente usado con motivos multimedia.
Adems, no se garantiza la seguridad ante prdidas o daos, debido a que el mvil se
puede perder o romper en cualquier momento puesto que su uso es continuo y es
cada vez es ms importante poder acceder a los datos desde cualquier plataforma.
Es por esto que, con objetivo de garantizar la disponibilidad de la informacin desde
70
PHP. Lenguaje utilizado en el desarrollo web. Es, adems, utilizado en la API que
conecta la aplicacin mvil a la base de datos, y forma parte del desarrollo del
sitio web.
AJAX. Que incluye HTML, XHTML, DHTML, XML con DOM, el objeto XMLHttpRequest,
CSS y JavaScript, como tecnologa RIA para implementar la Interfaz web y mvil
en el entorno de programacin y desarrollo Eclipse.
El sistema implementado en este proyecto ofrece una funcionalidad
71
72
73
74
Bibliografa
1. Pilgrim, Mark. (2010). HTML5 Up and Running. OReally Google Press.
2. Aubry, Christophe. (2012). HTML5 + CSS3. Revolucione el diseo de sus sitios web.
Editorial ENI.
3. Gauchat, J. (2012) El gran libro de HTML5, CSS3 y JavaScript. Marcombo ediciones
tcnicas.
4. Perry, B. W. (2006). AJAX. Los mejores trucos. Anaya Multimedia.
5. Deitel, H. M., & Deitel, P. J. (2008). Ajax, Rich Internet Applications y desarrollo Web
para programadores. Anaya Multimedia.
6. Smith, D. & Negrino, T. (2009). Javascript and Ajax for the web: Visual QuickStart
Guide. PeachPit Press Pearson Education.
7. Heilman, C. (2006). Beginning JavaScript with DOM Scripting and AJAX: From
Novice to Professional. Aprress.
8. Prochon, S.(2012). Android: Las bases para un buen inicio en el desarrollo para
Smartphones y Tabletas. Ediciones ENI.
9. Ostrander, J. (2012, July) Android UI Fundamentals: Develop & Design. PeachPit
Press Pearson Education.
10. M. Wargo, J. (2012). PhoneGap Essentials: Building Cross-platform Mobile Apps.
Pearson Education.
11. Holdener, A. (2011). HTML5 Geolocation. OReilly Media.
12. Neil, T. (2012). Mobile Design Pattern Gallery: Ui Patterns for mobile applications.
OReally Media.
13. Lecomte, S. & Boulanger, T. XML prctico: Bases esenciales, conceptos y casos
practicos. Editorial ENI.
14. Philips, J. & Davis, M. (2007). Learning PHP & MySQL: Step-by-step Guide to creating
database-driven WebSites. OReally.
15. Cobo,A., Gomez, P., Perez, D. & Rocha, R. (2005) PHP y MySQL: Tecnologas para el
desarrollo de las aplicaciones web. Ediciones Diaz Santos.
16. Erickson, J., & Siau, K. (2008). Web Services, Service-Oriented Computing, and
Service-Oriented Architecture: Separating Hype from Reality. Journal of DataBase
Management, 42-54.
75
(n.d.)
MSDN
SQL
Server.
Retrieved
from
http://msdn.microsoft.com/en-us/library/bb545450.aspx
30. NetBeans. (n.d.) NetBeans IDE. Retrieved from http://netbeans.org/
31. PhoneGap.
(n.d.)
PhoneGap
Documentation.
Retrieved
from:
http://docs.phoneGap.com/en/2.8.0/index.html
32. JQueryMobile.
(n.d.)
JQuery
Mobile
API
Documentation.
Retrieved
from:
http://api.jquerymobile.com
33. Android
SDK.
(n.d.)
API
Guides.
Retrieved
from:
http://developer.android.com/guide/topics/ui/index.html
76
(n.d.).
Codex
es:DataBase
Description.
Retrieved
from:
http://codex.wordpress.org/es:Database_Description
77