cashcontrol cashcontrol Aplicación para el control de gastos Jordi Alemany

Documentos relacionados
Proyecto final de curso Android: Programación de aplicaciones (3ª edición online, octubre-enero 2013)

Manual Impress Impress Impress Impress Impress Draw Impress Impress

Google Drive. Registro y gestión de archivos. Manual de uso

DOSIER INFORMATIVO Y EXPLICATIVO

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

Manual del Profesor Campus Virtual UNIVO

Manual Usuario Manual Usuario

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Proyectos de Innovación Docente

Manual de Instrucciones

Programa Presupuestos de Sevillana de Informática.

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA INSTITUTO TECNOLÓGICO DE CD. VALLES MANUAL DE USUARIO

BROKERMovil Online para SmartPhone Guía Rápida v1.0

BLINKLEARNING. Blinklearning. Blinklearning es la aplicación ideal para profesores y alumnos, que quieren utilizar contenidos digitales.

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

WinHIPE: edición, compilación y ejecución de programas; y generación de animaciones web. Manual de usuario.

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Manual Usuario Wordpress. Índice

Hay programas que convierten al PC en un equipo de música

Introduccio n a Campus Online: Guı a para un nuevo estudiante de la Facultad de Teologı a SEUT

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico

Novell Vibe 4.0. Marzo de Inicio rápido. Inicio de Novell Vibe. Introducción a la interfaz de Novell Vibe y sus funciones

LA PARRILLA DEL PERFIL DEL PROFESOR DE IDIOMAS - BREVE INTRODUCCIÓN

GUÍA BÁSICA DE USO DEL SISTEMA RED

Introducción. Introducción a NTI Shadow. Información general de la pantalla de Bienvenida

Guía básica: Migración de datos a esat 12

NUEVO SISTEMA DE MENSAJERÍA.

PANTALLA INICIAL APARTADOS DE LA APLICACIÓN. En la pantalla inicial el usuario dispone de diferentes apartados en la barra izquierda:

Manual de usuario de Solmicro BI. Página 1

NOTIFICACIÓN DE MOVIMIENTOS DE ESTUPEFACIENTES POR PARTE DE LOS LABORATORIOS FARMACÉUTICOS Y ALMACENES MAYORISTAS DE DISTRIBUCIÓN

Teclado sobre una PDA para Personas con Parálisis Cerebral

Manual de Usuario: Página Web.

Exact Synergy Gestión Documental Exact

UF0320: Aplicaciones informáticas de tratamiento de textos

Nuevas funciones y características de espacio Aspel 4.0

HERRAMIENTAS DE PHOTOSHOP

SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

Elementos de Microsoft Word

6.1. Conoce la papelera

HERRAMIENTA DE CONTROL DE PLAGIOS MANUAL DE AYUDA

Microsoft PowerPoint

Guía rápida del alumno. Versión 6.2

L U I S P A T I Ñ O IN FOR M Á T I C A SIS T E M A S AVA N Z A DOS

Guía para el Portal de Profesores del Sistema de Información CLASS Académico

5.8. REGISTRO DE FACTURAS.

Google Calendar. Google Calendar

Manual de usuario. Actualización: Septiembre 2014

Manual Web Alexia Profesor. Índice

Para acceder al campus virtual de Espiral debes realizar los siguientes pasos:

Combinar comentarios y cambios de varios documentos en un documento

MANUAL DE USUARIO. DEL PMS Turismo

Manual de ayuda para la utilización del Correo Interno en el Campus Virtual

CÓMO CREAR NUESTRO CATÁLOGO

Manual de Uso Web profesional

Cadena de Palabras Manual de usuario

Introducción a Visual Studio.Net

COMO DARSE DE ALTA COMO USUARIO EN LA PAGINA DE SEPYPNA

TUTORIAL SOBRE EL MANEJO DE LA OFICINA VIRTUAL PARA LA REMISIÓN DE INFORMES DE DOCENCIA VIRTUAL VÍA ADMINISTRACIÓN ELECTRÓNICA

EDICIÓN Y FORMATO (II)

Ajustes del Curso en egela (Moodle 2.5)

