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.

Base de datos

Android

Este fin de semana lo he pasado creando la base de datos de donde obtendremos toda la información que se mostrará. He tenido mi primera aproximación con SQLite.

Una vez decidido el modelo de datos, he creado las tablas en la base de datos y las entidades en clases java que las replicaban. De forma que los campos de la tabla eran propiedades en las clases, con sus correspondientes métodos para extraer e introducir información (get y set).

Toda la información la teníamos en ficheros de texto y se ha tenido que «parsear» a través una aplicación que he montado en java para hacer los INSERTs correspondientes.

La próxima tarea será ver la forma de añadir la base de datos al proyecto y crear las clases necesarias para su uso, a saber, provincias, hospitales, farmacias, centros, pacs y guardias.

Proyecto Guía de Salud

Aula

En los últimos días no he podido dedicarle tiempo al trabajo final del Curso ya que estoy inmerso en una semana de exámenes en la Universidad.

De todos modos para el post de hoy tengo material, puesto que me he dado cuenta que no os he hablado sobre el proyecto.

He decidido realizar una Guía de Salud para una comunidad autónoma de España. Ya que si quería poder utilizar horas del trabajo, la empresa me exigía que el proyecto fuese de utilidad para ellos.

La guía de salud mostrará información de los hospitales, farmacias, centros de salud y de guardia de dicha comunidad autónoma. Esta información vendrá filtrada por provincias, quedando a criterio del usuario su elección.

Bienvenida del Consejero

AndroidLa siguiente labor que he acometido ha sido la pantalla correspondiente a la Bienvenida del consejero. Tomando como base la de Acerca de… lo que he modificado es que le he incluido un ScrollView para que se pueda visualizar todo el texto.

La pantalla consiste en la imagen de cabecera, debajo la foto del consejero de sanidad y tras ésta un texto con información y un saludo de la persona mencionada anteriormente.

La principal problemática la he encontrado a la hora de implementar el ScrollView, ya que sólo puede tener un hijo, así que me he tenido que valer de nuevo de un RelativeLayout para poder posicionar alineados los objetos como deseaba.

Acerca de…

Android

Aquí sigo con el desarrollo del trabajo final del que os he venido hablando. La última tarea que he implementado ha sido la pantalla Acerca de… en la que mostraré mis datos personales.

Para este menester he recurrido a reutilizar la misma pantalla utilizada para la práctica 2 y he cambiado la imagen  que se mostraba por una que voy a utilizar de cabecera para todas las pantallas de la aplicación. Además también he añadido una imagen de fondo que también tengo pensado utilizar en todas las pantallas. Así que he tenido que modificar el Layout de la pantalla principal para añadir estos cambios.

A esta pantalla de Acerca de… se puede acceder de dos maneras:

La primera de ellas a través del botón MENÚ del terminal. Para esto hemos tenido que implementar los métodos sobrescritos necesarios para la creación del menú y para saber que opción del menú ha sido seleccionada. Aunque de momento sólo hay una.

La segunda forma de acceder es a través del último elemento de la pantalla principal. Que inciará el Activity correspondiente. Para esto hemos añadido un elemento al menú principal que queda de la siguiente forma:

  • Bienvenida del consejero
  • Hospitales
  • Urgencias
  • Farmacias
  • Centros de Salud
  • Acerca de…

Pantalla principal

Android

En el post de hoy narraré la creación de la pantalla de menú principal. Y como toda narración tiene un comienzo, allá va:

Tenía pensado poner una pantalla al estilo de un menú principal con diversas opciones para seleccionar una de ellas. En un principio opte por montar una tabla, pero cuando quise que los elementos se pudiesen seleccionar me topé con un problema.

Buscando un poco por la documentación y otro poco por Google, y tras varias amenas lecturas, decidí cambiar a montar una clase que extendiera de ListActivity.

Para hacerlo un poco más complicado se me ocurrió que el elemento no fuese el clásico texto, sino el clásico imagen y texto. Para esto tuve que sobrescribir varios métodos, además de crear un Layout personalizado para el ListItem, y pelearme con el RelativeLayout para poder alinear el texto justo después de la imagen.

Una vez comprobado que todo funcionaba como quería di por finalizado el trabajo por hoy. Otro día más y mejor.

Se me olvida comentar las opciones que aparecen en este menú principal:

  • Bienvenida del consejero
  • Hospitales
  • Urgencias
  • Farmacias
  • Centros de Salud

Nuevo proyecto

Android

Antes de empezar con las tareas desarrolladas hoy, os recuerdo lo que hice el día anterior:

 Monté y configuré el entorno de desarrollo y todo lo necesario para llevar a cabo la programación del proyecto correspondiente al trabajo final del Curso.

 Hoy he creado el proyecto en el entorno de desarrollo, he establecido el nombre del proyecto, el paquete, el nivel mínimo de API exigido y he marcado que Activity será el main para que sea el primero en lanzar cuando arranque la aplicación.

Este Activity es una pantalla de Splash que mostrará una imagen durante un tiempo predeterminado. Más adelante le añadiré otra funcionalidad. Además del Activity se ha creado su Layout correspondiente compuesto por una imagen.

Hoy he dado el desarrollo por finalizado.

Entorno de desarrollo

shapeimage_2
   Para empezar a desarrollar el proyecto del Curso de Experto Profesional lo primero que he hecho ha sido montar el entorno de desarrollo.

    Aprovechando que ya tenía instalado Eclipse, y descargado el SDK de Android, sólo he tenido que instalar el plugin de ADT que me he descargado de la web de desarrolladores para Android que pone a nuestra disposición Google.

    Una vez finalizada la instalación del plugin debemos enlazar el directorio del SDK en las preferencias de Eclipse y a partir de ese momento ya podremos utilizar el IDE para programar aplicaciones que corran en dispositivos con sistema operativo Android.

    Las instrucciones de como realizar lo comentado anteriormente, y el plugin ADT para Eclipse, se encuentran a vuestra disposición en:

      http://developer.android.com/sdk/eclipse-adt.html

    El entorno de desarrollo Eclipse se puede descargar desde su web oficial:

      http://www.eclipse.org/downloads/

    Y por hoy hemos terminado.

3, 2, 1… Arrancamos

OficinaAquí da comienzo mi blog. El motivo por el que comienza es cumplir uno de los requisitos que nos solicitan en el curso que estoy recibiendo de diseño de aplicaciones para dispositvos móviles.

En este blog comenzaré contando como va el desarrollo de la aplicación que hay que entregar como trabajo final de proyecto.

Más adelante intentaré seguir publicando principalmente acerca de temas relacionados con mi trabajo. Aunque siempre quedará sitio para alguna entrada referente a cualquier otro aspecto que me apetezca compartir. Pero eso ya será otra historia.