Scan and go
Abstract
El objetivo principal del proyecto es crear una aplicación 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 código de barras. Otro objetivo sería después de tener la lista de la compra hecha sincronizar el dispositivo móvil con el cajero para poder pagar directamente el precio final de la compra en cuestión y así evitar la espera que conlleva el hacer cola a la hora de pagar.
Full text
Ingeniería Técnica en Telecomunicaciones especialidad Telemática SCAN AND GO Memoria DANIEL BRAÑAS VILLARDÓN PONIENTE: PERE BARBERAN PRIMAVERA AÑO 2012
Dedicatoria Dedicado a toda mi familia y a todos los amigos que han confiado siempre en mí
Resum L’objectiu principal del projecte es crear una aplicació per a smartphones que permeti a usuaris d’un establiment, en el aquest cas un supermercat, poder fer la compra i la mateixa vegada la seva pròpia factura de tots els productes mitjançant l’escaneig de codis de barres. Un altre objectiu seria després de tindre la llista de la compra feta sincronitzar el dispositiu móvil amb el caixer per tal de poder pagar directament l´import final de la compra i així estalviar la demora que provoca el fet de fer cua a l´hora de pagar. Resumen El objetivo principal del proyecto es crear una aplicación 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 código de barras. Otro objetivo sería después de tener la lista de la compra hecha sincronizar el dispositivo móvil con el cajero para poder pagar directamente el precio final de la compra en cuestión 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. Introducción .................................................................................................. 1 1.1 Problemática de los supermercados ............................................................................ 2 1.2 Destino del proyecto .................................................................................................... 4 1.3 Decisión del proyecto .................................................................................................. 5 1.4. Objetivo del proyecto .................................................................................................. 5 1.5 Estructura de la memoria ............................................................................................. 6 2. Trabajos relacionados .................................................................................... 7 2.1 Dispositivos semejantes ............................................................................................... 7 2.2 Sistemas operativos ...................................................................................................... 9 2.2.1 Tipos de sistemas operativos ....................................................................................... 9 2.4 Historia del sistema operativo Android .................................................................... 32 3. Desarrollo técnico ....................................................................................... 60 3.1 Aplicación Scan & Go ............................................................................................... 60 3.2 Descripción de la aplicación ...................................................................................... 64 4. Conclusiones y trabajo futuro ..................................................................... 83 4.1 Conclusiones finales .................................................................................................. 83 4.2 Trabajo futuro ............................................................................................................ 83 5. Bibliografía .................................................................................................. 84 Índice de figuras Figura 2.1 Chip RFID ........................................................................................ 7 Figura 2.2 Scan&Go Carrefour ......................................................................... 8
II Figura 2.3 Logotipo Android ............................................................................ 9 Figura 2.4 Logotipo iOS.................................................................................. 10 Figura 2.5 Logotipo Windows Phone ............................................................. 11 Figura 2.6 Logotipo Blackberry ...................................................................... 12 Figura 2.7 Logotipo Symbian ......................................................................... 13 Figura 2.8 Composición código de barras ...................................................... 15 Figura 2.9 Áreas de un código de barras ......................................................... 16 Figura 2.10 Lectura de código de barras ......................................................... 23 Figura 2.11 Lector de código de barras de sobremesa .................................... 23 Figura 2.12 Lector de código de barras de mano ............................................ 24 Figura 2.13 Lector de código de barras de Smartphone (cámara integrada) .. 24 Figura 2.14 Sistema NFC ................................................................................ 26 Figura 2.15 Identificación código QR ............................................................. 27 Figura 2.16 Código QR ................................................................................... 28 Figura 2.17 Código bokode ............................................................................ 29 Figura 2.18 Código datamatrix ....................................................................... 31 Figura 2.19 Gráfica circular de la distribución de las versiones de Android . 41 Figura 2.21 Esquema ciclo de vida de una Activity ...................................... 48 Figura 2.22 Emulador android de eclipse .................................................... 50 Figura 2.23 Ejemplo de Manifest.xml ........................................................... 52 Figura 2.24 Ejemplo drawable-hdpi ............................................................... 53 Figura 2.25 Archivo xml ................................................................................ 54 Figura 2.26 Workspace eclipse ..................................................................... 55 Figura 2.27 Carpeta Proyecto en Workspace ............................................... 56 Figura 2.28 Contenido carpeta proyecto de nuestro Workspace ................... 57 Figura 2.29 Contenido perspectiva del explorador de paquetes de Eclipse... 57 Figura 2.30 Archivo apk................................................................................. 58 Figura 2.31 Directorio raíz dispositivo móvil ................................................. 59 Figura 3.1 Gráfico explicativo del funcionamiento de Scan&Go.................. 61 Figura 3.2 Barcode Scanner ............................................................................ 62
III Figura 3.3 Eclipse ............................................................................................ 63 Figura 3.4 Diagrama relacional aplicación Scan&Go .................................... 65 Figura 3.5 Ciclo de vida de la aplicación ........................................................ 76 Figura 3.6 Pantalla principal Scan&Go .......................................................... 77 Figura 3.7 Pantalla Scan de Scan&Go ............................................................ 78
6 Scan & Go 1.5 Estructura de la memoria Se puede dividir el proyecto en dos fases, la primera el dispositivo móvil interactúa con el producto mediante la lectura de código de barras, éste código se capta con el celular y esa referencia la enviamos al servidor con una petición que lo que pretende es conocer si dicho producto está en nuestra base de datos para posteriormente agregarlo a nuestra lista de la compra mediante el dispositivo móvil. La segunda parte está basada en la interconexión de nuestro dispositivo móvil con el cajero del supermercado o en nuestro caso, nuestro ordenador, donde una vez se obtiene la lista de la compra mediante la aplicación móvil, se puede proceder al volcado de toda la información que hemos capturado para posteriormente realizar el pago final.
Trabajos relacionados 7 2. Trabajos relacionados 2.1 Dispositivos semejantes Antes de empezar a desarrollar el proyecto se ha llevado a término un estudio de los sistemas que utilizan éste sistema o similares. Tecnología RFID La identificación por radiofrecuencia es un sistema de almacenamiento y recuperación de datos remoto que usa dispositivos denominados etiquetas, tarjetas, transpondedores o tags RFID. El propósito fundamental de la tecnología RFID es transmitir la identidad de un objeto (similar a un número de serie único) mediante ondas de radio. Ejemplos prácticos de esta tecnología los tendríamos en los chips que están integrados en el Teletac, los chips que están integrados en los libros de una biblioteca también, y los que están integrados en la ropa. Figura 2.1 Chip RFID
8 Scan & Go Carrefour Al entrar en el supermercado, utilizando la tarjeta de socio del Club Carrefour, el cliente recibe un lector de códigos de barras, con una pequeña pantalla, que utilizará durante el proceso de compra para escanear los artículos que compra. El aparato muestra el importe de cada artículo y el total de tu compra, pudiendo controlar lo que compras y lo que gastas. Al llegar a las cajas especiales de Scan & Go, el sistema informará de si su compra ha sido seleccionada de manera aleatoria para una revisión de un determinado número de artículos, o de si se posee luz verde para realizar el pago. Posteriormente sólo queda realizar el pago con la tarjeta, sin sacar un sólo artículo 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 España tenemos este sistema ubicaciones como por ejemplo en Madrid, El Pinar de las Rozas y Alcobendas y en Barcelona, Cabrera de Mar. Figura 2.2 Scan&Go Carrefour
Trabajos relacionados 9 2.2 Sistemas operativos 2.2.1 Tipos de sistemas operativos En los siguientes puntos se analizan los diversos sistemas operativos que incorporan los Smartphone actuales y un lenguaje de programación más adecuado para el desarrollo de una aplicación que se ubicara en el Smartphone. Android Este sistema operativo es el empleado en el proyecto por varias razones, la primera y la más importante es porque hay más aplicaciones gratuitas en el market(llamado ahora Google Play) que en el sistema IOS empleado por Iphone, esto hace más accesible a los usuarios para descargar aplicaciones de todo tipo, un claro los tenemos en dos aplicaciones muy famosas que están disponibles para los dos sistemas, como son Angry Birds y Whatsapp, de pago las dos en IOS mientras que Android totalmente gratuitas y en segundo lugar, el proceso de multitarea de IOS no está al mismo nivel que Android. Android es un sistema operativo desarrollado por la Open Handset Alliance, liderada por Google, es un consorcio de 78 compañías de hardware, software y telecomunicaciones dedicadas al desarrollo de estándares abiertos para dispositivos móviles. Este sistema operativo está basado en una versión modificada del Kernel de Linux. Tiene una gran comunidad de desarrolladores escribiendo aplicaciones para extender la funcionalidad de los dispositivos. A la fecha, se han sobrepasado las 400.000 aplicaciones . Figura 2.3 Logotipo Android
10 Scan & Go iOS Es un sistema operativo móvil de Apple. Originalmente desarrollado para el iPhone, siendo después 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. La interfaz de usuario de iOS está basada en el concepto de manipulación directa, usando gestos multitáctiles. Los elementos de control consisten de deslizadores, interruptores y botones. La respuesta a las órdenes del usuario es inmediata y provee de una interfaz fluida. La interacción con el sistema operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen definiciones diferentes dependiendo del contexto de la interfaz. iOS tiene 4 capas de abstracción: la capa del núcleo del sistema operativo, la capa de Servicios Principales, la capa de Medios de comunicación y la capa de Cocoa Touch. El sistema operativo ocupa bastante menos de medio gigabyte del total del dispositivo, de 8 GB o de 16 GB. Esto se realizó para poder soportar futuras aplicaciones de Apple. Figura 2.4 Logotipo iOS
Trabajos relacionados 11 Whindows Phone Fue desarrollado por Microsoft, y diseñado para su uso en teléfonos inteligentes (Smartphones) y otros dispositivos móviles. Windows Phone hace parte de los sistemas operativos con interfaz natural de usuario. Se basa en el núcleo del sistema operativo Windows CE y cuenta con un conjunto de aplicaciones básicas utilizando las API de Microsoft Windows. Está diseñado para ser similar a las versiones de escritorio de Windows estéticamente. Anteriormente llamado Windows Mobile es un sistema operativo móvil compacto desarrollado por Microsoft, y diseñado para su uso en teléfonos inteligentes (Smartphone) y otros dispositivos móviles. Se basa en el núcleo del sistema operativo Windows CE y cuenta con un conjunto de aplicaciones básicas utilizando las API de Microsoft Windows. Está diseñado para ser similar a las versiones de escritorio de Windows estéticamente. Windows Mobile ha evolucionado y cambiado de nombre varias veces durante su desarrollo, siendo la última versión la llamada Windows Phone 7, anunciada el 15 de febrero del 2010 y sujeta a disponibilidad a finales de 2010. Figura 2.5 Logotipo Windows Phone
12 Scan & Go Blackberry Fue desarrollado por Research In Motion para sus dispositivos BlackBerry. El sistema permite multitarea y tiene soporte para diferentes métodos de entrada adoptados por RIM para su uso en computadoras de mano, particularmente la trackwheel, trackball, touchpad y pantallas táctiles. El sistema operativo proporciona soporte para Java MIDP 1.0 y WAP 1.2. Las versiones anteriores permitían la sincronización inalámbrica con Microsoft Exchange Server para el correo electrónico y calendario, al igual que Lotus Domino e-mail. El actual OS 5.0 proporciona un subconjunto de MIDP 2.0, y permite la activación inalámbrica completa y la sincronización con Exchange de correo electrónico, calendario, tareas, notas y contactos, y añade un soporte para Novell GroupWise y Lotus Notes. Figura 2.6 Logotipo Blackberry Symbian Fue desarrollado gracias a la unión de varias empresas de telefonía móvil, 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 Sus orígenes provienen de su antepasado EPOC32, utilizado en PDA’s y Handhelds de PSION. El objetivo de Symbian fue crear un sistema operativo para terminales móviles que pudiera competir con el de Palm o el Windows Mobile de Microsoft y ahora Android de Google Inc., iOS de Apple Inc. y Blackberry 6 RIM. Figura 2.7 Logotipo Symbian 2.3 Códigos de barras El código de barras es un código basado en la representación mediante un conjunto de líneas paralelas verticales de distinto grosor y espaciado que en su conjunto contienen una determinada información. De este modo, el código de barras permite reconocer rápidamente un artículo en un punto de la cadena logística y así poder realizar inventario o consultar sus características asociadas. Actualmente, el código de barras está implantado masivamente de forma global. 2.3.1 Definición de los códigos de barras Es un sistema que permite la identificación de las unidades comerciales y logísticas de forma única, global y no ambigua. Este conjunto de barras y espacios codifican pequeñas cadenas de caracteres en los símbolos impresos.
14 Scan & Go La correspondencia o mapeo entre la información y el código que la representa se denomina simbología. Estas simbologías pueden ser clasificadas en dos grupos atendiendo a dos criterios diferentes: Continua o discreta: los caracteres en las simbologías continuas comienzan con un espacio y en el siguiente comienzan con una barra (o viceversa). Sin embargo, en los caracteres en las simbologías discretas, éstos comienzan y terminan con barras y el espacio entre caracteres es ignorado, ya que no es lo suficientemente ancho. Bidimensional o multidimensional: las barras en las simbologías bidimensionales pueden ser anchas o estrechas. Sin embargo, las barras en las simbologías multidimensionales son múltiplos de una anchura determinada (X). De esta forma, se emplean barras con anchura X, 2X, 3X, y 4X. Nomenclatura básica Módulo: Es la unidad mínima o básica de un código. Las barras y espacios están formados por un conjunto de módulos. Barra: El elemento oscuro dentro del código. Se hace corresponder con el valor binario 1. Espacio: El elemento claro dentro del código. Se hace corresponder con el valor binario 0. Carácter: Formado por barras y espacios. Normalmente se corresponde con un carácter alfanumérico.
Trabajos relacionados 15 Figura 2.8 Composición código de barras Funciones técnicas de los caracteres contenidos en un código de barras: 1-Quiet zone 2-Carácter inicio (derecha), carácter terminación (izquierda). 3-Carácter de datos 4-Checksum 2.3.2 Características de los códigos de barras Un símbolo de código de barras puede tener, a su vez, varias características, entre las cuales podemos nombrar: Densidad: Es la anchura del elemento (barra o espacio) más angosto dentro del símbolo de código de barras. Está dado en mils (milésimas de pulgada). Un código de barras no se mide por su longitud física sino por su densidad.
22 Scan & Go 2.3.4 Lectura de los códigos de barras Es también conocido en Europa como sistema EAN -European Article Numbering o Numeración Europea de Artículoses un método de codificación que permite identificar casi de inmediato todo tipo de productos mediante un lector especial conectado a una caja registradora informatizada. 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 mercancías, y por otro lado evitar errores de cobro e inútiles esperas del cliente ante la caja, proporcionándole además un detallado listado de sus compras. El código EAN (existen muchos otros, pero ahora solo hablaremos del EAN 13) consta de trece números sobre los cuales figura su correspondiente transcripción en forma de barras. Los dos primeros dígitos representan la asociación que asigna los códigos a las empresas fabricantes y distribuidoras. La Asociación Española de Codificación Comercial (AECOC) tiene atribuido el número 84, por lo que los códigos de todos los artículos producidos por empresas españolas empiezan por esta cifra. Las cinco posiciones que siguen a la clave del país corresponde al código asignado a la empresa, mientras las cinco siguientes están reservados para designar el producto concreto, numerado por el propio fabricante o distribuidor. El último dígito es una cifra de control, que resulta de aplicar un algoritmo matemático a los otro doce dígitos. Si en el proceso de lectura del código de barras el número de control no coincide con el resultado de las operaciones indicadas por el algoritmo -que la caja registradora efectúa casi de forma instantánea-, esto significa que se ha producido un error y el sistema pide una nueva lectura.
Trabajos relacionados 23 Cada uno de los dígitos está representado como un grupo de siete módulos de tonalidades claras y oscuras repartidas de manera que cada dígito está formado siempre por dos zonas claras y dos oscuras de anchura variable, según el número de módulos contiguos de un mismo tipo. Esta anchura variable es la que permite que el dispositivo lector decodifique las barras del sistema EAN. Figura 2.10 Lectura de código de barras Figura 2.11 Lector de código de barras de sobremesa
24 Scan & Go Figura 2.12 Lector de código de barras de mano Figura 2.13 Lector de código de barras de Smartphone (cámara integrada)
Trabajos relacionados 25 2.3.5 Otros códigos similares NFC NFC significa Near Field Communication. Se trata de una tecnología inalámbrica 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 están presentes en abonos de transporte o incluso sistemas de seguridad de tiendas físicas. NFC es una plataforma abierta pensada desde el inicio para teléfonos y dispositivos móviles. El enfoque de esta tecnología es para comunicación instantánea, es decir, identificación y validación de equipos/personas. Su punto fuerte está en la velocidad de comunicación, que es casi instantánea sin necesidad de emparejamiento previo. Como contrapartida, el alcance de la tecnología NFC es muy reducido, pues se mueve como máximo en un rango de los 20 cm. A su favor también juega que su uso es transparente a los usuarios y que los equipos con tecnología NFC son capaces de enviar y recibir información al mismo tiempo. La tecnología NFC puede funcionar en dos modos: Activo, en el que ambos equipos con chip NFC generan un campo electromagnético e intercambian datos. Pasivo, en el que solo hay un dispositivo activo y el otro aprovecha ese campo para intercambiar la información. La premisa básica a la que se acoge el uso de la tecnología NFC es aquella situación en la que es necesario un intercambio de datos de forma inalámbrica. Lo usos que más futuro tienen son la identificación, la recogida e intercambio de información y sobre todo, el pago.
26 Scan & Go Identificación: el acceso a lugares donde es precisa una identificación podría hacerse simplemente acercando nuestro teléfono móvil o tarjeta con chip NFC a un dispositivo de lectura. Los abonos de autobús son un ejemplo muy válido. Recogida/intercambio de datos: Google es el principal protagonista de este uso, pues en combinación con las etiquetas RFID, utilidades como marcar dónde estamos, recibir información de un evento o establecimiento son inmediatas. Pago con el teléfono móvil: 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 tecnología está camino de ser el método de pago del futuro. Precisamente en España ha finalizado una de las mayores pruebas con esta tecnología como método de pago. Ha sido en Sitges, con la colaboración de Visa, La Caixa y Telefónica. Sobre la implantación de la tecnología en dispositivos móviles, Nokia tiene previsto integrarla en todos sus teléfonos nuevos de este año 2011, Apple tenía previsto utilizarla en el Iphone 4 S pero al final no lo hicieron mientras que Blackberry si que lo ha hecho en su terminal Bold 9900/9930. Y en cuanto a Google, ya lo ha colocado en el Nexus S y ha dado soporte para el mismo en Android 2.3. Figura 2.14 Sistema NFC
Trabajos relacionados 27 CÓDIGOS QR Los códigos QR, ( en inglés QR Code) son un tipo de códigos de barras bidimensionales. A diferencia de un código de barras convencional ( por ejemplo EAN13, Código 3 de 9, UPC), la información está codificada dentro de un cuadrado, permitiendo almacenar gran cantidad de información alfanumérica. Los códigos QR son fácilmente identificables por su forma cuadrada y por los tres cuadros ubicados en las esquinas superiores e inferior izquierda. Figura 2.15 Identificación código QR Aunque el desarrollo inicial de los Códigos QR tenía como objetivo principal su utilización en la industria de la automoción, hoy por hoy la posibilidad de leer códigos QR desde teléfonos y dispositivos móviles permite el uso de Qr Codes en un sinfín de aplicaciones completamente diferentes de las que originales como pueden ser: -Publicidad -Campañas de marketing -Merchandising -Diseño Gráfico -Papelería corporativa ( tarjetas de visita, catálogos) -Internet, Webs, blogs
28 Scan & Go Para poder leer estos códigos existen múltiples lectores QR gratuitos para la mayoría de móviles y marcas, ( Nokia, IPhone, BlackBerry, Samsung, Siemens, etc..) Un detalle muy importante sobre el código QR es que su código es abierto y que sus derechos de patente (propiedad de Denso Wave) no son ejercidos. Figura 2.16 Código QR CÓDIGOS BOKODES Los Bokodes son un nuevo tipo de tecnología de etiquetas digitales, elaboradas por la Camera Group, del MIT media Lab. Esta propuesta es capaz de almacenar cientos de veces más información que los métodos actuales (código de barras, QR code, entre otros). Y lo que lo hace aún más sorprendente es el tamaño, aproximadamente 3mm contra los métodos tradicionales de alrededor de 30mm. Sin embargo, a pesar de ser pequeño y almacenar gran cantidad de información; la gran ventaja radica en que a diferencia a los códigos actuales , que requieren al menos un posicionamiento de 30 cm para su lecturas siendo capaces de ser leídos a distancias desde 4 metros a incluso 20 metros. Estamos hablando de un código de largo alcance, donde solo es necesaria una cámara fotográfica común, 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 había sido utilizada. Un ejemplo, dice el Dr. Mohan, puede ser en Google Streetview, los locales podrían colocar en las puertas un Bokode con la información de su negocio y el menú de especialidades, cuando la cámara de Google tome la fotos del local, automáticamente adquirirá la data del local y demás información insertada en la etiqueta. Y dada a la característica del Bokode, de presentar diferente tipo de data según su observación angular, podría ser utilizada en la industria de video juegos ó para avances en realidad aumentada. El diseño explota el efecto Bokeh originalmente encontrado en los lentes de cámaras, los cuales mapean los rayos salientes de un punto en una escena sin foco en forma de discos semi-borrosos en el sensor de la cámara. Utilizan código binario para estimar la distancia relativa y el ángulo de la cámara. Figura 2.17 Código bokode
30 Scan & Go CÓDIGOS DATAMATRIX Datamatrix, o codificación de datos 2D, es un nuevo sistema industrial de codificación bidimensional que permite la generación de un gran volumen de información en un formato muy reducido, con una alta fiabilidad de lectura gracias a sus sistemas de información redundante y corrección de errores (legible hasta con un 20%-30% dañado). Además no es necesario un alto contraste para reconocer el código. El código está formado por celdas de color blanco y negro (perforadas o no perforadas en el caso de la micropercusión) que forman una figura cuadrada o rectangular. Cada una de esas celdas representa un bit de información. La información puede estar codificada como texto o datos en bruto." Es un código de barras de 2 dimensiones compuesto por módulos cuadrados blancos y negros, que puede almacenar números y texto hasta 2kB. Además permite incluir códigos de corrección de errores para mejorar su decodificación en códigos parcialmente dañados. Debido a su formato y la capacidad de corregir errores, se han convertido en una solución óptima para ser leídos de pantallas de equipos celulares o handhelds. Aplicaciones: Tickets Cupones Trazabilidad Mobile Marketing Identificación
Trabajos relacionados 31 Figura 2.18 Código datamatrix
38 Scan & Go -Marco por voz y compartir contactos por Bluetooth -Soporte para contraseñas numéricas y alfanuméricas -Soporte para campos de carga de archivos en la aplicación Browser -Soporte para la instalación de aplicación en la memoria expandible -Soporte para Adobe Flash 10.1 -Soporte para pantallas de alto número de Puntos por pulgada, tales como 4" 720p 2.3 (Gingerbread)55 Basado el kernel de Linux 2.6.35.7 El 6 de diciembre de 2010, el SDK 2.3 (Gingerbread) fue liberada. Los cambios incluyeron: -Actualización del diseño de la interfaz de usuario -Soporte para pantallas extra grandes y resoluciones WXGA y mayores -Soporte nativo para telefonía VoIP SIP -Soporte para reproducción de videos WebM/VP8, y decodificación de audio AAC -Nuevos efectos de audios como reverberación, ecualización, la virtualización de los auriculares, y refuerzo de graves -Soporte para Near Field Communication -Funcionalidades de cortar, copiar y pegar disponibles en a lo largo del sistema
Trabajos relacionados 39 -Teclado multi-táctil rediseñado -Soporte mejorado para desarrollo de código nativo -Mejoras en la entrada de datos, audio y gráficos para desarrolladores de juegos -Recolección de elementos concurrentes para un mayor rendimiento -Soporte nativo para más sensores (como giroscopios y barómetros) -Un administrador de descargas para descargar archivos grandes -Administración de la energía mejorada y control de aplicaciones mediante la administrador de tareas -Soporte nativo para múltiples cámaras -Cambio de sistema de archivos de YAFFS a ext4 3.0 / 3.1 / 3.2 (Honeycomb) -Mejor soporte para tablets -Escritorio 3D con widgets rediseñados -Sistema multitarea mejorado -Mejoras en el navegador web predeterminado, entre lo que destaca la navegación por pestañas, autorelleno de formularios, sincronización de favoritos con Google Chrome y navegación privada -Soporte para videochat mediante Google Talk -Mejor soporte para redes Wi-Fi
40 Scan & Go -Añade soporte para una gran variedad de periféricos y accesorios con conexión USB: teclados, ratones, hubs, dispositivos de juego y cámaras digitales. Cuando un accesorio está conectado, el sistema busca la aplicación necesaria y ofrece su ejecución. -Los widgets pueden redimensionarse de forma manual sin la limitación del número de cuadros que tenga cada escritorio. -Se añade soporte opcional para redimensionar correctamente las aplicaciones inicialmente creadas para móvil para que se vean bien en Tablets 4.0 (Ice Cream Sandwich) -Interfaz estilo Honeycomb, en cualquier dispositivo, homogeneidad entre teléfonos, televisiones, tablets, netbooks -Barra de estado redimensionable -Reconocimiento de voz del usuario -Reconocimiento facial, lo que haría que puedas cambiar la vista -Un único y nuevo framework para las aplicaciones
Trabajos relacionados 41 En la gráfica siguiente se muestra claramente que actualmente la versión más utilizada de Android es la correspondiente a la 2.2. La versión 4.0 no aparece en el gráfico ya que actualmente funciona solamente en un dispositivo móvil el Nexus One y con muchos problemas. Figura 2.19 Gráfica circular de la distribución de las versiones de Android Extraída de http://www.ticbeat.com/tecnologias/historia-android-infografi/
42 Scan & Go 2.4.2 Programación en Android En lo que se refiere al desarrollo de aplicaciones, se pretendía que el entorno fuese cómodo y fácil para los programadores, y de coger aplicaciones ya existentes fuese lo más rápido y fácil posible. De ahí la elección de Java, por ser un lenguaje popular del cual había muchas aplicaciones hechas, a parte de diversos entornos gráficos de desarrollo integrados. A pesar de esto, utilizar Java ME implicaba la compra de licencias a Sun Microsystems y según Google, esta empresa no estaba preparada para la siguiente generación de teléfonos inteligentes. Por otro lado, utilizar la maquina virtual y las API de Java SE directamente (las cuales no habían estado optimizadas para dispositivos pequeños) no se adaptaban a las necesidades de Android. 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á diseñada para ejecutar cada aplicación aislada, en una maquina virtual diferente Figura 2.20 Gráfica máquina virtual Android
Trabajos relacionados 43 Gracias al proyecto Apache Harmony, además, Android proporciona un subconjunto relativamente completo de la API de Java SE. De esta forma, crear o llevar aplicaciones Java, ya sean en código fuente o en formato binario resulta en algunos casos trivial. A pesar de esto, la API de Google no es 100% compatible con la de Java SE. Bibliotecas como las de entorno grafico no están disponibles en Android. Además conceptos como la gestión de la seguridad han sido completamente reinventados. El resultado es una plataforma que no es estrictamente Tecnología Java, simplemente usa el lenguaje Java como base para crear aplicaciones. Estructura de una aplicación En este apartado se definen y explican los 4 componentes o bloques básicos que puede contener una aplicación. No todas las aplicaciones requieren de los 4 tipos, pero si una combinación entre algunos de ellos. Cada vez que queramos usar uno de estos componentes se debe de especificar en un archivo llamado AndroidManifest.xml. Activity Un Activity es el componente inicial de una aplicación, y por ello el más importante. Se podría definir como una simple pantalla de la aplicación. Cada actividad se define en una clase aparte y se identifica por extender de la clase Activity. Sus funciones son mostrar una interfaz con vistas (Views) y responde a eventos concretos. Para pasar de una Activity a otra, se utiliza la clase Intent, en la que se debe indicar la activity origen y la activity destino.
44 Scan & Go Intent Receiver Los Intent Receiver se utilizan para códigos que se quieren ejecutar cuando sucede un evento externo, por ejemplo cuando llaman al teléfono o se ha localizado la posición GPS. A diferencia de los activities, estos no muestran una interfaz, en vez de eso muestran una notificación avisando al usuario que algo ha ocurrido. No es necesario definir los intents receivers en el AndroidManifest.xml, ya que pueden llamarse usando Context.registerReceiver(). Service Service o servicio es un código que define una acción que se realizará en segundo plano, como puede ser localizar la posición GPS del usuario, mientras el usuario está consultando el tiempo que hará hoy. Por ello, se trata de un código no visible, suele utilizarse mientras se está en un activity. Se ejecuta usando Context.startService() y este terminará cuando finalice su función. 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 información. Se trata de una clase que implementa métodos para dejar que otras aplicaciones puedan guardar y obtener esos datos mediante el gestor contentprovider.
Trabajos relacionados 45 AndroidManifest.xml El AndroidManifest.xml es un fichero necesario para cualquier aplicación Android. Se encuentra en la carpeta raíz por defecto y describe valores globales de la aplicación. Incluye la descripción de las actividades y servicios, el tipo de información de cada actividad y que pueden soportar y como serán ejecutadas. También se definen los permisos, librerías y actividades que se usarán en la aplicación. A continuación se mencionan las opciones más importantes que se pueden definir en el manifest. Package: situación de los ficheros que se Uses-premission: permisos que se le otorgan a la aplicación que por defecto no tiene. Ej: Acceso a Internet. <uses-permission android:name="android.permission.INTERNET" /> Uses-library: librerías de Google en el programa. Ej: Mapas de Google. <uses-library android:name="com.google.android.maps" /> Activity: permite a una actividad iniciarse. Todas las activities deben estar especificadas en el AndroidManifest.xml. El siguiente código debe incluirse en la actividad inicial para que sea la primera en ejecutarse. <category android:name="android.intent.category.LAUNCHER" />
46 Scan & Go Ciclo de vida de las activities y tratamiento. 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 están ejecutándose. 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 según su interacción con el usuario: Activa o en ejecución. Este estado se da cuando la activity está en la parte superior de la pila, es la última activity creada por la aplicación y será la última que el sistema intente eliminar. En pausa. Este estado se da cuando una activity deja de ser la principal pero todavía queda visible en pantalla, esto es posible en activities transparentes que dejan ver la inferior. Ésta continúa viva manteniendo todo la información del usuario. Parada. A diferencia del el estado “pausa” la activity en este estado no es visible en pantalla. Sigue manteniendo la información del usuario pero frecuentemente será eliminada por el sistema para liberar memoria. Eliminada, puede ser porque el sistema necesite memoria o simplemente porque la aplicación lo ha ordenado.
Trabajos relacionados 47 Podemos ver que el ciclo de vida de una aplicación está relacionando con el ciclo de vida de una activity, dando prioridad a los procesos que contienen una. Como conclusión Android considera como imprescindibles aquellos procesos con los que el usuario está interaccionando y hace todo lo posible para que no le afecten estados críticos de memoria que se puedan dar. Capítulo 1: Presentación de ANDROID 17 Para manejar el estado de las activities tenemos encontramos los siguientes métodos incluidos en la clase activity: OnCreate(), OnDestroy(), OnPause(), OnStop(), OnFrezze(), OnResume() , OnRestart() y Finish(). Cada vez que se lanza una aplicación o pasamos de una activity a otra, ésta es creada por el sistema, en cambio si se navega hacia atrás ésta puede ser restablecida (recuperando toda la información del usuario) o volviendo a ser creada de nuevo, también se pueden poner en pausa, en ambos casos ésta pasa a estar en segundo plano. Una activity puede estar finalizada por la aplicación, o por el sistema en caso de que éste necesite memoria.
54 Scan & Go rápido y sencillo crear una UI. Este modelo está basado en el diseño de páginas Web, donde se separan el diseño y las manipulación de los datos. En la siguiente figura se muestra el estado de un xml dentro de la pestaña “graphical layout”, se observa que a la izquierda hay una paleta con una gran variedad de carpetas y dentro de estas se encuentran todo tipo de herramientas que podemos agregar a nuestro xml, todas ellas aparecen de forma muy visual y son reconocidas muy fácilmente, como parecido razonable nos vendría a la mente Visual Basic. Figura 2.25 Archivo xml
Trabajos relacionados 55 Instalar un .apk El archivo apk es el archivo ejecutable que se generará automáticamente en el proyecto que se ha creado, este archivo servirá para posteriormente instalar el proyecto android en el dispositivo móvil, para saber donde se guarda este archivo, primero procederemos a irnos a la ruta donde se guarda el Workspace en eclipse Figura 2.26 Workspace eclipse Después se procederá a la ubicación en la carpeta de nuestro proyecto, en este caso será el proyecto llamado Intents2
56 Scan & Go Figura 2.27 Carpeta Proyecto en Workspace Una vez dentro se observa que tenemos las mismas carpetas que veíamos en la perspectiva de explorador de paquetes de Eclipse.
Trabajos relacionados 57 Figura 2.28 Contenido carpeta proyecto de nuestro Workspace Figura 2.29 Contenido perspectiva del explorador de paquetes de Eclipse
58 Scan & Go 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 aplicación en el dispositivo móvil. Figura 2.30 Archivo apk Mediante el cable usb se conectará el dispositivo móvil y el ordenador y se procederá a copiar el archivo apk del proyecto en el directorio raíz del dispositivo móvil.
Trabajos relacionados 59 Figura 2.31 Directorio raíz dispositivo móvil
60 Scan & Go 3. Desarrollo técnico En este apartado se pretende dar a conocer el funcionamiento de la aplicación de forma explicativa, de forma un poco más detallada también, y saber cuáles han sido las herramientas que se han llevado a cabo y el por qué de las mismas, para la obtención del producto final. También se pretende dar a conocer el uso de las clases de este proyecto y su relación entre ellas. 3.1 Aplicación Scan & Go Iniciar Scan&Go Agregar productos Obtener factura Realizar pago
Desarrollo técnico 61 Figura 3.1 Gráfico explicativo del funcionamiento de Scan&Go En el anterior gráfico explicativo se intenta dar a conocer las diferentes fases a nivel práctico de cómo funciona el proyecto de Scan and Go. La primera fase el usuario o consumidor, interactúa con el dispositivo móvil, abriendo en primer lugar la aplicación para poder utilizarla posteriormente. En la segunda fase el usuario interactúa la aplicación móvil con el producto que se desea añadir al carrito de la compra, se procede al escaneo del código de barras del producto para añadirlo a la lista virtual. En la tercera y última fase, después de agregar todos los productos a la cesta virtual de la aplicación, procederemos a la sincronización con la caja o ordenador , para posteriormente realizar el pago de nuestra compra.
62 Scan & Go Barcode Scanner, aplicación Android que es completamente gratuita y que ocupa 589 KB , esta aplicación sirve para escanear códigos de barras o códigos mediante el uso de la cámara integrada del Smartphone, es de las aplicaciones más descargadas del market de Android superando los 10 millones de descargas. Figura 3.2 Barcode Scanner Eclipse, un software sobre el que se pueden montar herramientas de desarrollo para programar bajo cualquier lenguaje mediante la instalación de los plugins adecuados. Se creó con la idea de aligerar la programación en Java (Eclipse está desarrollado íntegramente en Java) ya que las herramientas Java son realmente pesadas y requieren de muchos de los recursos de nuestro sistema. La solución a estos problemas llegó con Eclipse y sus librerías nativas para cada S.O. llamadas SWT. Eclipse tiene la ventaja de que no necesita instalación. Se puede descargar el programa de la web de eclipse (www.eclipse.org/downloads).
Desarrollo técnico 63 Figura 3.3 Eclipse SDK Android, Otro elemento muy importante para desarrollar aplicaciones en Android, es su SDK (Sofware Development Kit). En el SDK se encuentran todas las librerías y utilidades necesarias para poder trabajar con Android. Plugin Eclipse, Para integrar Android con Eclipse, se necesita un Plugin, que dependiendo de la versión del IDE que se posea, se instalará de una forma concreta. Apache Tomcat, se ha optado por montar un servidor Tomcat, ya que es un servidor web con soporte de servlets y JSPs, ideal para este proyecto, ya que la clase que hace de servidor, BarCodeServer, tiene conexión a Base de Datos, y está basado en Servlets java. Incluye el compilador Jasper, que compila JSPs convirtiéndolas en servlets. El motor de servlets de Tomcat a menudo se presenta en combinación con el servidor web Apache. Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la máquina virtual Java.
70 Scan & Go Con esta línea de código se especifica la dirección IP del servidor y el puerto activo del Tomcat, que servirán para proceder a la descarga de la imagen, donde se utilizará para identificar el producto en la lista de la compra. En el constructor de esta clase se inicializa el control ImageView donde se cargará la imagen y una referencia a la lista para guardarla posteriormente en la base de datos. Con el siguiente método pasamos como parámetros el código del producto. protected ListaCompraData doInBackground(String... arg0) { Si la url comienza con el parámetro "print_bill=client" se pretende mandar la factura al servidor, esta url pasaría los parámetros de la factura, en caso contrario se pasaría la url donde se descargaría la imagen construida con el codigo del producto. Lo pasa por un lector de streams con buffer (BufferedInputStream) y lo convierte en un lector de objetos serializados (ObjectInputStream), después lee el stream y deserializa el objeto. Una vez acabado el método anterior se ejecuta el siguiente método: protected void onPostExecute(ListaCompraData result) { El parámetro es el que se devuelve desde doInBackGround, en este caso el objeto ListaCompraData recuperado del servidor. Solo se insertarán los datos en el caso de que se haya recuperado algo del servidor, estos datos serán la asignación de la imagen, del nombre, del precio y del número de elementos del producto, guardaremos todos estos datos en la base de datos y en la fila de la lista.
Desarrollo técnico 71 Si por el contrario no se ha recurado ningún dato del servidor, quiere decir que la lista está vacía y por tanto se pasará como nombre del producto sin identificación y se actualizará el número de productos a uno, posteriormente se procederá a guardar los datos de la fila. Clase IntentIntegrator Clase de utilidad que ayuda a facilitar la integración con el explorador de código de barras a través de Intents. Esta es una sencilla forma de invocar el escaneo de código de barras y recibir el resultado, sin ninguna necesidad de integrar, modificar, o aprender el código fuente de un proyecto. Con este método se cogen los resultados obtenidos en esta clase para posteriormente pasarlos a la otra clase llamada IntentResult . public static IntentResult parseActivityResult(int requestCode, int resultCode, Intent intent) { Requiere que BarcodeScanner esté instalado en el dispositivo móvil , si no está instalado esta clase nos informará que tenemos que instalarlo. En resumen, esta clase nos facilita la interactuación con las librerías Zxing de BarcodeScanner para la lectura de códigos de barra. Clase IntentResult Esta clase obtiene el resultado del escaneo de códigos de barras invocado a través 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 código 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 Este proyecto consta de dos clases : BarcodeServer y DB. Clase BarcodeServer Clase que implementa el servlet que recibirá las conexiones vía HTTP, tanto desde Android como desde el navegador. Si recibe conexiones desde Android puede pasar lo siguiente: a) conectar a la BD, recuperar los datos de los productos y reenviarlos a la aplicación Android como objetos ListaCompraData serializados; b) recibir los datos necesarios para generar la factura, consultar la información a la base de datos, y enviar la factura al navegador web; c) recibir una petición HTTP de un navegador para mostrar la factura del cliente. En este servlet aparecerán los dos métodos por defecto como son doGet y doPost. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { El método anterior doGet inicializa la base de datos, recoge el parámetro que indica el envío de la factura para posteriormente preparar la factura, donde se creará una la tabla de productos y precios, para después poder hacer la consulta a la base de datos del nombre del producto y el precio. Con la siguiente dirección, se podrá acceder desde el navegador web al cajero, mientras la aplicación y el servidor están funcionando, para poder conocer si se ha enviado factura de los productos del cliente o por el contrario si aún no se ha enviado nada. localhost:8080/BarCodeServer/?print_bill=server Por último, en el segundo método, el doPost, se pasarán los parámetros a la función doGet.
Desarrollo técnico 73 Clase DB Clase que gestiona las relaciones con la base de datos SQLite, que mantiene todos los productos de la aplicación (no sólo los que el cliente escanea, como pasa con la base de datos de Barcode en Android). Recupera los datos de los productos y construye objetos ListaCompraData o líneas de código HTML que devuelve a la clase BarcodeServer para que los procese. Primero de todo esta clase se conecta a la base de datos y crea las tablas en caso necesario. En caso necesario, crea la tabla de productos e inserta los productos. Posteriormente ejecutada esta sentencia, se procedería a recoger el fichero del sistema de archivos en la carpeta contenedora de nuestras imágenes, se leería el fichero y se almacenaría como imagen, después se guardaría el objeto en la base de datos , y finalmente, se asignaría los demás valores, precio , nombre y código. Primero se comprueba si existe un determinado código en la base de datos con el método : public boolean isCode(String code) throws SQLException { Para devolver la información del producto se requiere el método : public ListaCompraData getProduct(String code) throws SQLException { Si la query devuelve un valor, se crea un objeto ListaCompraData y se le asigna la información del producto y sino se creará un objeto vacío. conn=DriverManager.getConnection("jdbc:sqlite:C:/Users/DANI/Documents/WORKS PACE/BarCodeServer/barcode.sqlite3"); Con el siguiente método: public String getHtml(String code, int num) throws SQLException {
74 Scan & Go se obtiene la información de un producto y lo devuelve codificado como una fila de tabla html, también se obtiene el precio total multiplicando el numero de productos por el precio del producto. Proyecto BarcodeDB Contiene solamente la clase 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. Aquí se comprobará si existe la tabla Productos en la base de datos donde se almacenan todos los productos de la lista de la compra, si ya existe un determinado producto asignará los valores pertinentes (nombre, código, precio, etc.) y los recuperará. Si por el contrario lo que se pretende es agregar nuevos productos a la base de datos, lo que se debe hacer es ejecutar la sentencia siguiente en nuestra terminal del ordenador: java -jar BarcodeDb.jar fichero_imagen codigo_producto nombre_producto precio_euros 3.2.4 Secuencia de acciones a) Utilizar BarcodeDB para crear la base de datos, la tabla de productos e insertar productos. Una vez creada la base de datos, se pueden insertar nuevos productos en cualquier momento, sin afectar al rendimiento de la aplicación.
Desarrollo técnico 75 b) El cliente escanea productos desde su teléfono móvil, donde tiene instalada la aplicación "Scan and Go", que contiene las clases del producto Barcode. Si es la primera vez que escanea, se crea la base de datos y la tabla Productos en Android. Cuando se escanea un producto, se inserta en la BD, y se conecta con el servidor para que devuelva la información del producto (imagen, nombre y precio), y se graba esa información en la BD. c) El cliente consulta la lista de productos escaneados. La lista muestra los elementos que el cliente ha escaneado, con la imagen, el nombre y el número de elementos de cada producto que quiere comprar. El número de elementos se puede incrementar y decrementar. La lista muestra también el total de la factura actualizada. d) El cliente termina la compra y envía la factura al servidor. El servidor procesa los elementos de la lista del cliente, busca el precio en la base de datos y calcula el precio total de la factura (aquí podría complicarse la cosa con tipos de cliente, descuentos, etc.). 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 3.2.5 Esquema de la aplicación Figura 3.5 Ciclo de vida de la aplicación INICIO LISTA ESCANEO CÓDIGO BARRAS SERVIDOR TOMCAT BORRAR PRODUCTO O SI NO TERMINAR
Desarrollo técnico 77 El anterior esquema viene a representar el ciclo de vida de la aplicación, los avances o retrocesos que podemos dar con la aplicación en marcha. 1-Inicio La primera fase de todas cuando se abre la aplicación y se accede al menú principal del programa, aquí se visualizar la imagen en portada que representa a la aplicación, en este caso una cebra con un código de barras al fondo haciendo un pequeña simbiosis entre el color de la cebra y el código de barras en cuestión. En esta plana se visualiza a parte de la imagen, el nombre de la aplicación en la parte superior, y en la parte inferior los tres botones principales de la aplicación, que son el de Lista para poder visualizar la lista, Scan que sirve para escanear el producto y el de Terminar que sirve para pasar los datos de la lista hacia el cajero. Figura 3.6 Pantalla principal Scan&Go
78 Scan & Go 2-Escaneo Después de pulsar el botón de SCAN se llamará a las librerías del BarcodeScanner para poder realizar la lectura del código de barras del producto en cuestión. Una vez se haga la lectura del código se preparará para hacer la lectura del siguiente código de barras, si se quiere ver la lista de la compra se deberá pulsar el botón de retroceso del celular, para poder volver a la pantalla inicial. Figura 3.7 Pantalla Scan de Scan&Go
Desarrollo técnico 79 3-Lista Al seleccionar en el botón del menú principal la lista, se accede a la lista donde se visualizarán todos los productos que se hayan escaneado previamente. Aquí se visualizará una imagen del producto para identificarlo más fácilmente , también 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 más y menos situados al lado derecho del precio del producto, o bien se podrá variar de forma automática cuando ese mismo producto se vuelva a escanear nuevamente. En la lista de la compra también dispondremos de un total del precio de los productos que se vayan agregando, para recordar en todo momento, la cantidad de dinero que se va a gastar el cliente. Figura 3.8 Pantalla lista llena Scan&Go El producto también se podrá borrar de manera manual manteniendo pulsado con el dedo el producto en cuestión, se abrirá un texto informando que se va a borrar ese producto, y solamente se deberá aceptar si así se desea.
IngenieríaTécnicaenTelecomunicacionesespecialidadTelemática SCANANDGO Anexos DANIELBRAÑASVILLARDÓN PONIENTE:PEREBARBERAN PRIMAVERAAÑO2012
I Índice AnexoI.Software ............................................................................................ 1 AnexoII.ContenidodelCD‐ROM .................................................................. 11
Anexo 1 Anexo I. Software ECLIPSE ANDROID SDK EN WINDOWS 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 opción de Java Platform (JDK): http://www.oracle.com/technetwork/java/javase/downloads/index.html Posteriormente bajaremos Eclipse y el plugin ADT. Para descargar Eclipse se puede entrar en su web oficial http://www.eclipse.org/downloads/ y seleccionar la opción Eclipse IDE for Java Developers. Descarga de Android SDK Para descargar el Android SDK basta con acceder al siguiente enlace y descargarnos la versión de Windows: http://developer.android.com/sdk/index.html
2 Scan & Go Instalación del plugin ADT en Eclipse ADT (Android Development Tools) son una serie de herramientas para poder programar en Android desde eclipse. 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 accederá a la pestaña Help > Install New Software. En la ventana que aparece, se seleccionará el botón Add, que se encuentra en la parte superior derecha. En el recuadro que sale, en el apartado “Name” se escribirá el nombre que identificará al plugin ADT “ADT Plugin“, mientras que en “Location” se deberá fijar la siguiente dirección URL: https://dl-ssl.google.com/android/eclipse/.
Anexo 3 A continuación tendremos que aceptar y seleccionar todas las herramientas, aceptar nuevamente y aceptar las condiciones de licencia. Ahora se instalarán los paquetes. Si sale alguna advertencia de seguridad solo hace falta presionar Ok. Por último hara falta reiniciar Eclipse para implementar los cambios. Configurar el plugin ADT para Eclipse Para configurar el plugin ADT una vez se ha reiniciado Eclipse se debe de acceder a la pestaña 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. Añadir plataformas Android Ya solo queda añadir plataformas para poder ejecutar nuestras aplicaciones, es decir, las distintas versiones de la plataforma Android ejecutar las aplicaciones dependiendo de la versión .
4 Scan & Go Se debe acceder a la pestaña 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 versión 2.2, una de las más estables de Android. Una vez instalado las plataformas Andrid se debe configurar la máquina virtual para poder simular la aplicación en cuestión. Para ello hay que acceder al Android Virtual Device Manager , botón que está situado al lado del SDK Manager que anteriormente se utilizó. Habrá que seleccionar el botón de New para poder configurar una nueva máquina virtual.
Anexo 5 Seleccionaremos un Nombre y lo más importante en Target, especificaremos la plataforma que queramos utilizar para nuestra máquina virtual, aceptaremos y procederemos a darle Start , después Launch y ya tendriamos lanzada la aplicación desde la máquina virtual de Android.
6 Scan & Go
I Índice Presupuesto........................................................................................................................................................ 1 Desglose de actividades..................................................................................................................................... 1 Coste personal................................................................................................................................................... 2 Coste material.................................................................................................................................................... 2 Coste total proyecto........................................................................................................................................... 3
Estudio económico 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 cálculos . Apróximadamente la dedicación diaria de este proyecto ha sido de unas 3 horas y media, lo que conlleva a un total de unas 315 horas. Desglose de actividades Estudio previo 15 horas Módulo Android 100 horas Módulo Java 100 horas Documentación 100 horas
2 Scan & Go Coste personal Personas Precio por hora Horas totales Coste total Estudio previo 1 40 15 horas 600 euros Módulo Android 1 40 100 horas 400 euros Módulo Java 1 40 100 horas 400 euros Documentación 1 40 100 horas 400 euros 315 horas 1800 euros Coste material Coste HTC desire 400 euros Portátil Hacer X53series 600 euros Eclipse 0 euros Tomcat 0 euros Barcode Scanner 0 euros Herramientas ofimáticas 0 euros 1000 euros
Estudio económico 3 Coste total proyecto Coste personal 1800 euros Coste material 1000 euros Coste total 2800 euros