UNIDAD EJECUTORA DE CONSERVACION VIAL MANUAL DEL USUARIO DEL SISTEMA INTEGRAL DE CONTROL DE PROYECTOS

Instalación del programa PSPP y obtención de una distribución de frecuencias.

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

Educamos v2. Guía rápida para FAMILIAS

Compartir en línea. Cargar archivos. Principios básicos. Compartir en línea

Si tiene preguntas o comentarios sobre este manual, póngase en contacto con nuestro equipo de soporte a través de support@ephorus.com.

POLITICA DE COOKIES. 1. Al abrir el navegador, pulsa herramientas en la parte superior y selecciona la pestaña de opciones.

Sumario. 1.- Proceso de activación en Vodafone Business Place. 2.- Alta y baja de usuarios. 3.- Posición. 4.- Histórico. 5.- Usuarios. 6.

SEGUIMIENTO EDUCATIVO. Comunicaciones

Manual LiveBox APLICACIÓN ANDROID.

Sistema de Gestión Académica TESEO. Revisión 1.0. Servicio de Informática Área de Gestión (GESTIÓN DE RESÚMENES DE TESIS DOCTORALES)

MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES

MANUAL DE USUARIO ARCHIVO

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

PROGRAMA INFORMÁTICO PARA LA CUMPLIMENTACIÓN DE RECETAS EN FORMATO XML VERSIÓN: 1.0

EXTRACTO Descripción del uso y manejo de SIRAIS 1.2

Primeros pasos para una configuración rápida de la tienda.

Aplicación de gestión TPC Manual usuario: Tramitación

Promoción y comercialización online de experiencias turísticas en España a través del portal oficial de turismo de España

TUTORIAL DIDÁCTICO Material recomendado. PICASA Crear un álbum de fotos compartido

Manual de usuario. Tramitación de inspecciones periódicas de ascensores: La visión de los organismos de control autorizado (OCAs)

SMS PUSH SMS ENCUESTAS INTERNET FAX

Manual del Alumno de la plataforma de e-learning.

Ingeniería del Software

APLICACIONES WEB GOOGLE ANAYLITICS

ACCESO Y MANEJO DE LA PLATAFORMA DEL CENTRO REGIONAL DE FORMACIÓN DEL PROFESORADO

Estimado usuario. Tabla de Contenidos

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

F-Series Desktop Manual Del Usuario

MANUAL ÁREA PRIVADA PROFESOR

Manual de Usuario v1.0 (Beta)

Este botón situado en la barra de título de la ventana de la aplicación, nos da acceso a un menú mediante el cual podemos, entre otras opciones:

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

e-conocimiento Manual de uso

Curso Internet Básico - Aularagon

Boot Camp Manual de instalación y configuración

I.E.S. AGUADULCE PROGRAMACIÓN DIDÁCTICA. Programación CICLO FORMATIVO DE GRADO SUPERIOR DESARROLLO DE APLICACIONES WEB

Aplicación App para Teléfonos inteligentes

Transcripción:

cashcontrol cashcontrol Aplicación para el control de gastos Jordi Alemany

TFC UO C Jordi Alemany cashcontrol 2 resumen El objetivo de cashcontrol es poder capturar de forma fácil un gasto para su posterior consulta. El programa no pretende ser un sistema de gestión contable. El principal propósito de la aplicación es hacer que la captura (o generación) de un gasto sea sencilla y se pueda realizar con un par de clics. La posibilidad de asociar información de audio a un gasto hacer que sea muy fácil pasar gastos. Posteriormente, esos gastos pueden ser consultados para su inclusión en la contabilidad de cualquier organización o particular. Autor: Jordi Alemany

