Informe Proyecto

Repositorio git: https://github.com/dogtooth22/OOP_Project

 

1.    Introducción 1

2.    Análisis del problema 1

3.    Casos de uso 1

4.    Diseño 1

5.    Pruebas 1

6.    Código Fuente

 

1.    Introducción

 

Como estudiantes de la USM, nos gusta tener una forma de comunicarnos y tener un entendimiento de lo que está ocurriendo en la universidad. De las formas más divertidas es por medio de las confesiones, pero el sistema que se tiene no es uno adecuado a la naturaleza de estas. Se tiene que subir una confesión por medio de un formulario de Google, lo que le toma tiempo a la persona encargada, y aunque es posible ingresar los parámetros necesarios para hacer la confesión más significativa, la lectura no sería muy cómoda para en un post de Instagram; como se ocupan capturas de pantalla del formulario subido, no se tiene mucho control sobre su aspecto. Es por esto que este informe abordará una propuesta para una aplicación móvil en que sansanos pueden subir sus confesiones a una base de datos para poder verlas en el momento en que se publican, junto con parámetros como la fecha en que se publicó, la anonimidad o no de la confesión y la sede en que la persona estudia.

2.    Análisis del problema

 

Realizar una aplicación móvil es un trabajo bastante difícil, ya que tiene que el diseño debe ser cómodo para distintos tipos de usuarios y distintos tipos de teléfonos, por lo que es muy importante tener en consideración los factores más importantes para lograr una buena aplicación. Primero se debe escoger el IDE para desarrollar, lo que para usuarios de Windows se limita solo a Android Studio al no poder desarrollar para iOS, mientras que los usuarios de MAC sí pueden desarrollar tanto para Android como para iOS. En este caso al ser un usuario de Windows y un usuario de Android también, se escogerá Android Studio para crear la aplicación, utilizando Java como lenguaje principal. A futuro con las herramientas se puede desarrollar para iOS al haber una gran cantidad de usuarios en la universidad.

Luego, se debe plantear la base de datos a utilizar, ya que las confesiones deben subirse a alguna parte. La primera opción fue Firebase al tener experiencia con este servicio de base de datos, pero también se quiso ocupar Oracle Cloud al tener una cuenta gratuita por un año con 20GB de almacenamiento, pero por la recomendación de muchos programadores no eran buena idea combinar Android Studio con Oracle Cloud, por lo que se eligió la opción de Firebase por temas de experiencia y porque es relativamente sencillo crear un proyecto nuevo.

Para ir probando la aplicación se puede ocupar el emulador de Android Studio, el cual tiene un dispositivo virtual con la versión 13.0 del sistema operativo Android. Esto permite que al compilar el código se tenga un teléfono emulado en el computador, siendo más cómodo para el desarrollo al tener todo en la misma pantalla. Esto requiere mucho poder computacional por lo que el rendimiento puede no ser tan bueno, y es que ocupa mínimo 4 GB de RAM del computador. Otro método importante es el de ocupar un dispositivo físico para probar la aplicación, teniendo un rendimiento mucho mejor al visto en el emulador. Sin embargo, no resulta tan cómodo para el desarrollo al tener que desbloquear el teléfono cada vez que se quiere hacer un cambio, y en otras circunstancias no se puede tener un control sobre el Hardware del dispositivo (baja batería, calidad de internet, ubicación, etc.), por lo que es más conveniente tener un buen computador para desarrollar en Android Studio. Por lo tanto, se escogió la opción emulada.

Ya con la aplicación terminada, se puede exportar el archivo APK y compartirlo a aquellos que quieran usar la aplicación. No conozco el proceso de subir una aplicación a Play Store y puede ser muy bueno para subir actualizaciones, pero es un trabajo a futuro si se decide lanzar la aplicación para que quienes quieran utilizarla tengan una buena experiencia.

3.    Casos de uso

 

Los casos de uso son muy importantes en el desarrollo de software, por lo que se describirán las interacciones del usuario con la aplicación y los resultados.

a)    Crear cuenta: si el usuario no tiene una cuenta creada, se debe registrar ingresando su nombre de usuario, correo USM, teléfono, sede donde estudia, y la contraseña. Se creará la cuenta en la base de datos y el usuario puede ingresar sesión.

 

b)   Iniciar sesión: en la pantalla principal de la aplicación se debe ingresar el email y la contraseña del usuario, ya teniendo una cuenta al registrarse. Si el email y la contraseña coinciden se pasará al feed de confesiones y la sesión se mantendrá abierta hasta que se cierre sesión.

 

c)    Subir confesión: cuando el usuario presiona el botón del medio de la barra de navegación, se le mostrará la pantalla para subir la confesión. Desde aquí el usuario escribe su confesión y se puede escoger si es una confesión anónima, subiendo la confesión a la base de datos tras presionar el botón.

     4.  Diseño

 

a)    Diagrama de clases

A picture containing diagram, technical drawing, plan, schematic

Description automatically generated

b)   Diagrama de secuencias

 

A picture containing text, screenshot, diagram, parallel

Description automatically generated

                                

 5.  Pruebas

 

Ya avanzado en la aplicación se mostrarán las principales pruebas de los casos de uso, junto con las problemáticas encontradas y capturas de pantalla de la aplicación.

a)    Crear usuario: se tiene la actividad para crear al usuario, y después de ingresar todos los parámetros se debe presionar el botón “Registrarse”. Tras esto, se inicia sesión de forma automática y se sube el objeto User a Firestore Database. Como he usado Firebase para crear aplicaciones en Android Studio no tuve muchos problemas, pero nunca había ocupado Firestore Database, por lo que me causó un poco de problemas subir el objeto creado a la base de datos.

A screenshot of a phone

Description automatically generated with medium confidence                  A screenshot of a computer

Description automatically generated

               

b)   Iniciar sesión: al ingresar el correo y la contraseña del usuario de forma correcta, se pasará a la página principal para ver las confesiones. Esto no fue difícil de implementar porque Firebase ofrece métodos en Android Studio para verificar si el login fue realizado de forma correcta.

 

A screenshot of a phone

Description automatically generated with medium confidence   A screenshot of a social media post

Description automatically generated with medium confidence

 

c)    Subir confesión: al presionar el botón morado se sube la confesión con los parámetros que se pueden modificar. Cada confesión se sube a Firestore Database con un nombre de documento aleatorio. Esto tampoco fue difícil de implementar considerando el primer caso de uso.

 

A screenshot of a computer

Description automatically generated with medium confidence                 A screenshot of a computer

Description automatically generated

 

       6.    Código fuente

 

El código fuente, el cual incluye todos los archivos dentro de la carpeta src del proyecto se encuentra en el siguiente link.