SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
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].
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
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.
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():void
insertarFila(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
   Construcción:

    Diseño de Interfaces:

          Main.xml




                             Figura 3-2: Interfaz main.xml
          Agregar.xml




                            Figura 3-3: Interfaz agregar.xml
   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);
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
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()+"'");
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.

Más contenido relacionado

La actualidad más candente (17)

Introduccion a VB6
Introduccion a VB6Introduccion a VB6
Introduccion a VB6
 
Aplicación móvil
Aplicación móvilAplicación móvil
Aplicación móvil
 
Entorno excel ofimatica 1º y 2º
Entorno excel ofimatica 1º y 2ºEntorno excel ofimatica 1º y 2º
Entorno excel ofimatica 1º y 2º
 
Vba para excel
Vba para excelVba para excel
Vba para excel
 
Diseño sistema
Diseño sistemaDiseño sistema
Diseño sistema
 
Formulario de altas
Formulario de altasFormulario de altas
Formulario de altas
 
Lazarus
LazarusLazarus
Lazarus
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Modulos y funciones en VBA
Modulos y funciones en VBAModulos y funciones en VBA
Modulos y funciones en VBA
 
Ejemplos Borland C++ Builder
Ejemplos Borland C++ BuilderEjemplos Borland C++ Builder
Ejemplos Borland C++ Builder
 
Practica5
Practica5Practica5
Practica5
 
Elemento n3
Elemento n3Elemento n3
Elemento n3
 
CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010
 
Ambiente de trabajo
Ambiente de trabajoAmbiente de trabajo
Ambiente de trabajo
 
Tarea Nº1
Tarea Nº1Tarea Nº1
Tarea Nº1
 
Tarea Nº1
Tarea Nº1Tarea Nº1
Tarea Nº1
 
Elaboracion de presupuesto en s10 01
Elaboracion de presupuesto en s10 01Elaboracion de presupuesto en s10 01
Elaboracion de presupuesto en s10 01
 

Similar a Agenda con SQLite (20)

Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Copia de entorno de grado (1)
Copia de entorno de grado (1)Copia de entorno de grado (1)
Copia de entorno de grado (1)
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Android
AndroidAndroid
Android
 
Preguntasviri
PreguntasviriPreguntasviri
Preguntasviri
 
Visual basic
Visual basicVisual basic
Visual basic
 
Manual de android
Manual de androidManual de android
Manual de android
 
Fundamentos de Visual Basic
Fundamentos de Visual BasicFundamentos de Visual Basic
Fundamentos de Visual Basic
 
Manual tecnico
Manual tecnicoManual tecnico
Manual tecnico
 
VERUSKA SALA
VERUSKA SALAVERUSKA SALA
VERUSKA SALA
 
Roxana
RoxanaRoxana
Roxana
 
Visualbasic6.0
Visualbasic6.0Visualbasic6.0
Visualbasic6.0
 
Aplicacion movil con_bd
Aplicacion movil con_bdAplicacion movil con_bd
Aplicacion movil con_bd
 
Aplicacion movil con_bd
Aplicacion movil con_bdAplicacion movil con_bd
Aplicacion movil con_bd
 
Fundamentosbasicosdevisualbasic
FundamentosbasicosdevisualbasicFundamentosbasicosdevisualbasic
Fundamentosbasicosdevisualbasic
 
Vb net
Vb netVb net
Vb net
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 

Agenda con SQLite

  • 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.
  • 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():void insertarFila(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.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.