Documente Academic
Documente Profesional
Documente Cultură
Fecha: XX/06/2011
3
4.1.2.3.3. Centros preferidos ................................................................................ 40
4.1.2.4. Localizacin ............................................................................................. 41
4.2. Diagramas de casos de uso .......................................................................... 41
4.2.1. Gestin de productos ................................................................................. 42
4.2.2. Gestin de centros...................................................................................... 44
4.2.3. Gestin de compra ..................................................................................... 47
4.3. UMLs .............................................................................................................. 49
4.3.1. Activities ...................................................................................................... 49
4.3.2. Orientacin a objetos.................................................................................. 51
4.4. Funciones principales .................................................................................... 52
4.4.1. Ponderar calificaciones .............................................................................. 53
4.4.2. Bsqueda de compra ms adecuada ........................................................ 56
5. Conclusiones..60
5.1. Planificacin del proyecto .............................................................................. 60
5.2. Estudio econmico ......................................................................................... 65
5.3. Trabajo futuro ................................................................................................. 66
5.4. Conclusiones personales ............................................................................... 68
6. Bibliografa70
6.1. Artculos de consulta ...................................................................................... 70
6.2. Manuales y documentos de estandarizacin ................................................ 71
7. Agradecimientos.....72
4
Aplicacin Android para Supermercados
1. Introduccin
Esta aplicacin, llamada EasyMarket, tiene como objetivo simular una compra
por parte del usuario de manera que el comprador obtenga una propuesta que se
ajuste lo mximo posible a sus preferencias segn ciertos criterios. Adems de
esto ofrece una amplia gestin de productos y centros los cuales l podr ampliar
si es necesario.
Sin embargo, para llegar a la esencia del programa, debemos cumplir unos
objetivos previos:
5
Aplicacin Android para Supermercados
6
Aplicacin Android para Supermercados
1
Siglas de Sistema Operativo
7
Aplicacin Android para Supermercados
2. Fundamentos de Android
En este captulo vamos a explicar a grandes rasgos ciertos conocimientos
acerca de Android.
A nivel mundial alcanz una cuota de mercado del 50,9% durante el cuarto
trimestre del 2011, mas del doble que el segundo sistema operativo (iOS Phone)
con ms cuota 5.
2
Sistema Operativo de software libre.
3
Es un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio.
4
Segn http://blog.nielsen.com/nielsenwire/online_mobile/android-most-popular-operating-system-in-u-
s-among-recent-smartphone-buyers/
5
Segn http://www.gartner.com/it/page.jsp?id=1924314
8
Aplicacin Android para Supermercados
6
Segn http://tecnologia.elpais.com/tecnologia/2012/02/27/actualidad/1330361316_288568.html
7
Segn http://www.securitybydefault.com/2011/02/evolucion-del-malware-en-dispositivos.html
9
Aplicacin Android para Supermercados
10
Aplicacin Android para Supermercados
11
Aplicacin Android para Supermercados
3. Desarrollo y herramientas
Tecnologas bsicas:
8
Se puede obtener desde http://www.eclipse.org
9
Se puede obtener desde http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-
136632.html
10
Se puede obtener desde http://eddfox.blogspot.com.es/2011/09/como-instalar-adt-plugin-para-
eclipse.html
11
Se puede obtener desde http://developer.android.com/sdk/index.html
12
Aplicacin Android para Supermercados
En Android una aplicacin no tiene control de ciclo de vida por lo que debemos
poder finalizarlas en cualquier momento. Cada programa ejecuta su propio
proceso. El runtime12 de Android se encarga de gestionar una aplicacin, y por
tanto las activities que la forman.
12
Intervalo de tiempo en el que un programa de computadora se ejecuta en un sistema operativo.
13
pequeas aplicaciones informticas en forma de iconos grficos que se utilizan en pginas web para
permitir la interactuacin con el usuario o visitante.
13
Aplicacin Android para Supermercados
Para comunicar activities entre ellos Android nos proporciona ciertos mtodos.
Para lanzarlos primero debemos declararlos dentro de un Intent que es una clase
en la que permite especificarlo.
14
Aplicacin Android para Supermercados
Durante la vida de un Activity esta pasa por una serie de estados. La clase
Activity nos permite redefinir ciertos mtodos mediante @Override, en sus clases
derivadas que incluyen el cdigo a ejecutar en las transiciones de estados.
14
Pagina de diseo.
15
Aplicacin Android para Supermercados
Estados de un Activity:
16
Aplicacin Android para Supermercados
15
Programacin Libre (gratuita)
17
Aplicacin Android para Supermercados
Para acceder con estas sentencias SQL a la base de datos trabajamos con
cursores. Estos cursores es muy recomendables cerrarlos (con la sentencia
close()) una vez realizada la consulta para liberar los recursos. Si en acciones
prximas decidimos lanzar otra consulta con el mismo cursor solo tendremos que
llamar a la funcin requery() actualizando el contenido. Android nos da el mtodo
managedQuery() el cual gestiona el ciclo de vida del cursor por nosotros
asocindolo al ciclo de vida de la Activity. Llamar a este mtodo es la manera ms
fcil de usar cursores desde un Activity.
En la siguiente imagen (Figura 3.3) veremos algunas de las acciones para crear
una base de datos, crear/borrar una tabla e insertar/actualizar/borrar una fila. En
ella podemos observar como las sentencias son puramente SQL y se pueden
usar todo tipo de condicionales.
18
Aplicacin Android para Supermercados
Sin embargo para insertar o actualizar una fila de la tabla existe otra manera de
hacerlo. Para usar esta manera se crea un objeto de la clase ContentValue en el
cual se le meten los atributos a tratar y se llama a las funciones estndar insert o
update que tiene la clase Database de Android. Esta clase tambin contiene la
funcin delete para eliminar filas.
16
Se obtiene desde http://dev.mysql.com
19
Aplicacin Android para Supermercados
Una vez creada las dos bases de datos lo que queremos es que se
comuniquen entre ellas para que se actualice los datos del servidor y el cliente.
Para ello he creado una aplicacin Java en el servidor que se encarga de recibir
peticiones de conexin (multithread17) y de esa manera abrir un socket entre el
cliente y l para establecer la transferencia de datos.
17
Con varios procesos en paralelo.
20
Aplicacin Android para Supermercados
Adems, para poder tener una conexin directa con la base de datos MySQL
desde la aplicacin del servidor he tenido que bajarme un driver que me permita
conectarme desde el programa de Java a la BBDD con mi usuario y mi
contrasea. El conector utilizado se llama MySQLConnector 18.
Una vez aadido el conector al paquete del proyecto del servidor lo que
haremos es establecer la conexin con el cliente.
18
Se obtiene desde http://www.mysql.com/products/connector/
21
Aplicacin Android para Supermercados
Ahora veremos (Figura 3.7) la parte del cliente como abre la conexin y recibe
los productos para luego tratarnos como deseemos.
22
Aplicacin Android para Supermercados
A parte de los comentarios de ambos cdigos paso a paso, lo nico que cabe
resaltar es que para enviar objetos entre sockets utilizaremos la clase
ObjectOutputStream y para recibirlos usaremos ObjectInputStream. Es muy
importante que el objeto que enviemos este definido en las dos partes de la
comunicacin y de la misma manera.
23
Aplicacin Android para Supermercados
3.4. Geolocalizacin
<uses-permission android:name =
"android.permission.ACCES_COARSE_LOCATION" />
<uses-permission android:name =
"android.permission.ACCES_FINE_LOCATION" />
24
Aplicacin Android para Supermercados
25
Aplicacin Android para Supermercados
Actualmente, las caractersticas de los telfonos que vienen con Android nos
permiten consumir contenidos multimedia sin que el dispositivo sufra al cumplir
con esta tarea. Vamos a conocer las dos APIs que Android provee para trabajar
con sonidos: SoundPool y MediaPlayer.
Tambin resulta interesante saber, que el botn de volumen del telfono puede
ser configurado para controlar un stream de audio en especfico. Para conseguir
esto es necesario especificar el tipo de audio que maneja nuestra aplicacin. Las
siguientes lneas (Figura 3.10) de cdigo nos ayudaran a controlar el flujo de
sonido multimedia que estemos escuchando en nuestra aplicacin tanto si
queremos subir o bajar el volumen.
26
Aplicacin Android para Supermercados
27
Aplicacin Android para Supermercados
28
Aplicacin Android para Supermercados
4. Especificacin EasyMarket
29
Aplicacin Android para Supermercados
30
Aplicacin Android para Supermercados
4.1.2.1. Supermercados
31
Aplicacin Android para Supermercados
32
Aplicacin Android para Supermercados
33
Aplicacin Android para Supermercados
34
Aplicacin Android para Supermercados
4.1.2.2. Productos
35
Aplicacin Android para Supermercados
Dentro de este men de edicin podremos aadir o quitarlo de los centros que
deseemos. Los centros que se encuentran en verde son aquellos que tienen dicho
producto y los que estn en rojo por lo contrario son aquellos que no (Figura
4.15). Si vemos que no existe el centro al que queremos aadirlo desde esta
pantalla podremos ir directamente a la creacin del centro.
36
Aplicacin Android para Supermercados
Para mejorar la usabilidad tambin he aadido una opcin rpida desde este
men para que el usuario pueda aadir el producto directamente al carrito.
37
Aplicacin Android para Supermercados
Ahora veremos como el usuario puede hacer la compra para obtener los
centros que sean ms afines con sus preferencias. Para ello explicar los 3 pasos
que hay.
En esta pantalla (Figura 4.18) el comprador podr aadir los productos o cargar
listas de compra que ya haya guardado en ocasiones anteriores. Si ha aadido
productos previamente el sistema los tendr guardados ya en la compra actual.
38
Aplicacin Android para Supermercados
Una vez escogidos los productos y sus cantidades respectivas, la persona debe
establecer las preferencias que ms importancia tengan para l segn 3 criterios:
el precio de la compra, la proximidad del centro o la calidad del centro.
39
Aplicacin Android para Supermercados
40
Aplicacin Android para Supermercados
4.1.2.4. Localizacin
41
Aplicacin Android para Supermercados
42
Aplicacin Android para Supermercados
Actores: Usuarios
Descripcin: Para crear un producto el usuario deber introducir el nombre de
este y la unidad de medida en la que ser contada.
Actores: Usuarios
Descripcin: El producto puede ser modificado ya sea para cambiar su nombre,
unidad de medida o realizar alguna gestin con los centros.
Actores: Usuarios
Descripcin: El usuario podr eliminar el producto creado.
Actores: Usuarios
Descripcin: Tambin es posible comentar cualquier producto con tal de
compartir las ideas para tenerlas en cuenta otros usuarios de la aplicacin.
Actores: Usuarios
Descripcin: La persona debe seleccionar el centro y poner una puntuacin y un
precio para tal centro. Por otro lado tambin podr quitarlo de los centros que crea
conveniente perdiendo el precio y la valoracin que tenan asignados.
43
Aplicacin Android para Supermercados
44
Aplicacin Android para Supermercados
Actores: Usuarios
Descripcin: Para crear un centro la persona deber introducir el nombre y la
puntuacin de calidad que crea conveniente que debe tener.
Actores: Usuarios
Descripcin: Cualquier centro puede ser modificado ya sea para cambiar su
nombre, su valoracin personal o realizar cualquier gestin con los productos del
sistema.
Actores: Usuarios
Descripcin: El usuario podr cualquier centro de la aplicacin teniendo en
cuenta que si este contiene geolozalizaciones estas sern perdidas as como el
resto de los productos con sus respectivos precios asignados.
Actores: Usuarios
Descripcin: Se podr hacer una crtica al centro para luego ser distribuida en
todos los dispositivos que contengan la aplicacin.
Actores: Usuarios
Descripcin: El usuario podr valorar cada centro y de esa manera compartirlo
con otras personas para tener un criterio ms amplio y exacto de este.
45
Aplicacin Android para Supermercados
Actores: Usuarios
Descripcin: Tambin se podrn aadir los productos con un precio y una
valoracin de calidad segn el criterio personal. De la misma manera se podrn
quitar si este centro ya no contiene dichos productos.
Actores: Usuarios
Descripcin: El centro puede tener registradas mltiples direcciones a las que el
usuario podr acceder si lo desea para que le sea trazada una ruta desde el punto
en el que se encuentra actualmente.
46
Aplicacin Android para Supermercados
47
Aplicacin Android para Supermercados
Actores: Usuarios
Descripcin: Este es el primer paso para realizar la compra. La persona debe
seleccionar los productos que quiere agregar al carrito as como sus cantidades
respectivas.
Actores: Usuarios
Descripcin: El usuario seleccionar la importancia que quiere darle a los
criterios de Precio, Puntacin del centro y Cercana del centro segn crea
ms conveniente para l.
Actores: Usuario
Descripcin: Una vez realizado los dos pasos anteriores el comprador podr ver
que centros son los que ms se ajustan a sus gustos. Podr consultar donde
estn situados en el mapa si lo desea as como ver sus precios y puntuaciones.
Actores: Usuario
Descripcin: Al final de la gestin de compra se puede guardar la lista de los
productos con sus cantidades respectivas por si el responsable pretende usarla
en compras futuras.
48
Aplicacin Android para Supermercados
4.3. UMLs
4.3.1. Activities
En el siguiente UMLs podremos ver las pantallas y los activities que he creado.
He intentado optimizar de la mejor manera que he podido las pantallas para evitar
cdigo duplicado. La eficiencia en las aplicaciones mviles es una caracterstica
muy importante.
En este modelo podremos ver tambin las navegabilidades que tienen entre
ellos con las funciones que contienen. El modelo intenta describir las
caractersticas ms necesarias para poder navegar entre ellos y ofrecer os
principales servicios.
49
Aplicacin Android para Supermercados
50
Aplicacin Android para Supermercados
Cabe decir que, como podremos observar, todos los objetos contiene un _id
el cual referencia a un objeto de esa clase. En Android todos los objetos creados
en la Base de Datos contienen un _id obligatorio el cual se debe declarar. Como
es lgico he reutilizado este id para declararlo en muchas ocasiones como clave
nica de la clase.
51
Aplicacin Android para Supermercados
En este apartado he descrito dos funciones internas del programa que creo
interesante comprender para entender un poco mejor como funciona la aplicacin.
52
Aplicacin Android para Supermercados
Los centros, as como los productos, tienen valoraciones que la gente comparte
segn la valoracin que creen ellos de manera subjetiva. Sin embargo un centro
puede cambiar a lo largo del tiempo y no siempre mantiene su estatus de calidad
tanto para bien como para mal. Por esa razn cada valoracin que una persona
comparte queda registrada con una data.
Esta funcin lo que pretende es que las valoraciones de los centros tengan
diferentes ponderaciones en funcin del momento en que se hayan efectuado.
Para ellos he pensado que los centros cambian su estilo o su tica de empresa
cada ao. Por tanto las ponderaciones que he creado son:
53
Aplicacin Android para Supermercados
Para empezar las agruparemos en los 4 grupos segn la fecha en la que los
usuarios hicieron cada valoracin.
54
Aplicacin Android para Supermercados
Con estos valores haremos una suma y a continuacin los dividiremos por el n de
votos que tiene cada uno multiplicados por su porcentaje correspondiente.
55
Aplicacin Android para Supermercados
56
Aplicacin Android para Supermercados
haremos una regla de tres con las siguientes compras y con ese valor
obtenido se los restaremos a los 100 puntos iniciales que tiene cada uno.
Cada puntuacin final la multiplicaremos por la importancia que el usuario
ha dado a este atributo (como ya hemos dicho estos atributos se valoran
entre el 0 y 1).
Ubicacin: El proceso para evaluar las ubicaciones se calcula de la misma
manera que el caso de los precios. Inicialmente le atribuimos 100 puntos a
todas las localizaciones ms cercanas de cada centro y partiendo de la
ubicacin ms lejana (a la cual le damos 100 ptos negativos de valor)
vamos calculando por reglas de tres todas las dems. Ese valor se lo
restaremos a los 100 puntos iniciales y observaremos que la ubicacin del
centro mas lejano tendr 0 puntos. Ms tarde le multiplicaremos la
ponderacin que el usuario ha credo conveniente.
Puntaciones: El caso de las puntuaciones es algo distinto y a la vez ms
sencillo. Sabiendo que las puntuaciones estn limitadas entre 0 y 5,
asignaremos 100 puntos a la valoracin de 5 estrellas. Partiendo de ah y
con una regla de 3 asignaremos la puntuacin que corresponda a cada
valoracin.
57
Aplicacin Android para Supermercados
58
Aplicacin Android para Supermercados
59
Aplicacin Android para Supermercados
5. Conclusiones
El primer diagrama de Gantt (Figura 5.1) que cre no incluye alguna de las
tareas que ms adelante vi factibles de hacer:
60
Aplicacin Android para Supermercados
61
Aplicacin Android para Supermercados
62
Aplicacin Android para Supermercados
63
Aplicacin Android para Supermercados
Iniciacin
Desarrollo
Pruebas
Documentacin
En la fase de pruebas fue muy importante realizar todos los testeos posibles
para intentar despus ponerme completamente con la implementacin. La fase en
global dur 30 das.
La documentacin me llev 25 das ya que una vez echa luego tuve que ir
modificando correcciones que el tutor y yo creamos convenientes realizar.
No cabe olvidar que a lo largo del proyecto se han ido realizando reuniones de
control para comprobar la situacin actual de este y solventar posibles dudas que
tenia.
64
Aplicacin Android para Supermercados
La Tabla 5.1 muestra un resumen del coste temporal de todos los casos
expuestos en el Gantt final que he mostrado en el apartado previo.
65
Aplicacin Android para Supermercados
TOTAL - - 19400
Figura 5.4 Tabla de presupuesto econmico
Por tanto el coste final del proyecto dentro de una empresa seria de 19.400
aproximadamente.
EasyMarket es una aplicacin que podra servir en el futuro para otros objetivos
adems de los ya creados. Ahora mismo es una aplicacin que funciona
perfectamente. Sin embargo siempre hay aspectos que se pueden mejorar.
66
Aplicacin Android para Supermercados
suelen ser dinmicas a no ser que paguemos por una fija. Por eso el problema
que existe actualmente en este mbito es que en el momento que mi proveedor
cambie la direccin ip de mi servidor, el dispositivo no podr conectarse va
internet. Para solucionar este problema existen compaas externas las cual se
encargan de dar soluciones de DNS a IPs dinmicas. Estas empresas
establecidas en la nube se encargan de redireccionar la IP y ofrecen a
particulares la posibilidad de crear un servidor en Internet con una simple
direccin la cual siempre contiene la IP actual del router que tengamos
configurado (un ejemplo de este servicio es DynDNS). Al principio de desarrollar
esta funcionalidad la aplicacin estaba desarrollada de esta manera: el dispositivo
se conectaba a un servidor en la nube el cual estaba conectado con mi propio pc
servidor. Al hacer la consulta le retornaba la ip actual a la cual deba conectarse y
as siempre tenia la ip a la cual deba hacer las peticiones de transferencia. Sin
embargo a principios del 2012 este servicio dej de funcionar gratuitamente y no
he logrado otro que pueda hacerlo sin nimo de lucro.
Otra funcionalidad que se podra implementar seria ver una grafica de cada
centro mostrando la evolucin de calidad que ha tenido a lo largo del tiempo.
Cogiendo las valoraciones que ha recibido podramos englobarlas cada 6 meses y
observar si esa empresa ha mejorado su calidad o por lo contrario ha empeorado.
67
Aplicacin Android para Supermercados
68
Aplicacin Android para Supermercados
69
Aplicacin Android para Supermercados
6. Bibliografa
Evolucin SmartPhones -
http://blog.nielsen.com/nielsenwire/online_mobile/android-most-popular-operating-
system-in-u-s-among-recent-smartphone-buyers/
La evolucin de Android -
http://tecnologia.elpais.com/tecnologia/2012/02/27/actualidad/1330361316_28856
8.html
70
Aplicacin Android para Supermercados
71
Aplicacin Android para Supermercados
7. Agradecimientos
Primeramente quera dar las gracias a mi tutor el cual sin l no habra podido
comenzar este tipo de proyecto ya que la idea inicial fue suya.
Adems quera agradecer a todas esas personas; amigos, familia, pareja que
han estado ah para darme nimos y motivacin para continuar.
72
Aplicacin Android para Supermercados
73