domingo, 25 de marzo de 2012

Reporte de Avance - Medio Curso

A continuación mostrare los avances correspondientes a mi proyecto de la materia de dispositivos móviles. 


Presentación:




Importancia/Impacto esperado del Proyecto

Inicialmente, mi idea del proyecto fue la siguiente: "Una aplicación con funciones esenciales para llamadas de emergencia". Esto involucraría llamar al número de emergencias simplemente con un solo botón, o seleccionarlo de una lista. La idea evolucionó poco a poco al ver otras aplicaciones que eran similares, es decir, aplicaciones que enviaban mensajes, que guardaban información esencial sobre la salud del usuario, y otras más. 

Al investigarlas me di cuenta que en sí, no hay ninguna aplicación que reúna todas las funcionalidades en un solo sistema. Además de reunirlas, es un reto también hacer que la conjunción de estas en un mismo sistema no cause problemas de tiempo, es decir que todas puedan ser accedidas en el mismo tiempo (menor tiempo posible desde abrir la aplicación).

Agregando a esto esta la funcionalidad GPS, si bien tenía pensado tener hospitales y estaciones de policía asociados a direcciones y entonces encontrar el más cercano, esto sería muy tedioso, por lo tanto me dedicaré a simplificar la idea a el número de emergencias del área, que usualmente varía por países, esto incrementaría enormemente el impacto del proyecto, ya que lo haría internacional

Además tengo pensado hacer la aplicación en inglés y español, para poderla hacer así entendible a un público más grande, pero aún así colocando imágenes a cada opción en lo posible, para poder explicar claramente que funcionalidad hace.

Me parece que todos estos elementos hacen que mi aplicación (o por lo menos la idea de la aplicación, por el momento) pueda tener un impacto importante en la sociedad.


Herramientas y Tecnologías Utilizadas


Android




En un post anterior, había mencionado que escogí Android como plataforma para programar la aplicación, pero no fui muy claro en por qué lo escogí sobre otras tecnologías como: iOS, WindowsPhone y demás. 

Mi razón de escoger Android es por la cantidad de personas que utilizan smartphones con el sistema operativo Android, que en comparación con las personas que tienen iPhones o smartphones con Windows Phone, son mucho mayores. Esto le daría a mi aplicación una proyección mayor.

Además, mi deseo es que mi aplicación esté disponible a la mayor cantidad de público posible, y de nuevo, los celulares con Android son los que mayor ventas tienen en estos días, ya sean Nokia, Motorola, Samsung, LG, etc.


Eclipse

Android se integra bien con eclipse, y esto me puede ayudar a facilitar muchas cosas como el debug, y el correr mi aplicación en el emulador para realizar pruebas.


También tiene herramientas para editar el xml y definir una interfaz de usuario.


DroidDraw

Un programa que encontré. Funciona ya sea en línea, o stand alone descargándolo en Windows, Linux o Mac OS. Funciona con una simple interfaz para ir agregando widgets y layouts a un área, lo que podemos usar para generar nuestra interfaz como deseemos. Ya teniendo dicha interfaz, es posible generar el xml basado en ella, el cual podríamos importar a nuestro proyecto.


Calendarización


Primero que nada, el trabajo que he hecho hasta la fecha puede ser verificado en el post especialmente dedicado al proyecto.


Ahora, el diagrama de la calendarización es el siguiente:



(Click para ver en tamaño completo)
Explicación


Lo que pienso hacer en un futuro cercano es primeramente, terminar de investigar sobre los GPS, las bases de datos y el funcionamiento de las clases de Android especializadas en llamadas y mensajería. Ya conociendo un poco sobre todo esto (por lo menos lo suficiente para saber buscar más adelante cuando sea necesario), avanzaría al diseño de la interfaz en sí, lejos de los prototipos o ideas que tenía inicialmente. 

Me gusta comenzar por la interfaz, ya que al tener la idea de donde quedan los botones, formularios y demás, lo siguiente es simplemente relacionarlos con las acciones que harán, y estas con las clases que realizan dichas acciones. Además el hecho de que la interfaz se pueda realizar desde un xml, separando la interfaz del código de cierta forma, me parece que lo hace mucho más simple y limpio. Esto tengo pensado hacerlo en una sola semana, obviamente no dedicándole todos los días(hay otros proyectos que también debo avanzar), es probable que no tome mucho tiempo teniendo diseños ya en mente.

Lo siguiente sería ya entrar de lleno a la programación, primeramente quiero que funcionen las llamadas y mensajes, por esto antes quiero investigar, ya que no estoy seguro si es posible hacer pruebas a esto desde el emulador, o si es necesario un dispositivo. Teniendo esto, considero que sería un 60 -70 % del proyecto.

La parte final sería la base de datos, y su función con el GPS. Como mencioné, tuve que degradar esta idea para hacer la aplicación mucho más usable en un mayor número de países posible. La idea actual es que llame al número de emergencia del país correspondiente, el cual detectará el GPS. Para esto entonces, necesitamos tener una base de datos con países, coordenadas quizás, teléfonos y otra información para que la aplicación sepa a que número marcar.

Ya para terminar, se harían pruebas en un dispositivo para asegurarnos que funcione correctamente.


Consideraciones de Usabilidad 




La idea de mi proyecto es bastante clara, una aplicación para emergencias. Por lo tanto, no es difícil pensar en algunas consideraciones de usabilidad que debería tener, prácticamente por obligación, para justificar la existencia de la aplicación.
Las consideraciones de usabilidad más importantes son las siguientes:
  • Interfaz Simple. No podemos darle a un usuario una aplicación de emergencias que sea muy difícil de entender, sino que sentido tendría utilizar una aplicación especializada para estos casos, si simplemente podemos buscar el número en nuestro propio celular.





  • Múltiples funciones. Ya existen aplicaciones similares a mi idea, pero el problema de estas es que sus funcionalidades están esparcidas, alguna para llamar a emergencias, otra para mandar mensajes, otra para guardar información sobre la salud, etc. Por esto, mi aplicación debe abarcar todos estos campos, con la misma o mejor eficiencia que estas, sin afectar la simplicidad.



(Imágenes tomadas de: https://play.google.com/store)
Aplicaciones similares
  • Eficiencia(Tiempo). Las personas en casos de emergencia carecen de tiempo, cada segundo es valioso, por lo tanto queremos también disminuir el tiempo gastado desde home o la parte principal del sistema operativo, hasta poder realizar la llamada o función específica para esa emergencia. Esto involucra también que la aplicación debe cargarse rápidamente. La idea podría ser pedirle al usuario que deje que la aplicación coloque un bookmark  en la pantalla home, o algo por el estilo, como lo siguiente:
(Imágen tomada de: https://play.google.com/store)
Simplemente se presionaría el botón, y la aplicación haría lo suyo
  • Lenguaje. Mi idea es realizar la aplicación tanto en inglés como en español ya que, en el mismo proyecto creado por eclipse, se genera un xml llamado strings.xml, donde se almacenan todas las palabras usadas dentro de la aplicación, en los botones, labels, y dempás. Éste xml, puede ser escrito en diferentes idiomas, y almacenado en una carpeta diferente para cada idioma, entonces la aplicación accedería al xml adecuado para el lenguaje en el que esta configurado su celular. Si está en otro idioma diferente al inglés y al español, se cargaría el inglés.
(Imágen tomada de: https://play.google.com/store)
Más claro imposible
Referencias:

1 comentario: