Log de desarrollo de applicación Invisible Friend para Android

Funcionalidades de Invisible Friend

Se trata de implementar una aplicación que nos permita desde un terminal Android realizar el sorteo correspondiente a un evento.

Diagrama de casos de uso 12 de Enero 2012 (Deprecated ->

29 de marzo de 2012

)

Aquí tenéis el primero de los diagramas de CU que publico. En él ya se apreciar las funcionalidades mas que comentadas sobre eventos, grupos y contactos. Ademas también se empiezan a ver algunas otras funcionalidades que por el momento solo existen en mi cabeza. Para aquellos que seáis un tanto severos en cuanto a la disposición de los elementos en un diagrama de Casos de Uso, ruego me perdonéis, pero estoy usando la organización automática para no perder el tiempo moviendo ni casos de uso ni actores.

Funcionalidades ya implementadas

  • Gestión de grupos de contactos (CRUD)
  • Gestión de contactos contenidos en los grupos
  • Relación entre contactos y grupos. Asignación y eliminación de un contacto a un grupo
  • Integridad a la hora del borrado de un contacto de un grupo
  • Relación entre Eventos y Grupos
  • Integridad entre Grupo y Evento
  • Integridad entre Evento y Sorteo
    • Los evento no pueden ser borrados si existen sorteos realizados (26 de Septiembre de 2012)
  • Cuando se añade un grupo a un evento, hay que validar que el grupo no esta vacío. Cuando se abre la actividad de eventos, ahora no se ven los grupos que no tienen contactos (19 de marzo de 2012)
  • Contactos de agenda:
    • Selección de un único contacto para enlazar a grupo
    • Cuando se muestra la lista de contactos de la agenda para poder agregarlos a un grupo, no deben aparecer los contactos ya existentes en el grupo
    • Integridad en el borrado de grupos.
  • Envío de mails genérico
  • En la ventana inicial de la aplicación el icono de eventos estará deshabilitado si no existen grupos en el sistema (14 de Septiembre de 2012)
  • En la ventana inicial de la aplicación el icono de sorteo esta deshabilitado si no existen eventos en el sistema (14 de Septiembre de 2012)
  • La clase Participante se acaba de modelar como una subclase de Contacto (17 de Septiembre de 2012). Me acabo de dar cuenta del detalle, realmente ¿que es un participante?, pues un participante es un contacto que ha formado a ser parte de un sorteo, de hecho como se puede apreciar en el modelo de datos, coinciden la mayor parte de los atributos identificados.
  • Notificaciones
    • Mail (24 de Septiembre de 2012)
    • SMS (26 de Septiembre de 2012)
  • Refactorización del susbsistema comunicaciones (mails y sms)
  • DAOs para las entidades sorteo, participantes de sorteo, notificaciones e histórico
  • Generalización de los mensajes de notificación mediante el uso de sustituciones de texto, algo similar a los que muchos hacéis cuando trabajáis en Web. (diciembre de 2012)
    • Pequeño problema con el tamaño de la notificación en SMS. Android cuando recibe un mensaje superior a 160 caracteres, peta, sin mas…La implementación de un sistema basado en una plantilla soluciona el problema por que el mensaje enviado nunca será superior a ese tamaño.
  • Sistema de preferencias en fichero de preferencias externo:
    • Plantilla de texto para notificaciones SMS y Mail
    • Modo desarrollo activo o inactivo (DEVELOPER_MODE ON/OFF)
    • Nombre del fichero de bbdd
    • Emulación de comunicaciones: Esta preferencia sirve para si el usuario quiere probar la aplicación antes de usarla, no tener que mandar las notificaciones de prueba reales y así evitar molestar a la gente.
  • Sorteos (en proceso)
    • Lanzamiento de sorteos propiamente dichos (mezcla y notificaciones). (Completado)
    • Gestión de sorteos realizados. (en proceso)

Funcionalidades a implementar

  • Logs internos de acciones
  • Ofuscación/encriptación de los datos de la cuenta de correo-e usada por la aplicación
  • Autoidentificacion (ya explicare el concepto mas adelante)
  • Framework de persistencia (por evaluar)
  • Proceso de construcción automatizado (por evaluar)
  • Actualizacion a Android 5

Futuro inmediato

Bueno, ¿y hacia donde voy?. Veamos, la idea que tengo es ir avanzando en la aplicación hasta tener una versión completa inicial. Esto posiblemente no será hasta dentro de unos meses. Debéis tener en cuenta que a este proyecto me dedico únicamente después de acabar mi jornada laboral que como las vuestras no es corta. En el momento que la tenga cerrada la subire al market, lo que ahora mismo no se es si la subire para descarga gratuita o la pondré un precio aunque sea irrisorio.
Tengo otra idea relacionada con el desarrollo, y es que habilitare un sistema de donación, para que aquellos que lo hagan en una cantidad digna (que todavía no tengo idea de cual será) recibirán mediante mail el código fuente completo y el manual técnico de la misma, por que creo que las personas que inician su andadura por este mundo lo pueden considerar de interés y ademas es posible que su tiempo de arranque sea menor que el mio (que me esta costando sangre sudor y lágrimas).
Al margen de lo que haga o deje de hacer con la versión terminada de la aplicación y con los manuales….lo que iré publicando son las distintas versiones de desarrollo de la aplicación por si acaso alguno de los lectores quiere echar un vistazo. De hecho y con esta idea, la primera fase del desarrollo que incluye la gestión de grupos se publico en fecha 30 de noviembre de 2011.

Log detallado de requerimientos/análisis/diseño/desarrollo (arriba a abajo de lo más moderno a lo más antiguo)

Miércoles 26 de noviembre de 2014

Comienzo evaluación estado del arte de ORB’s para Android.

Esto, si sale adelante va a suponer una refactorización completa del desarrollo. El asunto es que estoy cansado de picarme y mantener la capa de DAOS.

Lunes 24 de noviembre de 2014

Retomando el asunto, después de casi dos años se me hace complicado…

Martes 19 de febrero de 2013 14:30

Continuando tal y como lo dejamos, solo queda implementar la gestión de sorteos. En principio voy a implementar únicamente 2 pestañas, una de ellas para hacer la gestión de los participantes de un sorteo y otra de ellas para poder ver los logs del propio sorteo. Me faltaría una mas, para hacer el CRUD de sorteos, pero ya veremos a ver cuando la hacemos, por que ademas en la oficina tengo un huevo de curro y cuando llego a casa no tengo ganas de seguir dándole vueltas al tarro.

Bueno ya tengo el primer borrador de la actividad, a continuación podéis apreciar el funcionamiento.

Esta primera pestaña tiene como objetivo poder revisar la lista de participantes de un sorteo concreto. De hecho el sorteo es lo que se selecciona en el Spinner. Una vez seleccionado el sorteo se carga la lista, que nos va a permitir re notificar a algún participante en concreto, y ademas ver el estado de las notificaciones enviadas a los mismos.

Esta otra pestaña nos va a permitir ver los logs del sorteo.

La idea es, el usuario selecciona una pestaña, lo que centrará las operaciones que el usuario puede o no hacer en la aplicación. Una vez establecida la pestaña, el usuario mediante un combo o spinner (terminología Android) selecciona el sorteo del que quiere recuperar la información (asociada a la pestaña).