Desarrollo de Una App
Desarrollo de Una App
Desarrollo de Una App
Agradecimientos:
A mi mujer, por el apoyo durante todos estos semestres, sin ella hubiera sido
prácticamente imposible compaginar estudios con trabajo.
2
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
CONTENIDO
1 INTRODUCCION ........................................................................ 6
4. INFRAESTRUCTURA ............................................................... 14
4.1 ELEMENTOS HARDWARE ................................................ 14
4.2 ELEMENTOS SOFTWARE ................................................. 15
4.3 RECURSOS WEB ............................................................... 16
7. DOCUMENTACIÓN .................................................................. 19
7.1 SISTEMA OPERATIVO: ANDROID .................................... 19
7.2 REQUERIMIENTO FUNCIONALES .................................... 21
7.2.1 DESCRIPCION BASICA .............................................. 21
7.2.2 SEGURIDAD ............................................................... 22
7.3 REQUERIMIENTO NO FUNCIONALES .............................. 23
3
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
8. IMPLEMENTACION ................................................................. 45
4
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
11. BIBLIOGRAFIA........................................................................ 63
5
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
1. INTRODUCCION
6
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
En nuestro pais es incluso mayor, donde se concentra más del 90% de los
terminales con sistema Android.
7
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Muchas de estas aplicaciones ofrecen los productos en venta directa con precio
fijo y otras en modo subasta, en el caso de las primeras además facilitan la
mensajeria instantanea para la comunicación entre usuarios y busqueda de
articulos por localización geografica.
En el caso de la app a desarrollar, se basará exclusivamente en los aparatos
electronicos ya citados, en donde se facilitará información detallada de los
dispositivos mediante enlaces a la web de fabricante, y así analizar y comparar
entre distintas marcas y modelos.
El usuario tendrá la posibilidad de visualizar los articulos que han incluido otras
personas y ponerse en contacto con ellas mediante un chat y si llegan a un
acuerdo realizar el pago por la plataforma o utilizar la opción de localización para
conocer la distancia entre los interesados, además puede dar de alta tantos
productos como necesite.
Despues de bastantes años como usuario activo de este tipo de aplicaciones,
considero que no hay nada similar en el mercado que reuna todas las
funcionalides descritas en un solo espacio.
A continuación muestro una grafica con el número de descarga de aplicaciones
de este mismo segmento hasta Marzo de 2017 en nuestro pais.
8
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Como se puede comprobar este tipo de apps son muy demandadas y son
relativamente nuevas en el sector, en muchos casos no superan los dos o tres
años de vida.
2.1. OBJETIVOS
El objetivo principal es afianzar los conocimientos adquiridos en el grado y
aprovechar el TFG para adquirir y poner en práctica otros que no he tratado hasta
ahora, con ello avanzar en el desarrollo de aplicaciones en la plataforma
ANDROID y conseguir realizar una con complejidad media-alta.
En cuanto a la finalidad de la propia herramienta es lograr una app de fácil acceso
a usuarios móviles, que les ayude a la compra de nuevos aparatos electrónicos
y a la venta de los que ya no utilicen o quieran desprenderse.
En ese sentido cualquier persona que se descargue la aplicación en pocos pasos
podrá publicar su anuncio.
En cuanto a las fases con las que cuenta el proyecto, son principalmente tres.
La inicial que es el diseño y arquitectura, donde se realizan los primeros
bocetos y la relación entre los diferentes componentes y pantallas, lo que dará
lugar al prototipo, también se mostrarán los casos de uso.
La siguiente, que es la implementación. Con la primera parte finalizada y con el
apoyo de toda la documentación de desarrollo de Google se realizará el código
desde cero añadiendo los comentarios necesarios para explicar el procedimiento
usado.
9
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
2.2. FUNCIONALIDADES
El proyecto, como ya se ha indicado, consiste en una plataforma de informacion
y compraventa de productos electronicos de pequeñas proporcionados llamados
conmumente Gadgets.
10
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
3.1 ENTREGAS
Las fechas de entregas fijadas coinciden con las 4 PEC que se indican en el
calendario y son:
11
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
12
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
PEC3: IMPLEMENTACIÓN
ENTREGA FINAL
13
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
3.3 CRONOGRAMA
A continuación, pasó a detallar las tareas y planificación con sus
correspondientes hitos con entregas parciales. El tiempo a dedicar se ha medido
en horas y por tipo de día (laboral o festivo), en el primero siendo 2 h/día laboral
y en el segundo 5h/día festivo.
4. INFRAESTRUCTURA
Para el proyecto se usarán distintos recursos, una parte con infraestructura
propia y otra con herramientas en cloud o freeware, en los dos casos además
en:
14
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Herramienta Tareas
Android Studio 2.3.2 Entorno de desarrollo integrado oficial para la
plataforma Android.
15
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Herramienta Tareas
Google Firebase Plataforma para el desarrollo de apps para
Android que facilita entre otras cosas, mensajería
en la nube, autenticación, base de datos en
tiempo real, almacenamiento, hosting,
configuración remota, testeo o también informes
de incidencias.
16
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
5. LENGUAJES INCLUIDOS
En este caso el lenguaje utilizado es Java, orientado a objetos y uno de los más
populares en uso, particularmente para aplicaciones de cliente-servidor de web.
Esté será la base del aplicativo, se usarán librerias propias del lenguaje como
las que suministra Android.
XML es otro lenguaje a emplear en el proyecto, muy similar a HTML pero su
función principal es describir datos, es un formato que posibilita la lectura de
datos a través de diferentes aplicaciones, para este proyecto servirá de interfaz
gráfica para la configuración de las activities.
6. POSIBLES RIESGOS
En cualquier proyecto pueden surgir eventualidades, por ello hay que preveer y
adelantarse a un problema que origine un paron y no nos deje llegar a la
finalización de nuestro cometido. Estos riesgos pueden ser por factores internos,
relacionados con el desarrollo de la propia aplicación y su dificultad, o pueden
ser externos, como situaciones procedentes del entorno familar, laboral,etc..
En ese sentido, se incluye una tabla con una relación de riesgos clasificados por
su importancia:
17
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
que
compromete
el proyecto.
18
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
7. DOCUMENTACION
En este punto se facilitará con detalle un analisis del proyecto, se empezará con
la arquitectura del sistema base, los requerimientos funcionales y no funcionales,
con los casos de uso, diseño técnico y por último, con el prototipo.
19
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Aplicaciones
Se incluyen distintos tipos de aplicativos, desde gestores de correo hasta
navegadores, calendarios, mapas,etc. Todas ellas son escritas en el lenguaje
de programación Java.
Framework de Aplicaciones
Los desarrolladores tienen acceso completo a los APIS del framework que se
usan por las aplicaciones base. La arquitectura está diseñada para ayudar y
sintetizar la reutilización de componentes; todas las aplicaciones pueden difundir
sus capacidades y gracias a esto favorecer a otros programadores.
Android Runtime
Android incorpora una serie de librerías que proporciona una gran parte de las
funcionalidades que hay disponibles en las librerías base del lenguaje de
programación Java.
Cada aplicación Android lanza su proceso, con su instancia de la máquina virtual
Dalvik. Dalkiv fue escrito para que un dispositivo pueda correr en distintas
máquinas virtuales de la manera mas eficaz.
Librerías
Android tiene un monton de librerías C/C++ utilizadas por diversos componentes
del sistema Android. Algunas son: implementación librería C standard, librerías
de medios, librerías de gráficos, 3d, SQLite, entre muchas otras.
Núcleo - Linux
Android es un sistema basado en Linux, da servicios base como seguridad,
gestión de procesos y de memoria, de red y de drivers.
El núcleo hace de capa de abstracción entre el hardware y el resto del stack de
software.
20
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
21
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
7.2.2 SEGURIDAD
En cualquier proyecto de la actualidad se debe prestar mucha atención en la
seguridad, para ello se tiene que disponer de acceso como minimo con usuario
y contraseña. En este caso, se habilitará autenticación mediante correo
electronico y contraseña.
22
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Esta cuenta nueva se almacenará como parte del proyecto y se puede usar para
identificar a un usuario en la app.
7.3.1 DISPONIBILIDAD
En relación a la disponibilidad indicar que la aplicación como tal tiene varias
dependencias, la primera y más importante, que es el registro y login va ligado a
Firebase Authentication, si este servicio sufre algun tipo de caida, el usuario no
podrá logarse con sus claves en la plataforma. El segundo y no menos
importante, es la BBDD de articulos, si el hosting contratado padece una caida
no se podria acceder a los anuncios publicados.
Y las dos últimas, que son el chat de usuarios depende de Firebase Database y
el login en redes sociales que va ligado al servicio de Facebook, ante cualquier
eventualidad con uno de los dos, no estaría disponible esa funcionalidad pero se
podría operar con el resto de tareas.
23
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Identificador CU-001
Nombre Registro de usuario.
Prioridad Normal/Alta.
24
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Identificador CU-002
Nombre Búsqueda de artículo.
Prioridad Normal/Alta.
Precondiciones Ninguna.
Identificador CU-003
Nombre Publicar un anuncio.
Prioridad Normal/Alta.
Identificador CU-004
Nombre Comprar o vender un artículo.
Prioridad Normal/Alta.
25
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Identificador CU-005
Nombre Actualizar un artículo.
Prioridad Normal/Alta.
Identificador CU-006
Nombre Borrar un artículo.
Prioridad Normal/Alta.
Identificador CU-007
Nombre Dialogar con usuario.
26
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Prioridad Normal.
Identificador CU-008
Nombre Calcular distancia con un usuario.
Prioridad Normal.
Identificador CU-009
Nombre Acceder a las redes sociales (Facebook).
Prioridad Normal.
27
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
28
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
29
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
El servicio web esta siempre disponible para recibir peticiones de usuarios, tanto
de registro como de login. Esté se encargara de procesar dichas peticiones y
generar la respuesta apropiada.
El servidor puede atender miles de peticiones por segundo, gracias al servicio
de Google, al igual que la base de datos en Hostinger. La latencia de la
comunicación en condiciones normales esta por debajo de los 10 milisegundos.
En relación a la arquitectura de la plataforma móvil consiste de una aplicación
móvil que se va a desarrollar y se podrá instalar en cualquier dispositivo que
tenga el sistema operativo Android y que sea compatible con la versión minima
SDK de API 14 y de Android 4.0 IceCreamSandwich que lo suelen tener el
97,4% de los dispositivos con este sistema operativo.
30
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
31
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
32
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
33
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
los métodos necesarios para insertar, actualizar, obtener y borrar ese objeto de
la base de datos.
Articulos
idarticulo: integer
categoria: string varchar
modo: string varchar
precio: string varchar
provincia: string varchar
contacto: string varchar
34
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
En ese sentido, indicar que en el proyecto hay diferentes casos de uso pero muy
similar entre si, adjunto los mas representativos, ver el listado de articulos e
insertar articulo.
A continuación se detalla el diagrama de secuencia del caso de uso Ver el
listado de articulos.
ID Mensaje Detalle
1 Inicia Aplicación El usuario pulsa el icono de la aplicación en su
movil e inicia el aplicativo.
35
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
ID Mensaje Detalle
1 Inicia Aplicación El usuario pulsa el icono de la aplicación en su
movil e inicia el aplicativo.
36
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
7.5.6 PROTOTIPO
El prototipo es un primer ejemplo limitado de una aplicación, en este caso del
proyecto que estamos trabajando. Este permite recrear lo mejor posible en fases
iniciales el escenario al que queremos ir, detectando posibles fallos o problemas
que pueden aparecer y corregirlos antes de iniciar su desarrollo.
En este caso, he creado unos modelos iniciales de pantalla de aplicación, donde
se ve su estructura y la información que muestra, siempre de una manera
aproximada.
37
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
38
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
(3) (4)
39
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
(5) (6)
40
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Aquí se puede catalogar todos los articulos del aplicativo en una sola vista.
41
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Aquí se puede buscar por identificador uno de los articulos del aplicativo.
42
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Desde esta activity se puede eliminar un articulo que se haya incluido con
anterioridad en el aplicativo.
7.5.6.2.8 PAGOS
En este punto se puede ver el caso de uso de pagos:
43
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Esta pantalla tiene utilidad si el usuario ha llegado a un acuerdo con otro y quiere
realizarle el pago del articulo.
7.5.6.2.9 CHAT
Sobre este punto he creado dos activities para el caso de uso del chat, una que
se utiliza como principal y que lanza una segunda donde se muestra la room del
chat.
Con estas dos activities el usuario una vez que acceda al chat puede
comunicarse con otro usuario para ampliar información de un articulo, llegar a un
acuerdo sobre el precio,etc..
7.5.6.2.10 UBICACIÓN
En esta pantalla se mostrará el caso de uso de ubicación:
44
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Desde aquí el usuario podrá consultar y calcular una ruta por ejemplo desde su
habitual domicilio a la dirección facilitada por otro usuario para cerrar el acuerdo
de compraventa.
7.5.6.2.11 COMPARTIR
En este último punto se puede ver el caso de uso de compartir:
Una vez que se accede a la pantalla el usuario podrá entrar con sus credenciales
a la red social Facebook para compartir o hacer una referencia a la aplicación.
8. IMPLEMENTACION
A continuación, se indican las acciones tomadas durante la fase de
implementación y las técnicas que se han utilizado.
45
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
46
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
47
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
48
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
49
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
50
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
51
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
52
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
Y en AndroidManifest:
53
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
54
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
8.4.2 HOSTINGER
En cuanto al servicio de bases de datos de Hostinger, señalar que parte de una
idea inicial del hosting de la web auctionyourgadget.com creada como referencia
para este proyecto aunque no sea parte evaluable.
Este punto ya se ha tratado en el 8.3.2 y no vamos a entrar en ms detalle en esta
memoria.
55
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
8.4.4 FACEBOOK
Para este último punto es imprescindible agregar en builde.gradle el siguiente
codigo:
Y como último paso de los mas importante hay que informar en la web de
developers de Facebook del paquete y activity asignada:
56
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
57
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
58
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
8.5.2 PAGOS
A continuación se ve el proceso para el pago de un articulo en la aplicación:
59
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
8.5.3 CHAT
En este punto se ve el proceso para habar con un usuario de la plataforma:
60
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
8.5.4 UBICACION
Y por último se ve el proceso para localizar y ver la distancia de un usuario a
otro:
61
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
9. CONCLUSIONES Y MEJORAS
El desarrollo de esta aplicación ha sido una tarea laboriosa pero muy gratificante.
La verdad es que le tenia mucho respeto aunque llevaba tiempo queriendo
realizarla.Por motivos laborales me he ido alejando del entorno de la informatica
a nivel de diseño y programación y eso me ha podido perjudicar en varias fases
del proyecto, tambien quiero decir que en un principio creo que me hice una idea
de la aplicacion a un nivel demasiado avanzado y complejo que poco a poco he
ido dividiendo en pequeñas areas y simplificando en distintas tareas.
En lineas generales creo que he conseguido completar practicamente todos los
objetivos propuestos en la planificación salvo pequeños desvios, incluso he
podido incluir algun punto extra que no estaba previsto, por ejemplo la conexion
con redes sociales.
En cuanto a las mejoras, en ese sentido la aplicación tiene recorrido, por el
entorno que se mueve requiere ciertas evoluciones y hay aspectos a pulir, como
por ejemplo el interfaz grafico en el listado de articulos y en su seguimiento. De
todas maneras debido a los tiempos comprometidos por las distintas entregas
se tuvo que estar muy pendiente de la planificación para no sufrir parones y
retrasos en ciertas actividades.
A continuación facilito algunas posibles mejoras en funcionalidades:
- Avisos/notificaciones por articulos nuevos o distintas noticias.
- Comparativa de precio y caracterisitcas entre dispositivos de la misma
categoria.
- Perfil avanzado por usuario.
- Pago con otros medios: tarjeta bancaria.
62
DESARROLLO APLICACIONES PARA DISPOSITIVOS MOVILES AUTOR: MARIO ROMERO
10. GLOSARIO
Sistema operativo basado en el kernel de Linux diseñado
ANDROID principalmente para dispositivos móviles que Google compró
en 2005.
Gadget Dispositivo de pequeñas proporciones y novedoso, suelen
tener un diseño vanguardista.
PhpMyAdmin Herramienta de software libre escrita en PHP , destinada a
manejar la administración de MySQL a través de la Web.
Conjunto de herramientas de desarrollo de software que le
SDK permite al desarrollador de software crear aplicaciones para
un sistema.
Conjunto de subrutinas, funciones y procedimientos que
API ofrece cierta biblioteca para ser usado por otro software
como una capa de abstracción
11. BIBLIOGRAFIA
Wallapop, la aplicación de compras más descargada en marzo (Mayo 2017)
http://applicantes.com/category/multimedia/infografias/
Android fortalece su liderazgo en Europa (Julio 2016)
http://es.kantar.com/tech/m%C3%B3vil/2016/julio-2016-cuota-de-mercado-de-
smartphones-en-espa%C3%B1a-mayo-2016/
Sistema Operativo Android (Julio 2014)
http://www.monografias.com/trabajos101/sistema-operativo-android/sistema-
operativo-android.shtml
Google Firebase (Junio 2017)
https://firebase.google.com
Google APIs (Junio 2017)
https://console.developers.google.com
Hostinger (Junio 2017)
https://www.hostinger.es
Facebook for developers (Junio 2017)
https://developers.facebook.com/
63