1. Introducción 1.1 Justificación del TFC Han sido varios los motivos que me han llevado a decantarme por Android como proyecto de fin de carrera. Uno de ellos, quizás el de más peso, es la gran demanda que hay en el mercado. La posibilidad de ofrecer desarrollo en Android a algunos de mis actuales clientes ha tenido un peso importante. Además del interés en trabajar en Android para terceros, también estaba motivado en realizar una aplicación de control de gastos para uso personal. Esa aplicación que yo necesitaba ya está finalizada y ahora sólo me falta mejorarla para poder comercializarla. 1.2 Expericencia Previa Antes de realizar el proyecto no disponía de ninguna experiencia de entorno Android, ni siquiera a nivel de usuario, ya que adquirí mi teléfono Android justo cuando empezaba el semestre. La API básica de Java sí que la conocía por haber trabajado en proyectos de J2EE. Conocía algunos patrones de diseño que he podido implementar con éxito. 1.3 Objetivos El principal objetivo del proyecto realizar una aplicación sencilla pero sólida. Me idea ha sido la de intentar trabajar de forma vertical explorando todas las capas del framework de Android y codificar de la forma más "ortodoxa" posible. Para ello he elegido un proyecto relativamente sencillo. En el futuro me interesará depurar mi aplicación, ampliarla y si tiene aceptación entre un grupo de usuarios, publicarla en el Android Market. Jordi Alemany

TFC UO C Jordi Alemany cashcontrol 5 1.4 Planificación La planificación se ha llevado a cabo siguiendo el método de diseño basado en el usuario. Las diferentes fases del proyecto han sido: PAC1 Plan de trabajo - entrega el 11/3/2013. PAC2 Análisis funcional i diseño técnico entrega el 8/4/2013. PAC3 Implementación. entrega el 20/5/2013. Entrega final 10/6/2013. 1.5 Recursos y herramientas utilizadas. Para este proyecto se han utilizado los siguientes recursos: - Hardware: Ordenador MacBook Pro con sistema operativo Mac OS X 10.7.5 Teléfono Samsung Galaxy S GT-I9000 con versión de Android 4.1.2 - Entorno de desarrollo integrado: Eclipse bundle ADT - Software de soporte: MS Word para la redacción del proyecto. Balsamiq Mockups para el diseño de los componentes gráficos. Cacoo: Herramienta online para creación de diagramas UML - Otros recursos: Página para creación de colores http://www.2createawebsite.com Repositorio subversion para mantenimiento del código en el sitio gratuito de Assembla: http://www.assembla.com/home Jordi Alemany 5

TFC UO C Jordi Alemany cashcontrol 6 1.6 Producto obtenido. Una vez realizado el proyecto se han producido los siguientes productos: Éste mismo documento a modo de síntesis de todo el trabajo realizado. Repositorio con los ficheros del código fuente de Java y archivo ejecutable (extensión APK). Video de presentación de la aplicación. La aplicación obtenida es un sistema para la captura de gastos. El programa permite al usuario asociar una nota de audio a cada gasto y guardar de forma automática la fecha y la hora. Requisitos del dispositivo en el que se va a utilizar la aplicación: Sistema operativo Android 2.2 o superior. Tarjeta SD para almacenamiento de bases de datos y archivos de audio. Permisos que requiere del usuario: Grabación a través del micrófono. Almacenamiento en tarjeta SD Jordi Alemany 6

TFC UO C Jordi Alemany cashcontrol 7 2. Memoria del TFC. 2.1 Diseño. 2.1.1 Diseño de la Base de Datos La base de datos consta de una única tabla: Gastos _id texto tipo importe timestamp longitud latitud campo tipo INTEGER (primary key) TEXT TEXT NUMERIC INTEGER TEXT TEXT No ha sido necesario utilizar herramientas de soporte para SQLite ya que la tabla es sencilla, no hay relaciones y los datos se han podido leer e insertar desde la aplicación con mucha facilidad. Jordi Alemany 7

