Vuelta al blog

Kanban

Retomo el blog después de mucho tiempo de sequía. No voy a relatar aquí los motivos, no aportarán nada de valor.

Vamos a lo importante, en todo este tiempo he acudido a diversos eventos dentro del mundo de desarrollo de software. Fui a la Apache Barcamp Spain. Estuve en la CAS 2011. Y me quedé con ganas de ir a muchos más. Para las próximas ocasiones queda en el listado de pendientes.

De los eventos que asistí me traje muchas cosas aprendidas y aporte poco. Es una futura mejora que tengo también en la lista de To Do. Empezar a poner mi granito de arena en estos eventos.

El 24 de Marzo me voy al Codemotion en Madrid. Tienen una agenda muy interesante con seis tracks distintos y en la que nuevamente se me solaparán muchas ponencias que me parecen interesantes.

Por otro lado, ahora mismo además de mi pasión por el desarrollo de software, acabo de empezar a poner en práctica otra de mis pasiones, el fútbol americano. Pero esa es otra historia.

Apache Barcamp Spain

Barcamp

Este fin de semana me iré con mi compañero PruebaRana a la Apache Barcamp Spain. Será un viaje relámpago. Saldremos el sábado de madrugada en avión para Sevilla y tendremos que volvernos a la hora de la siesta. De este modo nos perderemos las sesiones de la tarde y el networking de la noche, pero era la única posibilidad viable económicamente para ambos.

Según la web es un evento abierto para desarrolladores creado por desarrolladores. El formato es el conocido como open space. Consiste en que las sesiones se proponen y se deciden allí mismo el día del evento, a grandes rasgos.

Tengo ganas de ver que nos puede ofrecer y en que podemos contribuir nosotros. Pero esa será otra historia.

Spongy Castle (Bouncy Castle para Android)

Android

Llevaba tiempo queriendo escribir este post. En uno de los proyectos en la última empresa que estuve trabajando me encargué de desarrollar una aplicación de firma electrónica de PDF con certificados de la FNMT y la ACCV para dispositivos Android.

Para comprobar si los certificados habían sido revocados utilizaba las librerías de Bouncy Castle. Resulta que el mismo código que funcionaba perfectamente en una aplicación de escritorio para Windows, no era capaz de comprobar la revocación en la aplicación para el terminal móvil. Simplemente provocaba un cierre forzado e inesperado de la aplicación.

Después de unas cuantas búsquedas en Google y en Stack Overflow, llegué a encontrar una solución. Resulta que el SDK de Android ya lleva parte de las librerías Bouncy Castle, así que si las añades a tu proyecto se pueden producir algunos problemas. Forma de evitar esto, o bien te refactorizas toda la librería tú mismo a mano, o pruebas a buscar alguna hecha por otra persona. Esto último fue lo que hice. Se llama Spongy Castle y podéis encontrarla aquí: https://github.com/rtyley/spongycastle

Campus Party 2011

Campus Party

Un día llevamos ya en la Campus Party 2011. Nos hemos venido mi novia, mi hermano y yo. Repetimos como el año pasado. Repetimos área de desarrolladores en la zona de Innovación. La diferencia el nombre. Pero eso, nos lo quedamos para nosotros. No voy a contar por aquí que el clan se llama Tolai Mobile (un alarde de genialidad y composición poética de mi hermanito).

Ayer dedicamos el día a lo típico. Llegar, descargar bártulos, intentar encontrar aparcamiento, venir al Ágora, buscar los puestos asignados, empezar a montar, ir a registrar los equipos, terminar de montar, recoger el welcome pack, la tienda de campaña y la esterilla, ir a buscar la tienda designada en la zona de acampada, volver a nuestros puestos, instalar el dc… Lo que es un día bastante completito.

Con respecto al Welcome Pack de este año, huelgan las palabras, sólo diré un par de chanclas. Y no porque no quiera contar nada más, es que únicamente eran un par de chanclas. Eso sí, cabe reconocer que útiles son, ya que para ducharse aquí, han venido muy bien.

Hoy hemos dedicado al día a asistir a un par de charlas y a participar en la Champions Twit. Un evento de fútbol 3×3 organizado por Genializa y otras empresas. Muy divertido y recomendable para todo el mundo que guste de practicar deporte y pasar un buen rato. Hemos sido los integrantes del equipo de Innovación, y hemos perdido el primer partido 11 a 9. Pero nos lo hemos pasado en grande, y hemos sido los pioneros en ser un equipo mixto. El viernes volveremos a jugar pero esa, será otra historia.

Sigo con el blog

Titular

En un principio he decidido que voy a seguir con el blog. He llegado a la conclusión de que puede ser muy útil en varios aspectos.

Uno de ellos es el de darme a conocer. En los tiempos que corren, y que tanto nos recuerdan, uno nunca sabe cuando va a faltarle el trabajo. O quizá interese buscar otro. Y creo que el blog puede ser un punto de referencia y aportar valor a una futura marca personal.

Por otro lado también tengo pensado ir añadiendo contenido más técnico, con lo que compartirlo en el blog me servirá para afianzar conocimientos. Eso sí, no prometo nada, ya que no ha sido uno de mis fuertes el explicar las cosas a otras personas.

No quisiera terminar el post sin contar que ya salieron las notas del curso de Experto Profesional y fue bastante bien, sobre todo teniendo en cuenta que no le pude dedicar todo el tiempo que me hubiese gustado, un Notable. ;P

La semana que viene estaré en la Campus Party, y participaré en la Champions Twit. Os mantendré informados.

