Aplicación de Android para registro de datos en BD

Programación Orientada a Objetos ELO329 2018-1

Orientado a Objetos

Desarrollado en lenguaje de programación Java, la aplicación hace uso de distintas clases que están encargados de los métodos y atributos en los modelos creados en la aplicación.

Desarrollado con Android

Basándose en un paradigma de Actividades, que utiliza una arquitectura MVC (Modelo-Vista-Controlador) permite poder desarrollar las vistas y controladores de la aplicación.

Base de datos

Mediante el uso de una RDBMS local administrada con php por el usuario, de tal manera que se puedan almacenar registro respecto a lo necesario para mantención de maquinaria e infraestructura.

Proyecto

Se necesita de registrar ordenadamente ordenes de trabajo, específicamente sobre mantención de maquinaria e infraestructura de un negocio, Este registro necesita eestar estrictamente ordenado, ya que, posteriormente será utilizado para realizar análisis de costos, humano, operacional, estructural,etc. con el fin de optimizar y prevenir futuras fallas en los campos ya mencionados

EL eje central del proyecto es realizar una aplicación en Android, complementada con Java y SQL, en la cual se permita ingresar datos de un determinado local donde fuesen a ocurrir fallas técnicas, esta información se guarde en una Base de datos local ligera (SQLite) y asi tener un registro de las mantenciones necesarias a realizar en diferentes locales asociados

Análisis del Proyecto

El proyecto se realizó con una mezcla de programación en android complementada con Java y una base de datos administrada y accesible con php

“Como se mencionó anteriormente, al iniciar el proyecto se comenzaron a crear de forma dinámica o manual una serie de vistas,modelos y controladores que serían la base de la parte en android, todo esto parte de una misma actividad, de un mismo ambiente de trabajo ya que ese es el paradigma de la programación en android. Las vistas corresponden a los layout que se verán en la aplicación, los controladores, como su nombre lo dice controlan de forma lógica que actualiza las vistas y modelos de acuerdo a la interacción con al app y finalmente los modelos, programados en java, contienen la data y objetos con los que se trabajará además de asociar la aplicación con la base de datos utilizada.”

“Los modelos por su parte, programados en java, corresponden a clases que extienden de las actividades en android, que contienen métodos y atributos asociados a las vistas,desde acciones para los botones, menus, información a mostrar en determinadas vistas, etc. Estas también se encargan de relacionar el contenido ingresado a los spinners con los ingresos a la base de datos. ”

“Parte de la estructura base de nuestro proyecto es la conexión a la Base de Datos, para lo cual se implementó el arquetipo LAMP, el cual describe una infraestructura basada en Linux, Apache, MySQL/MariaDB y PHP/Pearl/Python. En nuestro caso se utilizó MySQL y PHP. El servidor Apache fue levantado en un pc usado para testear la aplicación, realizando la conexión con PHP junto con las Querys necesarias desde ésta. En la aplicación se incluyeron las dependencias de Apache, para el uso del protocolo HTTP y comunicarse con la Base de Datos.”

Dificultades

Durante el desarrollo de la aplicación, fueron surgiendo problemas y dificultades que entorpecían el avance en esta.

Trabajar con multihilos

Uno de los principales problemas de la aplicación en un inicio, fue el entender como trabajar con múltiples subprocesos al mismo tiempo, ya que por ejemplo, los spinners e ingresos de texto con los que trabajamos correspondían cada uno a hilos por su misma cuenta, y al ir trabajando con muchos de ellos a la vez, como originalmente habíamos desarrollado la aplicación, causaba que se fueran sobrelapando o destruyéndose los más antiguos causando una perdida de control en la aplicación y los registros ingresados. Frente a esto, por temas de tiempo, preferimos modificar la aplicación para mostrar su funcionalidad controlando solo un subproceso ya que era más sencillo que comenzar a estudiar como trabajar con multihilos, siendo que ya teníamos una gran cantidad de temas que abordar ántes para que funcionara la app.

Conexión con Base de Datos

Uno de los primeros problemas que surgieron al implementar la conexión con la BD fue el uso de una gran cantidad de dependencias, ante lo cual se resolvió controlando todo mediante php con phpmyadmin, además de asignar un usuario, aparte de root, en la simulación para poder entregar las solicitudes. Sin embargo, por temas de presentación, no se dio mayor relevancia a este tema ya que de todas formas, luego si se planea completar al 100% la aplicación, requerirá de distintos tipos de usuario con niveles de permisos que se pueden registrar dentro de la misma base de datos y esta mediante las solicitudes, al logearse, verifique si posee permisos para modificar la base de datos o n; así que mientras tanto para esta situación controlada donde se sigue desarrollando la aplicación, basta con tener un usuario administrador-root que pueda tener acceso completo a la base de datos tanto para agregar como quitar elementos de esta, permitiendonos un mayor manejo de la base de datos mientras se immplementan los registros de niveles de usuario.

Exceso en uso de dependencias

Debido a que estabamos trabajando en el desarrollo de una aplicación en android relacionada a una base de datos para mantener los regitros, tanto los modelos como controladores que se generaron haciando uso de múltiples dependencias, principalmente de android y en SQL, que eran necesarias utilizarlas para que la aplicación funcionara, por lo que, antes de poder codear la los métodos mismos en java de la funcionalidad para ingresar datos a las vistas y registrarlos a la base de datos, se tuvo que investigar para así entender en que consistían todos los métodos u objetos importados en los archivos que debían usarse en conjunto o desde las mismas clases que nosotros creamos inicialmente.

Relacionar Vista & Controladores

Uno de los problemas iniciales que surgieron fueron el de relacionar las vistas con los controladores, ya que las vistas al crearse, contenían ciertos elementos que contaban y requerían de varias formas de configurarlos. Por lo que en los controladores se podían implementar métodos especificos hechos por nosotros para controlar dichos elementos especificos en los layouts, métodos asociados a estos por las dependencias incluidas en los archivos o controlarlos mediante herencia, utilizando funciones ya existentes en estos heredados de sus clases padre creados junto con los layout al momento de desarrollarlas inicialmente.

Preset Colors