Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SCAN AND GO
Memoria
PRIMAVERA AO 2012
Dedicatoria
Dedicado a toda mi familia y a todos los amigos que han confiado siempre en m
Resum
Lobjectiu principal del projecte es crear una aplicaci per a smartphones que permeti a
usuaris dun establiment, en el aquest cas un supermercat, poder fer la compra i la mateixa
vegada la seva prpia factura de tots els productes mitjanant lescaneig de codis de barres.
Un altre objectiu seria desprs de tindre la llista de la compra feta sincronitzar el dispositiu
mvil amb el caixer per tal de poder pagar directament limport final de la compra i aix
estalviar la demora que provoca el fet de fer cua a lhora de pagar.
Resumen
El objetivo principal del proyecto es crear una aplicacin para smartphones que permita a
usuarios de un establecimiento, en este caso un supermercado, poder hacer la compra y al
mismo tiempo obtener su propia factura de todos los productos mediante el escaneo de
cdigo de barras.
Otro objetivo sera despus de tener la lista de la compra hecha sincronizar el dispositivo
mvil con el cajero para poder pagar directamente el precio final de la compra en cuestin
y as evitar la espera que conlleva el hacer cola a la hora de pagar.
Abstract
The main goal of the project is to create an application for smartphones, which enables the
users of a shop, in this case a supermarket, to do their shopping and at the same time
receive their own invoice of all the products through the scanning of bar codes.
Another goal would be, once the user has elaborated his/her own shopping list, to
synchronize the user's mobile phone with the cashier in order to be able to pay directly the
shopping final price in particular and, in that way, avoid any long waitings in line when
paying.
I
ndice
ndice de figuras .I
1. Introduccin .................................................................................................. 1
1.1 Problemtica de los supermercados ............................................................................ 2
1.2 Destino del proyecto .................................................................................................... 4
1.3 Decisin del proyecto .................................................................................................. 5
1.4. Objetivo del proyecto.................................................................................................. 5
1.5 Estructura de la memoria ............................................................................................. 6
5. Bibliografa.................................................................................................. 84
ndice de figuras
1. Introduccin
Son muchas las horas las en que nos pasamos a lo largo de nuestras vidas esperando en
sitios como bancos,tiendas,conciertos,supermercados,etc. Y este tiempo es un tiempo
perdido, un tiempo sin ninguna produccin y que malgastamos desafortunadamente
porque nos vemos obligados a ello.
En el mundo en que vivimos la necesidad para hacer nuestra vida cotidiana lo ms gil y
eficiente posible es bsico para contentar a los ciudadanos, por ello, se ha optado este
proyecto.
Con esta idea se pretende mejorar el funcionamiento de muchos ciudadanos en sus vidas
cotidianas a la hora de evitar la demora en los supermercados.
2 Scan & Go
- Las cajeras en ms de una ocasin entablan conversacin con los clientes, y el cliente
por no rechazar la conversacin al final acaba entrando al trapo y a lo mejor sin darse
cuenta acaba perdiendo un buen tiempo tanto para l como para los dems clientes que
estn esperando en esa caja.
- Este es uno de los problemas ms comunes, escoger una caja que parece que haya
menos clientes con lo cual a priori se acaba uno por acceder a esta cola , y al final
resulta que la cola que pareca ms corta y rpida se acaba convirtiendo en lenta, muy
lenta, esto puede deberse a la falta de algn cdigo de barras de un producto, o que la
mquina registradora haya sufrido una avera, o porque la cajera es la ms lenta.
- Hay gente que una vez est en la caja , o bien ya pagando o bien a punto de pagar, se
acuerda de comprar algn producto de ltima hora porque se les olvid en ese
momento, y la gente que est en la cola esperando tienen que aguantarse de todo este
tiempo demorado ya que la cajera se queda impasible y se lo permite.
- A cualquiera le puede pasar que a la hora de pagar no te alcance el dinero, pero si algo
similar nos ocurre, cuando el cliente est pagando debera solucionarlo de la mejor
manera posible, y no optar por quedarse pensando durante 5 minutos de qu producto se
va uno a deshacer y no entrar a debatir con tu acompaante sobre la conveniencia de
llevar ese producto o aquel. En esas circunstancias la solucin es simple y no requiere
de mayor esfuerzo, dejar lo menos importante y se acab el problema.
- En las cajas rpidas suelen poner debajo el nmero mximo de artculos, normalmente
suelen ser 5 o 10 artculos, dependiendo del establecimiento, pues bien el problema
reside en que hay consumidores que no tienen en cuenta esto, o bien por equivocacin ,
o bien por voluntariedad que es el problema ms frecuente, para evitar esperarse en
Introduccin 3
otras cajas normales que estn llenas en ese momento, y aqu el cajero/a de turno le
vuelve a permitir en su mayora de veces este hecho.
- Hay veces en las que el cajero o cajera, a la hora de hacer la devolucin del dinero
del cliente a la hora de cobrarle, intenta deshacerse en ese momento de todo el dinero en
metlico que considera como "chatarra" , y a veces una compra de poco dinero te puede
salir muy pesada ya que te dan una buena cantidad de dinero en metlico en monedas de
5 cntimos , 2 cntimos y hasta incluso de 1 cntimo por poner un ejemplo, esto
evidentemente indigna bastante al cliente y tambin provoca la demora en el pago final.
4 Scan & Go
La gente est muy ligada a las nuevas tecnologas , prueba de ello , es que difcilmente
se encuentra en el mundo en que vivimos a alguien sin que tenga un mvil o un
ordenador, por eso este pretende abarcar a todas las personas, sin importar la edad en
cuestin, ya que se ha tenido en cuenta , la sencillez y la manejabilidad como factores
principales.
Este proyecto pretende ayudar tanto a los usuarios como a los trabajadores del
establecimiento, ya que , se evitara la saturacin en las cajas y esto conllevara a un
cansancio mnimo de los trabajadores que estn en esos puestos de trabajo.
Este proyecto est diseado para poder agilizar y facilitar ms la vida de los
consumidores, el sistema de caja rpida que tiene lugar en los grandes supermercados
podr ser sustituido por este sistema en cada una de las cajas, es decir, las cajas
convencionales de los supermercados con este proyecto pasarn a ser cajas rpidas de
por s.
2. Trabajos relacionados
2.1 Dispositivos semejantes
Tecnologa RFID
Ejemplos prcticos de esta tecnologa los tendramos en los chips que estn integrados
en el Teletac, los chips que estn integrados en los libros de una biblioteca tambin, y
los que estn integrados en la ropa.
Carrefour
Al llegar a las cajas especiales de Scan & Go, el sistema informar de si su compra ha
sido seleccionada de manera aleatoria para una revisin de un determinado nmero de
artculos, o de si se posee luz verde para realizar el pago. Posteriormente slo queda
realizar el pago con la tarjeta, sin sacar un slo artculo de su carrito de la compra.
En Francia, el grupo Carrefour cuenta con el sistema de pago Scan & Go en el 25%
de las cajas de salida de sus centros, en Espaa tenemos este sistema ubicaciones como
por ejemplo en Madrid, El Pinar de las Rozas y Alcobendas y en Barcelona, Cabrera de
Mar.
En los siguientes puntos se analizan los diversos sistemas operativos que incorporan los
Smartphone actuales y un lenguaje de programacin ms adecuado para el desarrollo de
una aplicacin que se ubicara en el Smartphone.
Android
iOS
siendo despus usado en dispositivos como el iPod Touch, iPad y el Apple TV.
iOS se deriva de Mac OS X, que a su vez est basado en Darwin BSD, y por lo tanto es
un sistema operativo Unix.
Whindows Phone
Blackberry
Fue desarrollado por Research In Motion para sus dispositivos BlackBerry. El sistema
permite multitarea y tiene soporte para diferentes mtodos de entrada adoptados por
RIM para su uso en computadoras de mano, particularmente la trackwheel, trackball,
touchpad y pantallas tctiles.
El sistema operativo proporciona soporte para Java MIDP 1.0 y WAP 1.2. Las versiones
anteriores permitan la sincronizacin inalmbrica con Microsoft Exchange Server para
el correo electrnico y calendario, al igual que Lotus Domino e-mail. El actual OS 5.0
proporciona un subconjunto de MIDP 2.0, y permite la activacin inalmbrica completa
y la sincronizacin con Exchange de correo electrnico, calendario, tareas, notas y
contactos, y aade un soporte para Novell GroupWise y Lotus Notes.
Symbian
Fue desarrollado gracias a la unin de varias empresas de telefona mvil, entre las que
se encuentran Nokia, Sony Ericsson, Psion, Samsung, Siemens, Arima, Benq, Fujitsu,
Lenovo, LG, Motorola, Mitsubishi Electric, Panasonic, Sharp, etc.
Trabajos relacionados 13
Nomenclatura bsica
Barra: El elemento oscuro dentro del cdigo. Se hace corresponder con el valor binario
1.
Espacio: El elemento claro dentro del cdigo. Se hace corresponder con el valor binario
0.
1-Quiet zone
3-Carcter de datos
4-Checksum
Un smbolo de cdigo de barras puede tener, a su vez, varias caractersticas, entre las
cuales podemos nombrar:
Densidad:
Es la anchura del elemento (barra o espacio) ms angosto dentro del smbolo de cdigo
de barras. Est dado en mils (milsimas de pulgada). Un cdigo de barras no se mide
por su longitud fsica sino por su densidad.
16 Scan & Go
Quiet Zone:
Para que la administracin de las materias primas de una empres a posea informacin
gil y confiable el sistema EAN UCC es la herramienta confiable que se necesita, ya
que posee las fortalezas ideales para un adecuado seguimiento y control de insumos. La
identificacin estndar que ofrece este sistema le permite a su empresa y a sus
proveedores grandes beneficios, gracias a la informacin comn que aporta valiosos
datos para una labor conjunta.
Evitar los desperdicios, reciclar y lograr ahorros de materias primas son algunos de los
pasos clave para optimizar el aprovechamiento de los insumos. Sin embargo, para
lograrlo, se debe conocer a fondo el comportamiento de las materias primas, y realizar
un seguimiento detallado de su utilizacin, lo cual exige un manejo de la informacin
exacto y gil, que se logra con los cdigos de barra.
Cada uno puede ser mejorado gracias a la utilizacin de las herramientas de ste
sistema. El sistema est diseado bajo una filosofa que permite mejorar ese control. La
identificacin estndar de la mercanca, la captura de informacin de la misma y la
comunicacin de su movimiento, hacen que los sistemas de informacin puedan
responder mejor a las necesidades de los usuarios, ya que los datos que manejan son
ms confiables. Los tiempos muertos debido a las demoras en la captura de
informacin, pueden evitarse usando la tecnologa disponible.
Trabajos relacionados 19
- Produccin
Controlar el producto que llegar a los consumidores es fundamental, sin embargo, ste
control requiere de tres factores que deben encajar perfectamente para generar un
informacin oportuna y real: personas, tiempos y recursos.
El cdigo de Barras y EDI bajo los estndares EAN-UCC, facilitan las labores de
captura y comunicacin de informacin de manera eficiente, posibilitando a las
personas hacer uso de ella sin el desgaste del proceso de ingreso de datos.
Los beneficios ms importantes para que una empresa administre eficientemente los
puntos de venta y se desarrolle competitivamente son:
En comercio exterior, el uso del sistema EAN-UCC puede ser muy variado, teniendo en
cuenta que son muchas las entidades y los procesos que en esta actividad se encuentran
involucrados.
- Identificacin de carga
- Identificacin de Personal
Es importante identificar de forma nica las personas, bien sea de una empresa, un club,
una biblioteca etc, para controlar las actividades y operaciones que realizan; por
ejemplo con control de activos fijos, control de acceso a reas restringidas y manejo
automtico de nmina.
Es de gran utilidad que dicha identificacin sea estndar, a travs del Cdigo de Barras
simbolizado e impreso en el carn de identificacin, es posible leer automticamente la
informacin de cada persona al realizar operaciones internas que requieran algn tipo de
control.
Trabajos relacionados 21
Tome nota de los beneficios que alcanzara con el aprovechamiento del uso del cdigo
de barras en su empresa:
Posibilidad de mantener bases centrales de datos de las personas, que sirvan a diversas
entidades y eviten el fraude.
Las ventajas de que ofrece este sistema son varias: Por un lado le permite a los
fabricantes, distribuidores y detallistas mantener un control pormenorizado de los
movimientos de sus mercancas, y por otro lado evitar errores de cobro e intiles
esperas del cliente ante la caja, proporcionndole adems un detallado listado de sus
compras.
El cdigo EAN (existen muchos otros, pero ahora solo hablaremos del EAN 13) consta
de trece nmeros sobre los cuales figura su correspondiente transcripcin en forma de
barras. Los dos primeros dgitos representan la asociacin que asigna los cdigos a las
empresas fabricantes y distribuidoras. La Asociacin Espaola de Codificacin
Comercial (AECOC) tiene atribuido el nmero 84, por lo que los cdigos de todos los
artculos producidos por empresas espaolas empiezan por esta cifra.
Las cinco posiciones que siguen a la clave del pas corresponde al cdigo asignado a la
empresa, mientras las cinco siguientes estn reservados para designar el producto
concreto, numerado por el propio fabricante o distribuidor. El ltimo dgito es una cifra
de control, que resulta de aplicar un algoritmo matemtico a los otro doce dgitos.
Cada uno de los dgitos est representado como un grupo de siete mdulos de
tonalidades claras y oscuras repartidas de manera que cada dgito est formado siempre
por dos zonas claras y dos oscuras de anchura variable, segn el nmero de mdulos
contiguos de un mismo tipo. Esta anchura variable es la que permite que el dispositivo
lector decodifique las barras del sistema EAN.
NFC
NFC significa Near Field Communication. Se trata de una tecnologa inalmbrica que
funciona en la banda de los 13.56 MHz (en esa banda no hace falta licencia para usarla)
y que deriva de las etiquetas RFID, las cuales estn presentes en abonos de transporte o
incluso sistemas de seguridad de tiendas fsicas.
NFC es una plataforma abierta pensada desde el inicio para telfonos y dispositivos
mviles. El enfoque de esta tecnologa es para comunicacin instantnea, es decir,
identificacin y validacin de equipos/personas.
Activo, en el que ambos equipos con chip NFC generan un campo electromagntico e
intercambian datos.
Pasivo, en el que solo hay un dispositivo activo y el otro aprovecha ese campo para
intercambiar la informacin.
Pago con el telfono mvil: sin duda alguna es el punto fuerte de los usos del NFC. La
comodidad de uso y que el gasto pueda estar asociado a nuestra factura o una cuenta de
banco son armas muy poderosas y esta tecnologa est camino de ser el mtodo de pago
del futuro.
Precisamente en Espaa ha finalizado una de las mayores pruebas con esta tecnologa
como mtodo de pago. Ha sido en Sitges, con la colaboracin de Visa, La Caixa y
Telefnica.
CDIGOS QR
Los cdigos QR son fcilmente identificables por su forma cuadrada y por los tres
cuadros ubicados en las esquinas superiores e inferior izquierda.
-Publicidad
-Campaas de marketing
-Merchandising
-Diseo Grfico
Para poder leer estos cdigos existen mltiples lectores QR gratuitos para la mayora de
mviles y marcas, ( Nokia, IPhone, BlackBerry, Samsung, Siemens, etc..)
Un detalle muy importante sobre el cdigo QR es que su cdigo es abierto y que sus
derechos de patente (propiedad de Denso Wave) no son ejercidos.
CDIGOS BOKODES
Los Bokodes son un nuevo tipo de tecnologa de etiquetas digitales, elaboradas por la
Camera Group, del MIT media Lab. Esta propuesta es capaz de almacenar cientos de
veces ms informacin que los mtodos actuales (cdigo de barras, QR code, entre
otros). Y lo que lo hace an ms sorprendente es el tamao, aproximadamente 3mm
contra los mtodos tradicionales de alrededor de 30mm.
Sin embargo, a pesar de ser pequeo y almacenar gran cantidad de informacin; la gran
ventaja radica en que a diferencia a los cdigos actuales , que requieren al menos un
posicionamiento de 30 cm para su lecturas siendo capaces de
ser ledos a distancias desde 4 metros a incluso 20 metros. Estamos hablando de
un cdigo de largo alcance, donde solo es necesaria una cmara fotogrfica comn,
otorgando una numerosa cantidad de usos posibles.
Trabajos relacionados 29
Los desarrolladores de este nuevo tipo de etiquetas digitales, afirman que incluso es
posible su uso en otras reas donde antes no haba sido utilizada. Un ejemplo, dice el
Dr. Mohan, puede ser en Google Streetview, los locales podran colocar en las puertas
un Bokode con la informacin de su negocio y el men de especialidades, cuando
la cmara de Google tome la fotos del local, automticamente adquirir la data del local
y dems informacin insertada en la etiqueta. Y dada a la caracterstica del Bokode, de
presentar diferente tipo de data segn su observacin angular, podra ser utilizada en la
industria de video juegos para avances en realidad aumentada.
CDIGOS DATAMATRIX
Aplicaciones:
Tickets
Cupones
Trazabilidad
Mobile Marketing
Identificacin
Trabajos relacionados 31
En julio de 2005, Google adquiri Android Inc., una pequea compaa de Palo Alto,
California fundada en 2003. Entre los cofundadores de Android que se fueron a trabajar
a Google estn Andy Rubin (co-fundador de Danger), Rich Miner (co-fundador de
Wildfire Communications, Inc.), Nick Sears (alguna vez VP en T-Mobile), y Chris
White (quien encabez el diseo y el desarrollo de la interfaz en WebTV). En ese
entonces, poco se saba de las funciones de Android Inc. fuera de que desarrollaban
software para telfonos mviles. Esto dio pie a rumores de que Google estaba planeando
entrar en el mercado de los telfonos mviles.
En Google, el equipo liderado por Rubin desarroll una plataforma para dispositivos
mviles basada en el kernel de Linux que fue promocionado a fabricantes de
dispositivos y operadores con la promesa de proveer un sistema flexible y actualizable.
Se inform que Google haba alineado ya una serie de fabricantes de hardware y
software y seal a los operadores que estaba abierto a diversos grados de cooperacin
por su parte.
Historial de actualizaciones
Android ha sido criticado muchas veces por la fragmentacin que sufren sus terminales
al no ser soportado con actualizaciones constantes por los distintos fabricantes. Sin
embargo, esa situacin cambiar con un anuncio que hizo oficial Google en el que
comunic que los fabricantes se comprometern a aplicar actualizaciones al menos 18
meses desde su salida al mercado.
1.0
1.1
Liberado el 9 de febrero de 2009
1.5 (Cupcake)
1.6 (Donut)
-La galera ahora permite al usuario seleccionar varias fotos para eliminarlas
-Bsqueda por voz actualizada, con respuesta ms rpida y mayor integracin con
El 26 de octubre de 2009, el SDK 2.0 (Eclair) fue liberado. Los cambios incluyeron:
-Zoom digital
-Bluetooth 2.1
2.2 (Froyo)
El 20 de mayo de 2010, el SDK 2.2 (Froyo) fue liberada. Los cambios incluyeron:
y Browser.
-Soporte para pantallas de alto nmero de Puntos por pulgada, tales como 4" 720p
2.3 (Gingerbread)55
administrador de tareas
-Aade soporte para una gran variedad de perifricos y accesorios con conexin USB:
teclados, ratones, hubs, dispositivos de juego y cmaras digitales. Cuando un accesorio
est conectado, el sistema busca la aplicacin necesaria y ofrece su ejecucin.
-Los widgets pueden redimensionarse de forma manual sin la limitacin del nmero de
cuadros que tenga cada escritorio.
Extrada de http://www.ticbeat.com/tecnologias/historia-android-infografi/
42 Scan & Go
Por esto Google desarroll la maquina virtual Dalvik la cual permiti ejecutar los
programas de Android en ella.
Esta maquina virtual, tiene las siguientes mejoras respecto a la maquina virtual de
JAVA SE:
Est optimizada para utilizar poca memoria gracias a que es una maquina basada en
registros y no en pila
Est diseada para ejecutar cada aplicacin aislada, en una maquina virtual diferente
En este apartado se definen y explican los 4 componentes o bloques bsicos que puede
contener una aplicacin.
No todas las aplicaciones requieren de los 4 tipos, pero si una combinacin entre
algunos de ellos.
Cada vez que queramos usar uno de estos componentes se debe de especificar en un
archivo llamado AndroidManifest.xml.
Activity
Intent Receiver
Los Intent Receiver se utilizan para cdigos que se quieren ejecutar cuando sucede un
evento externo, por ejemplo cuando llaman al telfono o se ha localizado la posicin
GPS. A diferencia de los activities, estos no muestran una interfaz, en vez de eso
muestran una notificacin avisando al usuario que algo ha ocurrido.
Service
Service o servicio es un cdigo que define una accin que se realizar en segundo plano,
como puede ser localizar la posicin GPS del usuario, mientras el usuario est
consultando el tiempo que har hoy. Por ello, se trata de un cdigo no visible, suele
utilizarse mientras se est en un activity. Se ejecuta usando Context.startService() y este
terminar cuando finalice su funcin.
Content Provider
Cuando queremos almacenar datos en bases de datos, como por ejemplo con SQLite, no
podemos compartir esos datos con otras aplicaciones. Mediante un Content Provider se
consigue compartir esa informacin. Se trata de una clase que implementa mtodos para
dejar que otras aplicaciones puedan guardar y obtener esos datos mediante el gestor
contentprovider.
Trabajos relacionados 45
AndroidManifest.xml
Activity: permite a una actividad iniciarse. Todas las activities deben estar
especificadas en el AndroidManifest.xml. El siguiente cdigo debe incluirse en la
actividad inicial para que sea la primera en ejecutarse.
Muy parecido al ciclo de vida de las aplicaciones, aunque solo tratando de los
componentes activities. A diferencia de las aplicaciones, para hablar del ciclo de vida de
una activity tenemos que hacer referencia al stack de activities del sistema que apila
exclusivamente activities que estn ejecutndose. Cuando se cambia de una activity a
otra, la nueva activity que es creada se colocada en la parte superior de la pila y pasa a
ser la activity que se ejecuta en ese momento, mientras que la activity anterior queda por
debajo de sta en la pila, quedando as en background hasta que la principal no sea
eliminada de la fila. Las activities tienen cuatro estados segn su interaccin con el
usuario:
En pausa. Este estado se da cuando una activity deja de ser la principal pero todava
queda visible en pantalla, esto es posible en activities transparentes que dejan ver la
inferior. sta contina viva manteniendo todo la informacin del usuario.
Podemos ver que el ciclo de vida de una aplicacin est relacionando con el ciclo de
vida de una activity, dando prioridad a los procesos que contienen una. Como
conclusin Android considera como imprescindibles aquellos procesos con los que el
usuario est interaccionando y hace todo lo posible para que no le afecten estados
crticos de memoria que se puedan dar. Captulo 1: Presentacin de ANDROID 17
Para manejar el estado de las activities tenemos encontramos los siguientes mtodos
incluidos en la clase activity: OnCreate(), OnDestroy(), OnPause(), OnStop(),
OnFrezze(), OnResume() , OnRestart() y Finish(). Cada vez que se lanza una aplicacin
o pasamos de una activity a otra, sta es creada por el sistema, en cambio si se navega
hacia atrs sta puede ser restablecida (recuperando toda la informacin del usuario) o
volviendo a ser creada de nuevo, tambin se pueden poner en pausa, en ambos casos
sta pasa a estar en segundo plano. Una activity puede estar finalizada por la aplicacin,
o por el sistema en caso de que ste necesite memoria.
48 Scan & Go
Cambiar de Activity
De una manera muy parecida al cambio de una activity con Intents tambin se realiza el
paso de informacin entre estas. Antes de llamar al Intent se crean bundles donde se
introducen los datos a traspasar y, en la activity donde se reciben los datos, se crea otro
Bundle que los recoja. Resulta muy sencillo ya que son dos lneas de cdigo. Tambin
puede darse el caso que se quiera devolver un valor al finalizar una activity. Esto
tambin es posible usando los mtodos startSubActivity(Intent, int) y
onActivityResult(int, int, String), El primero creara la activity y los valores que sta
devuelva sern recogidos en el segundo mtodo.
Versin m5 de el emulador.
Bluetooth. Adems de emular los programas creados por los usuarios, tambin se puede
acceder a otras aplicaciones, navegar por Internet, escuchar msica, ver videos,
almacenar datos en la agenda de contactos etc. Tambin contiene un numeroso paquete
de elementos de desarrollo para que el programador pueda observar su funcionamiento
y coger ideas y un programa que transforma los archivos .class en .dex que es el usado
por la mquina Dalvik.
Un directorio (src/) donde estar el package con la clase principal que hayamos creado
(tendr el cdigo genrico que crea Android) y el archivo R.java,
R.java es una clase que se va modificando sola. Cada vez que creamos una variable sta
aparece reflejada en el R.java. Se podra decir que es un ndice a todos los recursos
declarados en el proyecto y el motivo de ste es que sea ms rpido localizar las
referencias de una aplicacin que se estn buscando.
Si se observa la primera activity que se crea junto con un proyecto nuevo aparece en el
Manifiest como la pantalla principal a la aplicacin.
52 Scan & Go
Un directorio de carpetas (res/) que contiene las carpetas drawable, layout y values.
Donde drawable contendr las imgenes (en formato .PNG) que utilice nuestra
aplicacin, values contendr un archivo llamado strings.XML que definir cadenas de
caracteres constantes y el subdirectorio layout, tambin en formato .XML donde
definiremos los elementos que forman la interfaz grfica de nuestra aplicacin. Es
posible crear nuevas carpetas dentro del directorio para poner otro tipo de contenidos
que necesitamos.
En la siguiente figura vemos un ejemplo de cmo poner una imagen para el fondo de
una activity, en este caso la imagen es la utilizada en el proyecto como ventana
principal.
Trabajos relacionados 53
XML-based layout
rpido y sencillo crear una UI. Este modelo est basado en el diseo de pginas Web,
donde se separan el diseo y las manipulacin de los datos.
Instalar un .apk
Una vez dentro se observa que tenemos las mismas carpetas que veamos en la
perspectiva de explorador de paquetes de Eclipse.
Trabajos relacionados 57
Finalmente nos adentraremos en la carpeta bin del proyecto y dentro de esta tendremos
el archivo apk que es el que nos servir para instalar la aplicacin en el dispositivo
mvil.
3. Desarrollo tcnico
En este apartado se pretende dar a conocer el funcionamiento de la aplicacin de forma
explicativa, de forma un poco ms detallada tambin, y saber cules han sido las
herramientas que se han llevado a cabo y el por qu de las mismas, para la obtencin del
producto final.
Tambin se pretende dar a conocer el uso de las clases de este proyecto y su relacin
entre ellas.
Iniciar
Scan&Go
Agregar
productos
Obtener factura
Realizar pago
Desarrollo tcnico 61
En el anterior grfico explicativo se intenta dar a conocer las diferentes fases a nivel
prctico de cmo funciona el proyecto de Scan and Go.
En la tercera y ltima fase, despus de agregar todos los productos a la cesta virtual de
la aplicacin, procederemos a la sincronizacin con la caja o ordenador , para
posteriormente realizar el pago de nuestra compra.
62 Scan & Go
Barcode Scanner, aplicacin Android que es completamente gratuita y que ocupa 589
KB , esta aplicacin sirve para escanear cdigos de barras o cdigos mediante el uso de
la cmara integrada del Smartphone, es de las aplicaciones ms descargadas del market
de Android superando los 10 millones de descargas.
Plugin Eclipse, Para integrar Android con Eclipse, se necesita un Plugin, que
dependiendo de la versin del IDE que se posea, se instalar de una forma concreta.
Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que
disponga de la mquina virtual Java.
64 Scan & Go
Las versiones ms recientes son las 7.x, que implementan las especificaciones de
Servlet 3.0 y de JSP 2.2. A partir de la versin 4.0, Jakarta Tomcat utiliza el contenedor
de servlets Catalina.
-BarcodeDB : Cliente de base de datos (crea la base de datos, la tabla y permite insertar
nuevos elementos).
Desarrollo tcnico 65
Vemos que la clase Barcode mediante su base de datos SQLite peticiona al servidor los
parmetros que quiere, y ste le devuelve los objetos de la clase ListaCompraData
serializados.
66 Scan & Go
Proyecto Barcode
Esta parte, cuyo proyecto es BarCode referencia al cliente , el usuario que manejar los
datos mediante la aplicacin.
Clase Intents2
a) Ver la lista;
setContentView(R.layout.main);
Desarrollo tcnico 67
db = new DB(this);
Para conseguir una instancia de IntentIntegrator para llamar a las clases que escanean
los cdigos de barras y poder recuperar el resultado.
Al tener estas dos instancias ya podemos llamar mediante intents al mtodo con el cual
se iniciar el escaneo de cdigos de barras al pulsar el botn SCAN.
Intents2.this.integrator.initiateScan();
Para enviar la lista de productos al servidor y hacer la factura se tiene que implementar
el botn Terminar de la pantalla de inicio, primero se enva el cdigo del producto y el
nmero de productos para posteriormente llamar a la clase DownloadedFile que se
conectar con el servidor
dlf.execute(params);
que lo que hace es comprobar que se ha escaneado un cdigo de barras, obtiene la clase
que contiene el resultado del escaneo, se guarda el cdigo obtenido y se inserta en la
base de datos , una vez se guarda ya est guardado se puede volver a realizar el proceso
de escaneado nuevamente.
Clase CustListItemAdapter
En cada fila de la lista se obtiene una imagen del producto escaneado, el nombre del
producto , el precio y el nmero de veces que tenemos ese mismo producto en la lista.
Al final de la lista aparece el total del precio acumulado del listado de productos que
vamos teniendo.
Clase DB
Clase que gestiona las relaciones con la base de datos SQLite, reside en Android y
mantiene los productos escaneados por el cliente, as como su informacin, para
mostrarlos, calcular el total y enviar los datos de la factura al servidor.
que lo que har es insertar en una tabla llamada Cdigos las columnas de cdigo,
nombre, precio, nmero e imagen.
Para obtener un array de objetos del tipo ListaCompraData con la informacin de cada
uno de los productos que existan en la base de datos se tendr que llamar al mtodo
Clase ListaCompra
Activity que muestra informacin sobre los productos escaneados, permite borrarlos de
la lista y aumentar el nmero de productos de la lista mediante un control numrico.
lista.setAdapter(clia);
se obtienen los datos de la base de datos y los devuelve como un array de objetos
ListaCompraData para que los use el adaptador.
Clase DownloadFile
Clase que gestiona las conexiones al servidor, enva los parmetros de los productos y
recibe objetos ListaCompraData serializados, los deserializa y almacena la informacin
en la BD.
Con esta lnea de cdigo se especifica la direccin IP del servidor y el puerto activo del
Tomcat, que servirn para proceder a la descarga de la imagen, donde se utilizar para
identificar el producto en la lista de la compra.
Solo se insertarn los datos en el caso de que se haya recuperado algo del servidor, estos
datos sern la asignacin de la imagen, del nombre, del precio y del nmero de
elementos del producto, guardaremos todos estos datos en la base de datos y en la fila
de la lista.
Desarrollo tcnico 71
Si por el contrario no se ha recurado ningn dato del servidor, quiere decir que la lista
est vaca y por tanto se pasar como nombre del producto sin identificacin y se
actualizar el nmero de productos a uno, posteriormente se proceder a guardar los
datos de la fila.
Clase IntentIntegrator
Con este mtodo se cogen los resultados obtenidos en esta clase para posteriormente
pasarlos a la otra clase llamada IntentResult .
En resumen, esta clase nos facilita la interactuacin con las libreras Zxing de
BarcodeScanner para la lectura de cdigos de barra.
Clase IntentResult
Esta clase obtiene el resultado del escaneo de cdigos de barras invocado a travs del
intent de la clase anterior IntentIntegrator.
Aqu se obtienen por tanto los datos obtenidos por la anterior clase IntentIntegrator,
datos que en este caso ser, la referencia del cdigo de barras del producto que se ha
escaneado, una vez con esta referencia obtenida, ya tenemos capturado el producto
mediante el uso del BarcodeScanner.
Proyecto BarcodeServer
72 Scan & Go
Clase BarcodeServer
Clase que implementa el servlet que recibir las conexiones va HTTP, tanto desde
Android como desde el navegador.
b) recibir los datos necesarios para generar la factura, consultar la informacin a la base
de datos, y enviar la factura al navegador web;
c) recibir una peticin HTTP de un navegador para mostrar la factura del cliente.
En este servlet aparecern los dos mtodos por defecto como son doGet y doPost.
El mtodo anterior doGet inicializa la base de datos, recoge el parmetro que indica el
envo de la factura para posteriormente preparar la factura, donde se crear una la tabla
de productos y precios, para despus poder hacer la consulta a la base de datos del
nombre del producto y el precio.
Con la siguiente direccin, se podr acceder desde el navegador web al cajero, mientras
la aplicacin y el servidor estn funcionando, para poder conocer si se ha enviado
factura de los productos del cliente o por el contrario si an no se ha enviado nada.
localhost:8080/BarCodeServer/?print_bill=server
Clase DB
Clase que gestiona las relaciones con la base de datos SQLite, que mantiene todos los
productos de la aplicacin (no slo los que el cliente escanea, como pasa con la base de
datos de Barcode en Android).
Primero de todo esta clase se conecta a la base de datos y crea las tablas en caso
necesario.
conn=DriverManager.getConnection("jdbc:sqlite:C:/Users/DANI/Documents/WORKS
PACE/BarCodeServer/barcode.sqlite3");
Proyecto BarcodeDB
Clase BarcodeDB
Clase que crea la base de datos SQLite, la tabla de productos, y que inserta nuevos
productos en la base de datos.
e) El navegador (que simula el terminal del cajero), muestra la factura que se utilizar
para que el cliente pague el precio.
76 Scan & Go
INICIO
TERMINAR
ESCANEO LISTA
SERVIDOR
CDIGO
TOMCAT
BARRAS
BORRAR
PRODUCTO
O
SI NO
1-Inicio
La primera fase de todas cuando se abre la aplicacin y se accede al men principal del
programa, aqu se visualizar la imagen en portada que representa a la aplicacin, en este
caso una cebra con un cdigo de barras al fondo haciendo un pequea simbiosis entre el
color de la cebra y el cdigo de barras en cuestin.
2-Escaneo
Despus de pulsar el botn de SCAN se llamar a las libreras del BarcodeScanner para
poder realizar la lectura del cdigo de barras del producto en cuestin.
Una vez se haga la lectura del cdigo se preparar para hacer la lectura del siguiente
cdigo de barras, si se quiere ver la lista de la compra se deber pulsar el botn de
retroceso del celular, para poder volver a la pantalla inicial.
3-Lista
Aqu se visualizar una imagen del producto para identificarlo ms fcilmente , tambin
se ver el nombre del producto, su precio y la cantidad de ese mismo producto, se podr
variar de forma forzada, es decir, empleando los botones ms y menos situados al lado
derecho del precio del producto, o bien se podr variar de forma automtica cuando ese
mismo producto se vuelva a escanear nuevamente.
Si no hay ningn producto agregado la lista permanecer por defecto siempre vaca.
5- Terminar
Este botn situado tambin en el men principal de la aplicacin sirve para mandar la
lista que tenemos echa de productos al ordenador para poder llevar a cabo la factura
final del cliente.
6- Servidor Tomcat
Mientras que por el contrario, si el servidor recibe la peticin del cliente para que ste
muestre la factura, se obtendr una tabla correspondiente a la lista de la compra que el
cliente haya realizado mediante su terminal.
Una de stas mejoras, podra ser la de crear una web del supermercado en cuestin,
dando cabida a los usuarios del mismo, a poder registrarse va online, para
posteriormente administrarles una especie de login, un usuario y contrasea, slo
vlidos para las personas que en su terminal dispongan de la aplicacin Scan&Go, que
servirn para poder acceder al pago de la compra mediante la validacin del servidor.
Con esta idea, se pretende abarcar ms otro tipo de clientes, con herramientas
tecnolgicamente avanzadas, para despus beneficiarse de ventajas como el pago ms
rpido y con menos problemas que el convencional, y por qu no , tambin de ventajas,
descuentos, promociones y bonos que se podra llevar a cabo mediante el uso de
determinada informacin legal del consumidor.
Bibliografa 84
5. Bibliografa
[1] Android. Gua para desarrolladores, Segunda edicin
http://www.android.es/foro/viewtopic.php?f=5&t=58
http://www.ine.es
http://www.ontsi.red.es/ciudadanos/indicator/141
http://www.eleconomista.es/interstitial/volver/empresas/empresas-
finanzas/noticias/3620452/12/11/Un-49-de-los-telefonos-en-Espana-en-el-tercer-
trimestre-son-smartphones.html
http://www.adslzone.net/article4637-android-es-considerado-el-sistema-operativo-del-
futuro.html
http://www.elandroidelibre.com/2010/06/aprendiendo-android-ii.html
http://blog.vidasconcurrentes.com/android/creando-una-aplicacion-de-android-
empaquetado-y-publicacion/
http://www.adslzone.net/article4637-android-es-considerado-el-sistema-operativo-del-
futuro.html
http://www.wikipedia.es
http://www.redusers.com/noticias/ice-cream-sandwich-funciona-en-menos-del-1-de-los-
dispositivos-android/
http://blog.vivevaldemoro.com/2010/10/27/carrefour-scan-go-la-vida-mas-facil/
http://www.youtube.es
http://www.educarm.es/templates/portal/ficheros/websDinamicas/30/cajadelhiper.pdf
http://developer.android.com/reference/android/content/Intent.html
http://blog.sage.es/innovacion-tecnologia/analisis-de-un-sistema-de-autoservicio-en-un-
supermercado
IngenieraTcnicaenTelecomunicacionesespecialidadTelemtica
SCANANDGO
Anexos
DANIELBRAASVILLARDN
PONIENTE:PEREBARBERAN
PRIMAVERAAO2012
ndice
AnexoI.Software ............................................................................................ 1
AnexoII.ContenidodelCDROM .................................................................. 11
Anexo 1
Anexo I. Software
ECLIPSE
Este sofware es necesario para configurar Eclipse correctamente de forma que pueda
trabajar con Android para poder crear aplicaciones.
El ordenador que se ha utilizado para este proyecto ha sido un AMD a 1,9 GHZ con 6
GB de Memoria RAM, el sistema operativo usado ha sido Windows 7.
Es necesario tener instalado el Java Development Kit , para ello solo hace falta bajarse
de manera gratuita en la web oficial de Oracle, mediante el siguiente enlace linkaremos
en la opcin de Java Platform (JDK):
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Para descargar el Android SDK basta con acceder al siguiente enlace y descargarnos la
versin de Windows:
http://developer.android.com/sdk/index.html
2 Scan & Go
Ahora se iniciar Eclipse y una vez puesto en nos pedir que se elija una ruta para
almacenar los datos en nuestro lugar de trabajo
Ahora se instalarn los paquetes. Si sale alguna advertencia de seguridad solo hace falta
presionar Ok. Por ltimo hara falta reiniciar Eclipse para implementar los cambios.
Para configurar el plugin ADT una vez se ha reiniciado Eclipse se debe de acceder a la
pestaa Window > Preferences y seleccionar en el panel izquierdo Android.
All nos pedir seleccionar los paths del Android SDK, por lo que seleccionaremos en
Browse la ruta en donde se guarda el SDK , una vez hecho esto se acepta y se aplican
los cambios.
Ya solo queda aadir plataformas para poder ejecutar nuestras aplicaciones, es decir, las
distintas versiones de la plataforma Android ejecutar las aplicaciones dependiendo de
la versin .
4 Scan & Go
Se debe acceder a la pestaa de Windows > Android SDK Manager, aqu se escoger
los paquetes de las diferentes versiones de Android que se deseen instalar, en este
proyecto se ha optado por la versin 2.2, una de las ms estables de Android.
Una vez instalado las plataformas Andrid se debe configurar la mquina virtual para
poder simular la aplicacin en cuestin.
Para ello hay que acceder al Android Virtual Device Manager , botn que est situado al
lado del SDK Manager que anteriormente se utiliz.
Habr que seleccionar el botn de New para poder configurar una nueva mquina
virtual.
Anexo 5
APACHE TOMCAT
http://tomcat.apache.org/download-70.cgi
Una vez descomprimido el archivo , se obtendr una carpeta resultante , pues bien, con
esta carpeta ya tendriamos el Tomcat instalado, solamente hara falta ubicarla, en este
caso , se ha optado por ubicarla en C:\Users\DANI\Documents.
Una vez instalado y ubicado en algn lugar, se proceder a la configuracin del mismo
de acuerdo con el proyecto.
<role rolename="manager-gui"/>
Una cosa muy a tener en cuenta, es que cuando se modifica el cdigo en eclipse del
proyecto BarcodeServer hay que modificar en Tomcat las clases correspondientes a
dicho proyecto que teniamos en Tomcat, para ello nos iriamos a
C:\Users\DANI\Documents\WORKSPACE\BarCodeServer\build\classes\com\android\
example\server y copiariamos las clases BarCodeServer y DB que son de extensin
.class al directorio del proyecto del Tomcat donde tenemos estas clases,
C:\Users\DANI\Documents\apache-tomcat-7.0.27\webapps\BarCodeServer\WEB-
INF\classes\com\android\example\server, esto se hace para pasar la compilacin de las
clases llevadas a cabo en eclipse al servidor Tomcat.
Una vez se ha configurado el Tomcat, se proceder a la iniciacin del mismo. Para ello,
habr que acceder a bin\startup.bat y ejecutar dicho archivo.
Para apagarlo habr que acceder al mismo sitio pero ejecutar el archivo shutdown.bat en
lugar del startup.bat.
BASE DE DATOS
Previamente, lo que se ha hecho es crear una nueva configuracin de Java para poder
exportar el archivo jar de la base de datos, esto se hace mediante el eclipse en el men
Run>Run Configurations y aqu se crea una nueva configuracin del tipo
JavaApplication en lugar de AndroidApplication para el caso de los proyectos
anteriores.
Una vez creada la nueva configuracin, se hace clik con el botn derecho en el proyecto
Android llamado BarcodeDB y seleccionamos la opcin de Export, una vez dentro
accederemos a la columna de la izquierda, abrimos la carpeta de java y luego
seleccionamos la opcin de Runnable Jar File, continuaremos seleccionando la
configuracin java creada anteriormente y seleccionaremos la ubicacin donde se
exportar ese archivo jar.
Anexo 9
Aqu entonces, se ubicar una nueva foto del producto que se quiera aadir, despus
procederemos a abrir el terminal del pc (smbolo del sistema), nos ubicaremos en el sitio
donde habiamos exportado el arhivo .jar referente a la base de datos de java, y se
ejecutara la siguiente sentencia de la siguiente forma :
Entre parntesis se ha puesto los campos que hay que rellenar para cada producto, el de
fichero imagen por ejemplo ,hace falta seleccionar la ruta donde est ubicada la imagen
que hemos puesto, como se dijo anteriormente, en la carpeta del proyecto
BarcodeServer, dentro de la carpeta imgenes.
En los dems campos hay que meter el cdigo del producto tal cual, el nombre que
queramos darle al producto, y finalmente su precio.
BARCODE SCANNER
Para proceder a la instalacin, solamente habr que acceder al Play Store de Android ,
buscarla y descargarla totalmente gratis.
10 Scan & Go
Anexo 11
IngenieraTcnicaenTelecomunicacionesespecialidadTelemtica
SCANANDGO
Estudioeconmico
DANIELBRAASVILLARDN
PONIENTE:PEREBARBERAN
PRIMAVERAAO2012
ndice
Presupuesto........................................................................................................................................................ 1
Desglose de actividades..................................................................................................................................... 1
Coste personal ................................................................................................................................................... 2
Coste material.................................................................................................................................................... 2
Coste total proyecto........................................................................................................................................... 3
Estudio econmico 1
Presupuesto
Aqu se realiza el coste total del proyecto, teniendo en cuenta que lo que cobra un
Ingeniero de Telecomunicaciones es aproximadamente de 40 euros por hora, se ha
realizado los siguientes clculos .
Desglose de actividades
Coste personal
Coste material
Coste
Eclipse 0 euros
Tomcat 0 euros
1000 euros
Estudio econmico 3