Entrega urgente

Android

La entrega se ha realizado satisfactoriamente. Este fin de semana me he dedicado a redactar la memoria descriptiva del proyecto.

De esta forma el curso llega a su fin, a la espera de ver la puntuación que obtengo, y la consiguiente corrección.

Tengo planeadas varias funcionalidades nuevas para la aplicación. Como son poder solicitar la tarjeta sanitaria a través de ésta, o la petición de cita previa con el centro de salud. Y añadir también información correspondiente a las campañas de vacunación y su calendario correspondiente que en un principio deberían de llegarnos esta semana. Pero se quedarán fuera del trabajo final porque ya habrá pasado la fecha de entrega.

Por falta de tiempo también se quedan fuera otras mejoras que tengo pensado implementar. En especial, estas mejoras se centran en la pantalla de detalle. Si pulsamos en la dirección nos mostrará un mapa con la localización. Si lo hacemos en el correo electrónico nos lanzará la pantalla de email con uno nuevo con la dirección del destinatario ya asignada. Si pulsamos en el teléfono nos llamará a ese número. Y añadiré un botón o un menú para poder insertar el elemento en la agenda de contactos del dispositivo.

Otra mejora es que no veo muy correcto tener que andar pulsando siempre la provincia cuando nos movemos entre distintas secciones. Quizá sería más correcto hacer uso de las preferencias de la aplicación.

Como última mejora me gustaría añadirle un buscador, ya que llegar a acceder a determinada información se convierte en un proceso bastante tedioso.

Todas estas mejoras se han quedado fuera por falta de tiempo, ya que para mí ha sido muy complicado realizar este curso, a la par que continuar con mi trabajo y mis estudios de Grado, en los cuales, en varias asignaturas, también me han exigido la entrega de unas prácticas obligatorias y todas con unas fechas similares a la del trabajo final de este Curso.

Por último, me queda la duda de si seguiré con el blog y la web, ya no por decisión mía, sino por ausencia de intervalos de tiempo libre en mi agenda para dedicar a estas labores. Un saludo y hasta más ver.

Detalles informativos

Android

Y hoy doy por finalizado el desarrollo de la primera versión de este proyecto.

Para terminar, tal y como hice con la lista de elementos, he utilizado la misma pantalla de detalle para todas las entidades. En este caso, hospital, farmacia y centro de salud. Ya que los datos relativos a Urgencias no nos los han hecho llegar desde la Concejalía de Sanidad de la comunidad autónoma a la que le estamos desarrollando el proyecto.

Para esta ocasión he decido hacer uso de TableView en el Layout y poner cada TableRow un TextView, jugando con los colores del texto y los estilos para resaltar la información. Los datos que se muestran son los típicos de Nombre, Dirección, Código Postal, Municipio, Teléfono, Fax y Correo Electrónico.

La entidad a mostrar se pasa en este caso haciendo uso de los extras del intent una vez más.

Ahora queda escribir la memoria descriptiva para poder realizar la entrega del trabajo.

Lista de elementos (II)

Android

La tarea prevista para esta iteración estaba ya casi lista, pues tenía implementados los métodos para recuperar los elementos de la base de datos, las clases para almacenar esta información y la pantalla, ya implementados. Lo único era crear toda la lógica de negocio para tratar con esos datos.

Ha sido un gran avance, puesto que de un plumazo he conseguido poder ver la lista de Provincias, y las de Hospitales, Farmacias, Centros, Pacs y Guardias, filtrados por la provincia seleccionada. De tener un par de pantallas ha ya tener casi implementado el análisis inicial de la aplicación.

Ahora queda mostrar el detalle del elemento que seleccionemos en una de esas listas. Será la próxima tarea a abordar.

Listas de elementos (hospitales, centros…)

Android

Gracias a una agradable charla con un compañero de trabajo durante el almuerzo de hoy, hemos llegado a la conclusión de montar la misma Activity para mostrar las listas seleccionables de elementos (hospitales, centros, farmacias, etc.)

Para distinguir que entidades tengo que recuperar de la base de datos utilizaré los extras que se pueden incluir en el intent.

Hasta ahora tengo montado el Layout y la Activity, que volverá a extender de ListActivity, ya que quiero mostrar el elemento pero con un icono descriptivo de la entidad a la que pertenece. He reutilizado los objetos creados para la pantalla del menú principal.

La próxima tarea será recuperar los datos y asignarlos al ListAdapter. Pero eso será otro día.

Base de datos (II)

Android

Continúo con la parte correspondiente a la base de datos. En esta ocasión la he añadido a mi proyecto. Para ello se copia el archivo a la carpeta assets de la aplicación.

Para poder utilizar la base de datos he tenido que hacer unas modificaciones. El campo ID de cada tabla lo he tenido que renombrar a _id y además incluir una tabal nueva android_metadata con un único campo llamado locale. En esta tabla he metido dos registros es_ES y en_US.

He modificado la pantalla de Splash para que copie la base de datos dentro del directorio databases en la ruta de la aplicación en la memoría física del terminal, en caso de que no exista, y si existe que compruebe si es la versión más actual o es necesario una actualización.

Para poder hacer uso de la base de datos he implementado una clase propia que extiende de SQLiteOpenHelper. En esta clase es donde se han integrado todos los métodos de acceso a datos.

A la hora de copiar la base de datos a la memoria física me he encontrado que el programa me lanzaba una excepción de schema mal formado. La solución para este percance ha sido eliminar las claves ajenas en la base de datos.