TFC UO C Jordi Alemany cashcontrol 8 2.1.2 Diseño de la interface gráfica. La pantalla principal de la aplicación es la que se muestra a continuación. Su diseño está inspirado en una calculadora y un teléfono. La interface está preparada para que el usuario no pueda introducir datos por error (por ejemplo, el botón verde "enviar gasto" sólo se habilita cuando los datos son correctos y están listos para su envío). El importe máximo es de 9999.99 euros y es leído a través de sharedpreferences. El botón backspace (el de la flecha hacia la izquierda) permite editar el texto. El comportamiento del botón clear ("C") está basado en el de una calculadora y su misión es borrar el importe introducido así como cualquier información de audio que se haya podido asociar. Los botones de la parte superior se utilizan para la grabación del audio. El botón "lista" permite ir a la lista de gastos en cualquier momento. Cualquier importe que se haya editado o audio asociado permanecerán en la activity principal cuando regresemos de la lista. La pantalla principal no dispone de OptionsMenu ya que la aplicación no dispone de parámetros de configuración. La activity que aparece al pulsar "lista" es la siguiente: Jordi Alemany 8

TFC UO C Jordi Alemany cashcontrol 9 Los gastos aparecen listados agrupados por fechas (en la parte superior las fechas más recientes) y ordenados por horas. Sobre la lista se puede realizar scroll vertical. Al hacer clic sobre un gasto se abre la ficha de gasto que se muestra a continuación: Jordi Alemany 9

TFC UO C Jordi Alemany cashcontrol 10 Esta ficha muestra la información básica (importe, fecha, hora y audio en caso de haberlo). Sólo cuando el gasto tiene asociado un audio se muestra el botón "Escuchar Audio" que permite llevar a cabo la audición. El menú OptionsMenu permite eliminar el gasto directamente en la base de datos. 2.2 Implementación He distribuido las clases en los siguientes packages: - com.tfc.cashcontrol (para las activities y custom views) - com.tfc.cashcontrol.basedatos (para la clase helper de acceso a datos) - com.tfc.cashcontrol.modelo (para los POJOs o "entity classes") Jordi Alemany 10

TFC UO C Jordi Alemany cashcontrol 11 2.2.1 Classe AdaptadorBD. 2.2.2 Clase Gasto. Esta clase es la única que corresponde al modelo de datos. Dispone de getters y setters para acceder a los atributos. También hay un tostring() que resulta cómodo Jordi Alemany 11

TFC UO C Jordi Alemany cashcontrol 12 para tareas de Log. No he considerado necesario sobreescribir los métodos equals()/hashcode() ni hacer que la clase implemente el interface Serializable. 2.2.3 Clase FilaGasto. Esta clase es utilizada por la Activity ListaGastos para mostrar cada uno de los gastos de la base de datos. FilaGasto es un LinearLayout que contiene la información básica de un gasto (hora e importe). 2.2.4 Clase ListaGastos. Esta clase es una Activity. Su misión es mostrar los gastos en forma de lista sobre la que se puede realizar scroll vertical. Los gastos aparecen agrupados por fechas en Jordi Alemany 12

TFC UO C Jordi Alemany cashcontrol 13 orden descendente y cada grupo de fechas viene ordenado por horas (de forma que el gasto más reciente es el que aparece arriba). El método privado getdateonly(date) se encarga de eliminar de una fecha la información de hora (igualando todas las fechas a 00:00) para poder comparar fechas y montar los grupos. 2.2.5 Classe FichaGasto. Esta clase es una Activity que tiene como objetivo mostrar la ficha correspondiente a un gasto. Cuando el gasto lleva asociada una información de audio se muestra el botón "Reproducir Audio" que utiliza el método playrecording() para escuchar la nota de voz. Los métodos que reproducen audio también están codificados en la clase MainActivity y son los mismos (no hay clase helper para la gestión del audio). A través de Options Menu se puede llevar a cabo la acción de eliminar un gasto. 2.2.6 Classe MainActivity. Esta es la clase principal de la aplicación. Los métodos privados stopplayback(), playrecording(), stoprecording(), beginrecording() y ditchmediaplayer() se utilizan Jordi Alemany 13

TFC UO C Jordi Alemany cashcontrol 14 para la grabación/reproducción de audio. El método montarimporte(string) recoge las cifras pulsadas desde los botones del teclado de la calculadora para ir montando el importe que se visualizará en el display (y que se acabará guardando en la base de datos como gasto). Esta clase crea una instacia de adaptadordb para guardar los datos en SQLite. Los archivos de audio se guardan en una carpeta en la tarjeta SD y están asociados con los registros de la base de datos a través del nombre de arhivo. 2.3 Evaluación. He dispuesto de poco tiempo y no he podido realizar pruebas en condiciones para poder evaluar el producto. De todas formas, mi idea es seguir con el proyecto, añadiendo las prestaciones pendientes de implementación así como mejoras en el código. Jordi Alemany 14

