Your SlideShare is downloading. ×
Agenda con SQLite
Agenda con SQLite
Agenda con SQLite
Agenda con SQLite
Agenda con SQLite
Agenda con SQLite
Agenda con SQLite
Agenda con SQLite
Agenda con SQLite
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Agenda con SQLite

3,938

Published on

Proyecto sobre una Agenda en Android con SQLite

Proyecto sobre una Agenda en Android con SQLite

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,938
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
194
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. INFORME ACERCA DEL PROYECTO DE TOPICOS DE SISTEMAS OPERATIVOS 2001-1CAPITULO I: GENERALIDADESNombre del Proyecto: Desarrollo de una App “AGENDROID” para Android OSDescripción General del Proyecto:En el presente proyecto se pretende dar a conocer los pasos para el desarrollo de una APP enAndroid OS, llamada “Agendroid”. Esta aplicación utiliza el framework de SQLite que nosofrece herramientas para manipular una base de datos que almacenará la información de loscontactos. Con estas herramientas podremos implementar las diferentes funciones inherentesde una agenda como agregar, modificar y eliminar contactos.Seguiremos el diseño del ciclo de vida del presente software que será detallado masadelántate en la cual seguiremos las etapas de iniciación, elaboración, construcción, ytransició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 REFERENCIALSQLite: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 aplicacionesque quieren utilizar SQLite.Implementa la mayor parte del estándar SQL-92 pero con restricciones, con soporteALTER_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 enAndroid 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: DESARROLLOCiclo 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.
  • 4. Arquitectura:A partir de los requisitos hemos diseñado la siguiente arquitectura para la aplicación: Agregar Contacto TextNombre: EditText TextTelefono: EditText TextCorreo: EditText butGuardar: Button baseDatos: SQLiteDatabase TAG: String nombreBD: String tablaContacto: String crearTablaContacto: String onCreate(Bundle savedInstanceState): void abrirBasedatos():voidinsertarFila(String nombre, String telefono, String correo): boolean Principal bd: SQLiteDatabase botagregar: Button botCerrar: Button lstMostrar: ListView posición: int lista: ArrayList<String> usuario: String teléfono: String mostrarContactos: String crearTablaContacto: String c: Cursor a: Cursor onCreate(Bundle savedInstanceState): void onCreateOptionsMenu(Menu menu): boolean onOptionsItemSelected(MenuItem item): boolean Actualizar Bd: SQLiteDatabase TextNombreA: EditText TextTelefonoA: EditText TextCorreoA: EditText botActualizar: Button crearTablaContacto: String c: Cursor onCreate(Bundle savedInstanceState): void
  • 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.xmlLuego 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 FROMcontacto".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 semuestra 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.pdfCAPITULO 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.

×