Este documento presenta un proyecto para desarrollar una aplicación llamada "Agendroid" para Android que utiliza la base de datos SQLite. La aplicación permitirá agregar, modificar y eliminar contactos almacenados en la base de datos. Se describen los objetivos, marco teórico, diseño de la aplicación, implementación y pruebas. Finalmente, se concluye que se logró el objetivo de usar las herramientas SQLite en Android y se recomienda agregar una función de búsqueda de contactos en versiones futuras.
1. INFORME ACERCA DEL PROYECTO DE TOPICOS DE SISTEMAS
OPERATIVOS 2001-1
CAPITULO I: GENERALIDADES
Nombre del Proyecto:
Desarrollo de una App “AGENDROID” para Android OS
Descripción General del Proyecto:
En el presente proyecto se pretende dar a conocer los pasos para el desarrollo de una APP en
Android OS, llamada “Agendroid”. Esta aplicación utiliza el framework de SQLite que nos
ofrece herramientas para manipular una base de datos que almacenará la información de los
contactos. Con estas herramientas podremos implementar las diferentes funciones inherentes
de una agenda como agregar, modificar y eliminar contactos.
Seguiremos el diseño del ciclo de vida del presente software que será detallado mas
adelántate en la cual seguiremos las etapas de iniciación, elaboración, construcción, y
transición la cual será definida como la etapa final.
Objetivo General del Proyecto:
Desarrollar una APP para Android OS usando el framework de SQL.
Objetivos Específicos del Proyecto:
Definir los requerimientos y el tipo de pruebas para la APP para Android “Agenda”.
Diseñar la arquitectura de la APP para Android “Agenda”
Ejecutar las Pruebas definidas Anteriormente.
Instalar la APP “Agenda” en un dispositivo móvil.
CAPITULO II: MARCO TEÓRICO REFERENCIAL
SQLite:
Es una Base de Datos Relacional para sistemas embebidos que ocupa únicamente unos 225KB.
No se trata de un proceso, sino de una librería que se añade dinámicamente a las aplicaciones
que quieren utilizar SQLite.
Implementa la mayor parte del estándar SQL-92 pero con restricciones, con soporte
ALTER_TABLE limitado y las columnas no tienen tipos.
Lo utilizan la mayoría de plataformas móviles como iOS, Android o Backberry [URL01].
2. En Android SQLite es parte de las librerías Nativas, como se muestra en la figura:
Figura 2-1 Pila detallada de Android OS [Hashimi, 2010]
Componentes Fundamentales de una Aplicación hecha en Android:
A continuación una breve definición de los componentes utilizados para crear una App en
Android OS [Hashimi, 2010]:
View: Las views son interfaces de usuario (IU) que forman los bloques básicos de
construcción de una interfaz de usuario. Las views podrían ser un botón o una etiqueta
o un campo de texto o un montón de elementos de una interfaz de usuario.
Activity: Una activity es un concepto de interfaz de usuario. Por lo general, contiene
uno o más views.
Intent: Un intent generalmente define una “intención” de hacer algo. Los intents
encapsulan varios conceptos. Se puede utilizar los intent para:
o Enviar un mensaje.
o Comenzar un servicio.
o Llamar a un activity.
o Mostrar una pagina web o una lista de contactos.
o Llamar a un número telefónico o responder a una llamada.
Los intent no siempre son iniciados por una aplicación, también son utilizados por el
sistema para notificar a la aplicación de los acontecimientos específicos (por ejemplo,
la llegada de un mensaje de texto).
AndroidManifest.xml: Define los contenidos y comportamiento de la aplicación.
Android Virtual Devices: Un Android Virtual Device (AVD) permite a los
desarrolladores hacer pruebas de su aplicación antes de ponerla en un teléfono
3. Android. AVD’s pueden ser creados con diferentes configuraciones para emular
diferentes tipos de teléfonos reales.
CAPITULO III: DESARROLLO
Ciclo de Vida de la App:
Figura 3-1 Ciclo de vida de la App
Iniciación: La idea de desarrollar una Aplicación para la plataforma Android usando el
framework de SQLite nace con la intención de mostrar las características básicas de
este Manejador de Base de Datos, en una arquitectura de bajos recursos como lo es un
dispositivo móvil.
Elaboración:
o Requisitos:
- La agenda debe poder mostrar, agregar, actualizar y eliminar
contactos.
- Se debe poder realizar llamadas a dichos contactos.
o Pruebas:
- Se realizarán pruebas de validación de teclado.
- Los campos de texto para los números telefónicos solo deben aceptar
dígitos.
- Los campos de texto para el nombre solo deben aceptar caracteres
alfabéticos.
- Los campos de texto de correo electrónico deben aceptar caracteres
alfanuméricos.
5. Construcción:
Diseño de Interfaces:
Main.xml
Figura 3-2: Interfaz main.xml
Agregar.xml
Figura 3-3: Interfaz agregar.xml
6. Actualizar.xml
Figura 3-4: Interfaz actualizar.xml
Luego de realizar el diseño de interfaces hemos de implementar las clases propuestas:
Principal: En esta clase lo que se hace es mostrar la interfaz main.xml (Figura
3-2) con la lista de contactos (si los hubiera, en otro caso vacía con los botones
Agregar y Cerrar).
El botón Agregar de dicha interfaz lo que hace es mostrar la interfaz de la
activity AgregarContacto, la cual veremos más adelante.
La interfaz también contiene un listview a través del cual se muestran los
contactos almacenados en la Base de Datos llamada “agenda”, uno sobre el
otro, como se ve en la Figura 3-2.
Figura 3-5: Muestra de la Base de Datos “agenda” en el emulador de Android
Este llenado del listview se hace a través de un llamado a una sentencia SQL,
de la siguiente manera:
bd.rawQuery(mostrarContactos, null);
7. Donde mostrarContactos es igual a "SELECT nombre FROM
contacto".
El botón Cerrar que es el que finaliza la aplicación.
También en main.xml, al presionar la tecla menú del dispositivo móvil se
muestra un menú (menutel.xml)
Figura 3-6: Menú
Este menú tiene 3 funciones: llamar, actualizar y eliminar.
o Llamar: Lo que hace esta opción es activar la intención de llamada a
través de un Intent, al seleccionar un contacto a través de teclado:
Intent callIntent = new Intent(Intent.ACTION_CALL,
Uri.parse(number))
Donde number es el teléfono del contacto puesto de la siguiente
manera:
number = "tel:" + telefono.toString().trim();
Abriendo luego la activity del Intent:
startActivity(callIntent);
Figura 3-7: callintent activity
8. o Actualizar: Llama a la activity Actualizar pasándole como parámetro el
nombre del contacto seleccionado:
actualizar.putExtra("nombre",
lista.get(posicion).toString());
o Eliminar: Esta opción lo que hace es eliminar un contacto de la Base de
Datos con la siguiente sentencia SQL:
bd.execSQL("DELETE FROM contacto WHERE
nombre='"+nombre+"'");
AgregarContacto: Lo que hace esta activity es llamar a la interfaz agregar.xml
(Figura 3-3), la cual nos permite ingresar los datos del contacto: Nombre,
Teléfono y Correo Electrónico.
Al presionar la tecla guardar de esta activity se ejecuta la siguiente sentencia
SQL para almacenar los datos en la Base de Datos:
baseDatos.insert(tablaContacto, null, values)
Donde values es un tipo Content que contiene las variables de nombre,
teléfono y correo:
values.put("nombre",nombre );
values.put("telefono", telefono);
values.put("correo", correo);
Actualizar: Esta activity permite actualizar los datos del contacto seleccionado.
Como ya se dijo anteriormente recibe como parámetro el nombre de contacto
con el cual busca los datos de este en la Base de Datos:
bd.rawQuery("SELECT * FROM contacto WHERE
nombre='"+TextNombreA.getText().toString()+"'", null);
Estos datos son almacenados en una variable tipo Cursor, que se asemeja al
Resultset de Java, y son mostrados en los EditText de la interfaz.
Luego podemos modificar estos datos (a excepción del nombre) a nuestro
antojo, y al presionar el botón Actualizar Contacto quedarán estos cambios
guardados en la Base de Datos a través de la sentencia SQL:
bd.execSQL("UPDATE contacto SET
telefono='"+TextTelefonoA.getText().toString()+"',correo='"
+TextCorreoA.getText().toString()+"' WHERE
nombre='"+TextNombreA.getText().toString()+"'");
9. CAPITULO IV: REFERENCIAS BIBLIOGRAFICAS
[Hashimi, 2010] Sayed Y. Hashimi, Satya Komatineni, and Dave MacLean, “Pro Android 2” .
Nueva York, Estados Unidos.
[URL01] cursopudeandroid.googlecode.com/files/DayFive.pdf
CAPITULO IV: CONCLUSIONES y RECOMENDACIONES
Se ha logrado hacer buen uso de las herramientas SQLite contenidas en el
framework de Android, logrando implementar con éxito la aplicación propuesta
como proyecto de este curso, demostrando así la facilidad de desarrollar
aplicaciones para la plataforma Android.
Una recomendación para trabajos futuros es la implementación de una
herramienta de búsqueda de contactos ya que ese punto no ha sido tomado en
el desarrollo de esta app.