TFC UO C Jordi Alemany cashcontrol 15 3. Variaciones con respecto a la idea incial. Las principales variaciones que ha sufrido el proyecto respecto a la idea original vienen dadas por la falta de tiempo (por causas imprevistas que no me han permitido cumplir con la planificación prevista. - Inclusión de tipos de gasto: La idea original era poder asiciar a un gasto un tipo ya predefinido. - Inclusión de texto: Otra prestación que no se ha implementado es la de posibilitar la inclusión de textos editados por el usuario asociados a cada gasto. No considero que sea una función imprescindible para esta aplicación, ya que la inclusión de texto no es rápida y está fuera de la filosofía de cashcontrol. - Inclusión de imagen: Esta es la función originalmente definida y no incluida que tiene mayor repercusión en la calidad final del producto. Así como el audio es rápido de incluir y aporta mucha información, la posibilidad de incluir imágenes habría sido ideal (una imagen vale más que mil palabras). - Imposibilidad de de eliminar varios gastos a la vez. La aplicación en la actualidad sólo permite eliminar gastos de uno a uno. - No hay preferencias. Algunos aspectos de la aplicación podrían estar configurados como preferencias (por ejemplo, el importe máximo de un gasto, el tiempo máximo de grabación de audio o el símbolo de moneda). Jordi Alemany 15

TFC UO C Jordi Alemany cashcontrol 16 4. Conclusiones. TFC ha sido la asignatura que he esperado con ganas durante toda la carrera. La oportunidad era única para poder introducirme en Android de una forma acelerada. Durante el inicio del semestre he participado de forma activa en el aula pero a las pocas semanas casi he tenido que abandonar el proyecto por un problema de enfermedad familiar que me ha robado todo el tiempo destinado al estudio. Mi aplicación ha sufrido "recortes" en algunas de sus funciones más flamantes (realización de fotos, geolocalización de los lugares donde se realiza el gasto, etc...) y la calidad de mi trabajo ha bajado en picado durante estas últimas semanas. Pero al margen de lo expuesto anteriormente, también he sacado conclusiones positivas. Una de ellas, aunque parezca contradictorio, es que mirando mi código actual observo una serie de malas prácticas que me invitan a aplicar mejoras. Veo soluciones a mi código que se podrían haber realizado de forma más eficiente y elegante. Pero creo que el hecho de darme cuenta de estas deficiencias implica que empiezo a conocer el framework de Android. Otra conclusión positiva es que estoy en vías de adquirir los conocimientos necesarios para desarrollar aplicaciones para Android y de hecho ya estoy en contacto con algunos potenciales clientes. Jordi Alemany 16

TFC UO C Jordi Alemany cashcontrol 17 5. Líneas futuras de trabajo. Dado el "recorte" de prestaciones que ha sufrido mi aplicación, la principal línea futura consistirá en implementar todo aquello que estaba reflejado en el documento original. Una vez completada esta fase, se podrán aplicar las siguientes mejoras: Posibilidad de que los usuarios almacenen los datos en un servidor y los puedan consultar a través de Internet. Sistema de mapas para la localización de los puntos en los que se realizan gastos. Mejora del diseño de la interface gráfica. Configurar settings para el idioma, el tipo de moneda, el tiempo máximo de grabación de audio o el importe máximo del gasto. Posibilidad de que la propia app genere un archivo de Excel Inclusión de información estadística en gráficos. Jordi Alemany 17

TFC UO C Jordi Alemany cashcontrol 18 6. Bibliografia Wikipèdia. Android http://es.wikipedia.org/wiki/android Página para desarrolladores de Android: http://developer.android.com Head First Android Development de editorial O'reilly Android in Action de editorial Manning Programming Android de editorial O'reilly Android apps with Eclipse de editorial Apress Jordi Alemany 18