prototipo apps libro

Upload: lina-fernandez

Post on 02-Mar-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 Prototipo Apps Libro

    1/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 1

    Primeras aplicaciones Android para

    el acceso mvil a los servicios de

    ESADE (AMSE).

    AutorAlberto Santos Benito

    Director de proyecto:Jorge Luis Rodriguez Gonzlez

    Curso 2011/2012

  • 7/26/2019 Prototipo Apps Libro

    2/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 2

    ndice

    Contenidondice ............................................................................................................................................. 2

    1. Introduccin .......................................................................................................................... 5

    1.1. Motivacin del proyecto .............................................................................................. 5

    1.2. Objetivos ....................................................................................................................... 5

    1.3. Metodologa seguida en el proyecto............................................................................. 6

    1.4. Estructura de la memoria .............................................................................................. 82. Requisitos funcionales y maquetacin .................................................................................. 9

    2.1. Toma de requisitos funcionales .................................................................................... 9

    2.2. Descomposicin funcional ............................................................................................ 9

    2.3. Fase de maquetacin y prototipaje ............................................................................ 10

    2.4. Funcionalidades ........................................................................................................... 13

    2.4.1. F01 Acceso a la aplicacin personas ESADE ........................................................ 13

    2.4.2. F02 Acceso a la aplicacin por defecto ............................................................... 15

    2.4.3. F03 Mostrar noticias............................................................................................ 16

    2.4.4. F04 Informacin Campus .................................................................................... 17

    2.4.5. F05 Mostrar Horario ............................................................................................ 18

    2.4.6. F06 Solicitudes de informacin ........................................................................... 19

    2.4.7. F07 Mostrar Notas............................................................................................... 21

    2.4.8. F08 Alertas Especficas ........................................................................................ 22

    2.4.9. F09 Estado de las becas ....................................................................................... 23

    2.4.10. F10 Estado solicitud admisin ............................................................................. 24

    2.4.11. F11 Documentacin Pendiente ........................................................................... 25

    2.4.12. F12 Estado TUI ..................................................................................................... 26

    2.4.13. F13 Movimientos TUI .......................................................................................... 27

    2.4.14. F14 Moodle ......................................................................................................... 28

    2.4.15. F15 Mostrar Exmenes ........................................................................................ 29

    2.4.16. F16 Salir de la aplicacin .................................................................................... 30

    2.4.17. F17 Seleccionar idioma ....................................................................................... 31

    2.4.18. F18 Cerrar Sesin ................................................................................................ 32

  • 7/26/2019 Prototipo Apps Libro

    3/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 3

    2.4.19. F19 Listar Programas ESADE ................................................................................ 33

    2.4.20. F20 Experiencias Alumnos ................................................................................... 34

    2.4.21. F21 Cmo llegar? ............................................................................................... 35

    2.4.22. F22 Eventos ESADE Frum .................................................................................. 36

    2.4.23. F23 Listar eventos ESADE Frum ......................................................................... 37

    2.4.24. F24 Qu es ESADE? .............................................................................................. 38

    2.4.25. F25 Pasatiempos ................................................................................................. 39

    2.4.26. F26 Sopa de letras ............................................................................................... 40

    2.4.27. F27 Test del talento para las Becas ..................................................................... 41

    3. Especificacin ...................................................................................................................... 42

    3.1. Especificacin parte ANDROID .................................................................................... 43

    3.2. Especificacin parte Servidor ...................................................................................... 51

    3.3. Curso de acontecimientos de los casos de uso. .......................................................... 56

    3.3.1. Login .................................................................................................................... 56

    3.3.2. Acceso pblico ..................................................................................................... 57

    3.3.3. Consultar Informacin ESADE ............................................................................. 57

    3.3.4. Consulta ESADE ................................................................................................... 583.3.5. Consultar Eventos................................................................................................ 58

    3.3.6. Consultar Noticias ............................................................................................... 59

    3.3.7. Seleccin de idiomas ........................................................................................... 59

    4. Diseo .................................................................................................................................. 60

    4.1. Mdulos ...................................................................................................................... 61

    4.1.1. Mdulo Login y llamadas al servidor. .................................................................. 61

    4.1.2. Mdulo creacin de funcionalidades .................................................................. 64

    4.1.3. Mdulo Generacin Men Principal ................................................................... 68

    4.1.4. Mdulo Generador de Listas ............................................................................... 70

    4.1.5. Mdulo Generacin RSS ...................................................................................... 73

    5. Estndares utilizados y tecnologas ..................................................................................... 74

    5.1. XML .............................................................................................................................. 74

    5.2. Jquery Mobile .............................................................................................................. 75

    5.3. Struts (obligatorio por ESADE) .................................................................................... 76

    5.4. Hibernate (obligatorio por ESADE) .............................................................................. 76

  • 7/26/2019 Prototipo Apps Libro

    4/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 4

    5.5. RSS (obligatorio por ESADE) ........................................................................................ 76

    6. Implementacin .................................................................................................................. 77

    6.1. Mdulo de Generacin de funcionalidades. ............................................................... 78

    6.2. Mdulo Generacin Men Principal. .......................................................................... 80

    6.2.1. La clase Adapter (API Android) ............................................................................ 80

    6.2.2. Implementacin del mdulo Generacin Men Principal .................................. 83

    6.3. Mdulo de Generacin de RSS ................................................................................ 86

    6.4. Mdulo de Generacin de Listas. ............................................................................ 88

    6.5. Mdulo de Login...................................................................................................... 90

    7. Evolutivos, cambios respecto al funcional y problemas surgidos ...................................... 92

    7.1. Cambio de iconos ........................................................................................................ 92

    7.2. Inclusin Google Maps Nativo (Evolutivo F21) ........................................................... 93

    7.3. Informacin Campus (Evolutivo F4) ............................................................................ 95

    7.4. Inclusin de RSS (Eliminacin de F22 y F23 y Evolutivo de F3) ................................... 96

    8. Planificacin del proyecto. .................................................................................................. 97

    8.1. Costes estimados (parte 1) .......................................................................................... 98

    8.2. Costes estimados (parte 2) .......................................................................................... 998.3. Costes (tiempo real) .................................................................................................. 100

    9. Resultado Final .................................................................................................................. 104

    10. Conclusiones y agradecimientos. .................................................................................. 108

  • 7/26/2019 Prototipo Apps Libro

    5/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 5

    1. Introduccin

    1.1.

    Motivacin del proyecto

    La fundacin ESADE es una institucin acadmica internacional con ms de cincuenta

    aos de historia. Su principal patrimonio son las personas: profesores y profesionales que

    generan pensamiento, discurso, proyectos e iniciativas al servicio de una formacin excelente,

    una investigacin relevante y una valiosa contribucin al debate pblico y a la transformacin

    social.

    ESADE no se escapa del impacto y de la repercusin que ha tenido la explosin de la

    Sociedad de la Informacin y las mejoras en las comunicaciones. Estas mejoras han dado lugar

    al desarrollo y herramientas que permiten evolucionar y crecer entre otras como empresa, o

    fundacin en este caso. Es por todo esto que ESADE se ve en la necesidad de sumarse al carro

    de las tecnologas mviles, y de las redes sociales.

    El tener la posibilidad de ser el primero en enfocar las aplicaciones de ESADE para

    dispositivos mviles, dada la importancia de ESADE en el mundo de las escuelas de negocio,

    era un reto muy interesante.

    1.2.

    Objetivos

    El objetivo de este proyecto es empezar a introducir a ESADE en el mundo de las

    tecnologas mviles, y darle al usuario lo questas son capaces de ofrecerle.

    Qu queremos conseguir?

    Queremos ofrecer al usuario el acceso a los servicios de ESADE mediante terminales

    mviles. Para ello se ha tenido que conocer internamente como funciona ESADE, qu servicios

    ofrece, y cules son los ms adecuados para llevar a dispositivos mviles.

    No seramos la primera institucin de enseanza que ofrece la posibilidad de acceder

    a informacin pblica de esta forma, y es por eso que queremos que este proyecto sediferencie de los otros dndole un valor aadido importante, poder acceder a la informacin

    privada, sin necesidad de logarse a la intranet de ESADE mediante navegador convencional.

    Actualmente la para poder consultar la informacin privada, se tener que ir a consultar

    informacin desde la intranet, y eso puede resultar confuso y molesto a la hora de hacerlo

    desde un dispositivo mvil, ya que las aplicaciones y la intranet no estn pensadas para ser

    mostradas en este tipo de dispositivos.(aunque stos soporten los navegadores sin

    problemas).

  • 7/26/2019 Prototipo Apps Libro

    6/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 6

    Android

    Actualmente Android y iOS estn dominando el mundo de las tecnologas mviles en

    cuanto a aplicaciones, ya sean para uso personal, ocio o gestin empresarial. Es por ello que es

    acertado enfocarse en estas 2 plataformas para abarcar el mximo en cuanto a usuarios que

    vayan a utilizar nuestros servicios.

    La parte que se ha implementado y que forma parte de este proyecto es la parte

    Android, pero las primeras fases del proyecto son independientes a la plataforma de

    desarrollo, puesto que queremos que los servicios sean homogneos en todas las plataformas

    de desarrollo futuras. Para ello hay que abstraerse y pensar en hacer algo multiplataforma,

    escalable, reutilizableetc.

    Una de las partes importantes a destacar es el hecho de que la aplicacin ha sidopensada para ser multiidiomay multidispositivo

    Esto puede parecer obvio a simple vista, pero hay que pensar en que si desarrollas una

    funcionalidad pensando en una propiedad especifica de la API de una plataforma, ests

    imposibilitando la portabilidad a otra plataforma, con lo que estas reduciendo el nmero de

    usuarios que utilizaran esa funcionalidad. En el estudio del producto que queramos

    desarrollar se prefiri la portabilidad y la homogeneidadde las funcionalidades entre

    diferentes plataformas.

    1.3.

    Metodologa seguida en el proyecto

    Para la realizacin de este proyecto se ha utilizado la metodologa que se sigue en

    ESADE para los proyectos del TIC. Esta metodologa puede variar en funcin de si los

    proyectos se empiezan de 0 o si son un evolutivo. En nuestro caso el proyecto empezaba desde

    cero, aunque obviamente, utiliza mdulos o libreras ya implementadas previamente.

    Ms que metodologa podramos estar hablando de las fases que siguieron para llevar a

    cabo el proyecto, que listar a continuacin y describir brevemente.

    Brainstorming

    En esta fase nos tomamos un tiempo en estudiar que es ESADE, qu servicios ofrece, y

    cuales son susceptibles a ser accesibles mediante un dispositivo mvil.

    Funcional

    En esta fase definimos las funcionalidades finales que tendr el mvil en una primera

    fase. En ella definimos el comportamiento de la funcionalidad y la interaccin con el usuario,

    los perfiles que pueden acceder a ella y las restricciones que pueda haber.

  • 7/26/2019 Prototipo Apps Libro

    7/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 7

    Estimacin de costes

    En esta fase estimaremos los costes separando por mdulos / funcionalidades para

    hacernos una idea de lo que nos va a costar desarrollar el proyecto. Esta fase tiene en cuentatodas las fases que prosiguen, y nos marcamos unas fechas lmites para cada fase. Adems, encada funcionalidad o mdulo vamos aadiendo el tiempo estimado y el tiempo real, para saberla desviacin que hemos tenido en nuestro proyecto.

    Wireframes / Prototipaje

    En esta fase definimos las pantallas de la aplicacin, asociadas a cada funcionalidad, y

    la navegabilidad entre ellas, con lo que nos podemos empezar a hacer una idea de la

    arquitectura que tendr la aplicacin y podemos empezar a hacer los primeros esquemas, afalta de conocer la API y la arquitectura Android.

    Investigacin

    Puesto que no conocemos la tecnologa Android, necesitaremos un tiempo de

    aprendizaje y de una primera propuesta de cmo se desarrollaran las funcionalidades, sin

    llegar al detalle del algoritmo. Tenemos que investigar si Android nos facilita o no con su API, el

    desarrollo porque no tendra sentido reinventar la rueda o desarrollar algo que ya viene

    nativamente en Android. Sera una prdida de tiempo considerable y preferimos invertir

    tiempo en investigar.

    Especificacin

    Una vez sabemos cmo funciona la API de Android en los aspectos que nos interesa, y

    hemos realizado unos tutoriales para entender el funcionamiento interno de una aplicacin,

    debemos definir el diagrama de clases en el que basaremos nuestra aplicacin. Tenemos que

    pensarlo de tal manera que sea ampliable as que tenemos que tener cuidado con la cohesin

    y el acoplamiento, aunque la arquitectura que te presenta Android, facilita bastante este tema.

    Diseo

    En esta fase definimos los diagramas de secuencia que nos servir para empezar la

    implementacin. Puesto que estamos definiendo el esqueleto de la aplicacin y las actividades

    como tal, son muy simples, nos quedan pocos diagramas de secuencia pero son los diagramas

    clave para el posterior desarrollo de la aplicacin.

    Implementacin

    En esta fase empezamos a implementar la aplicacin. Durante esta fase nos daremos

    cuenta de que hay cosas que no se tendran que haber planteado de segn qu forma y nos

    har replantear el diseo de algunas de las funcionalidades, o simplemente nos da alguna

    funcionalidad de forma nativa.

  • 7/26/2019 Prototipo Apps Libro

    8/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 8

    Test

    En esta fase nos limitaremos a testear toda nuestra aplicacin, en ella intentaremos

    ver si tenemos algn problema con la implementacin y trataremos de arreglar cualquier

    imprevisto que nos surja.

    Documentacin

    En esta fase documentaremos todo lo realizado para la presentacin. Aunque parte de

    la documentacin forma parte del anlisis y la especificacin y la toma de requisitos ser

    incluida en ella.

    1.4.

    Estructura de la memoria

    Se ha estructurado la memoria de la siguiente manera

    En la seccin 2mostramos los requisitos funcionales con su maquetacin. Para cada

    funcionalidad adjuntaremos el prototipo de pantallas de la cual partiremos para empezar a

    desarrollar.

    En la seccin 3explicamos la especificacin del proyecto, tanto en la parte mvil como

    en la de servidor, con sus modelos conceptuales y casos de usos de las partesimplementadas solamente.

    En la seccin 4explicamos el diseo definido. Gracias a este diseo se ha definido una

    arquitectura potente, gracias a unos cuantos mdulos, que sern los que explicaremos con

    detalle. En este caso tambin describimos tanto la parte mvil como la de servidor.

    En la seccin 5explicamos los estndares utilizados, puesto que en las siguientes

    secciones empezamos a entrar en detalles ms tcnicos, y as ponernos en contexto.

    En la seccin 6explicamos parte de la implementacin y tendremos un apartado de

    problemas surgidos con sus soluciones.

    En la seccin 7se ven los cambios realizados respecto al funcional inicial y su

    maquetacin. Puesto que en principio se tuvo unas ideas, desconociendo la API de

    Android, y al final el resultado vari. En este apartado reflejamos todos los cambios.

    En las ultimas 3 seccionesmostraremos, respectivamente, la informacin relativa a la

    gestin del proyecto, el producto final, y una conclusin y valoracin personal.

  • 7/26/2019 Prototipo Apps Libro

    9/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 9

    2. Requisitos funcionales y maquetacin

    2.1.

    Toma de requisitos funcionales

    Los requisitos funcionales se tomaron en funcin de un estudio de los servicios que

    existen en ESADE. Para ello, se invirti horas en conocer qu servicio se ofrece a los usuarios.

    Se lleg a la conclusin de que mediante un terminal mvil no se pueden ofrecer esas

    funcionalidades que requieren tramitaciones complejas o rellenos de formularios complejos,

    puesto que para ello ya estn definidas las aplicaciones internas de ESADE.

    La decisin clave de este proyecto es enfocar la aplicacin como una forma de acceder

    a los servicios ms importantes a modo de consulta principalmente, intentando aprovechar los

    servicios que ya estn funcionando desde hace tiempo.

    Como todo en este proyecto, se han tenido que seguir las pautas y las

    metodologas propias de ESADE, por lo que una vez se hizo el brainstorming se tuvo que

    realizar el documento funcional del proyecto, y que fuera validado por el jefe de proyectos del

    TIC.

    2.2.

    Descomposicin funcional

    En los prximos apartados describiremos las funcionalidades en las que se ha dividido

    la aplicacin. Como ya se ha comentado previamente, estas son las funcionalidades que

    esperbamos desarrollar, pero se han visto sujetas a cambios por desconocimiento de la

    tecnologa y por problemas a la hora de integrar nuestra aplicacin con los sistemas ya

    implementados en ESADE. En el apartado donde comentemos la implementacin y resultado

    finales de las funcionalidades desarrolladas en esta versin del proyecto, mostrando las

    diferencias entre la maquetacin y el resultado final.

    Para hacer ms fcil al lector la comprensin de las funcionalidades, hemos aadido la

    maquetacin de cada funcionalidad. Con esto las funcionalidades quedan mucho ms claras a

    la hora de mostrrselas al cliente, y al jefe de proyecto, que a fin y al cabo son los que tienen

    que dar el visto bueno al proyecto, y tambin al lector de este documento.

    Aun as, en el siguiente apartado, comentaremos la fase de maquetacin, que se

    considera una parte importante de nuestro proyecto.

  • 7/26/2019 Prototipo Apps Libro

    10/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 10

    2.3.

    Fase de maquetacin y prototipaje

    En ESADE, las aplicaciones antes de ser desarrolladas pasan por un proceso de

    maquetacin, o prototipaje, como se prefiera llamar. Esto se hace para que la fase de

    implementacin y diseo de la arquitectura de la aplicacin no se tenga que ver afectada. Se

    hace una maqueta con lo que el usuario ver, la navegacin y datos de prueba, se le ensea al

    usuario, y ste lo confirma, pide cambios, etc A partir de ah, tericamente ya se puede

    empezar a desarrollar, y no estar sujeto a cambios en mitad de la implementacin, lo cual es

    un coste de recursos, que no estaba previsto en la estimacin de costes del proyecto.

    Hasta hace relativamente poco lo que se haca era maquetar las aplicaciones en HTML

    y CSS puro. Incluso tambin utilizando ya las tecnologas que se utilizaran para el desarrollo,

    como las JSP, para luego poder aprovecharlas en el futuro desarrollo. Por lo que ya tenas que

    estar pensando tambin en el futuro desarrollo de la aplicacin. Cada cambio implicaba abrir

    el proyecto y maquetar a mano todos los nuevos cambios. Si queras hacer un prototipo muy

    cercano al resultado final, tenas que empezar a meter mano a JavaScript y empezar a tener

    unas nociones de programacin ms elevadas.

    Es por eso que se decidi buscar alguna herramienta que sirviera nica y

    exclusivamente para prototipar. Se estuvo valorando varias opciones, y al final se escogi

    JustimindPrototyper.http://www.justinmind.com

    Esta herramienta permita entre otras cosas, hacerte tus propios elementos

    personalizados, para luego poder aprovecharlos en maquetaciones posteriores. Todo a nivel

    de drag and drop, y muy configurable. Adems contiene un gestor de eventos, con el que

    puedes controlar eventos, como el click de ratn, el doble click, al entrar en una pantalla, al

    saliretc.

    Con todo esto se consigue hacer prototipos de una aplicacin o de un sitio web, sin

    tener que picar una sola lnea de cdigo HTML, css o jquery(JavaScript en su defecto).

    Se recibi una formacin de 20 horaspara el aprendizaje de esta herramienta. Y con

    este proyecto, se inici el primer prototipaje en ESADE, con lo que se puede decir que el autorde este proyecto fue el primer usuario de esta herramienta, de una manera oficial.

    La herramienta posee elementos web predefinidos con los que empezar a maquetar, y

    puedes aadirle estilos de una manera muy sencilla, cambiando el color de los bordes, el

    orden u orientacin de los elementos etc. Con la personalizacin y creacin de tus propios

    elementos puedes generarte estilos propios o estndares de cualquier tipo, como por ejemplo

    crearte el estilo de una aplicacin Android, que es lo que quisimos hacer desde un principio. Es

    decir, nosotros nos crebamos nuestro elemento botn, y lo guardbamos como widget

    personalizado. Cada vez que quisiramos un botn con ese estilo y tamao concreto, solo

    tendramos que seleccionarlo y colocarlo donde quisiramos. Es una inversin de tiempo, que

    http://www.justinmind.com/http://www.justinmind.com/http://www.justinmind.com/http://www.justinmind.com/
  • 7/26/2019 Prototipo Apps Libro

    11/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 11

    a largo plazo se agradece, sobre todo si los estilos de los elementos son siempre los mismos y

    estn estandarizados.

    La imagen superior nos muestra unos ejemplos de lo que se puede hacer con

    Justinmind Prototyper, en dispositivos mviles con Android.

    Por suerte en la pgina web de Justinmind ya tenan la librera de widgets para

    Android, por los que solo tuve que bajrmelos y modificarlos a mi gusto, pero por lo menos ya

    tena un estilo del que partir. Con esto consegu centrarme en el estilo final de la aplicacin:

    colores, textos, color de los bordes, estilo de los botonesetc. Los widgets complejos de Listas

    de elementos, dilogos de informacin, mens, etcno tuve que crearlos desde cero.

    Como se puede ver en la imagen inferior, incluso tenemos una carcasa de dispositivo

    mvil con el que simular que estamos en un terminal Android, con su reloj, su batera,

    botones etc., dejando solo la necesidad de maquetar el contenido de la pantalla.

  • 7/26/2019 Prototipo Apps Libro

    12/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 12

    Con esta herramienta se hizo el prototipo de este proyecto tanto las pantallas para

    cada funcionalidad, como el mapa de navegacin de toda la aplicacin en general.

    Hay que decir que como el desarrollo en Android de una aplicacin para ESADE nunca

    se haba realizado, el resultado final de la aplicacin no es del todo igual al del prototipaje.

    Todos los cambios que se han ido realizando han sido para conseguir un estilo mejor y ms

    adecuado para el nivel de las aplicaciones que deben tener y tienen las de ESADE.

    Hay que aadir que en el encabezado de cada funcionalidad aadimos el icono que le

    representa. Tambin se tuvo que buscar una propuesta de iconos y de logos para la aplicacin.

    Aunque no lo parezca, se lleva bastante tiempo buscando iconos adecuados. Al final no nos

    quedamos los de la propuesta, y se tuvieron que encontrar unos nuevos. Aun as es posible

    que en un futuro se hagan iconos especficos para la aplicacin.

    En apartados posteriores se podr ver el resultado final de la aplicacin y los cambios

    ms significativos que ha habido a nivel de presentacin, y tambin funcionales. A

    continuacin se listaran las funcionalidades definidas, con sus prototipos adjuntos.

  • 7/26/2019 Prototipo Apps Libro

    13/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 13

    2.4.

    Funcionalidades

    2.4.1. F01 Acceso a la aplicacin personas ESADE

    Descripcin de la funcionalidad: Funcionalidad que se encarga de comprobar que el usuarioexiste en la base de datos

    Perfiles: Alumno

    CandidatoPAS/ProfesoresPerfiles Especiales

    Comportamiento:El usuario, una vez ha seleccionado la forma de entrada a la aplicacin Soyde ESADE introducir en la pantalla que le aparezca su usuario y password de ESADE. Si elperfil no es vlido o no se ha podido encontrar el email se mostrara un mensaje de error comoeste: Elusuario no existe o no tiene un perfil validoLos campos a rellenar son:Usuario:Contrasea:

    Validaciones:Usuario es de tipo email y password est informado.

    Ok

    Error

  • 7/26/2019 Prototipo Apps Libro

    14/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 14

    Restricciones: El usuario tiene que ser uno de los perfiles vlidos para acceder a la aplicacin.Alumno, PAS/Profesor, Candidato o Perfil Especial.

  • 7/26/2019 Prototipo Apps Libro

    15/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 15

    2.4.2. F02 Acceso a la aplicacin por defecto

    Descripcin de la funcionalidad: Funcionalidad que permite acceder a las funcionalidadespblicas de la aplicacin, es decir, sin necesidad de logarse en la aplicacin.

    Perfiles:-

    Comportamiento:El usuario marcar la opcin An no soy de ESADE y se le mostrarn lasfuncionalidades no asociadas a ningn perfil

    Validaciones:-Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    16/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 16

    2.4.3. F03 Mostrar noticias

    Descripcin de la funcionalidad: En esta funcionalidad nos encargaremos de coger todas lasnoticias de la web de ESADE. Consistir en una pantalla con una lista de las ltimas noticias ypodremos seleccionarlas para leerlas en su totalidad. Si hay algn video, se mostrar.

    Perfiles:-

    Comportamiento: Se le mostrar al usuario una lista con de la web, que se irn cargandoparcialmente. A medida que el usuario avance por la lista de noticias, se irn cargando ms. Encada elemento de la lista aparecer el ttulo, una imagen (si la hay) y un fragmento pequeo denoticia. Si el usuario quiere acceder al contenido en su totalidad solo tendr que seleccionar la

    noticia de la lista y se le abrir una nueva ventana con la noticia entera. En el caso de que hayaun video, podremos ejecutarlo seleccionndolo utilizando el reproductor de video que tengainstalado en el terminal mvil.

    Validaciones:-

    Restricciones:En el caso de que no haya noticias se le mostrara un mensaje como este:No hay noticias actualmente

  • 7/26/2019 Prototipo Apps Libro

    17/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 17

    2.4.4. F04 Informacin Campus

    Descripcin de la funcionalidad: Esta funcionalidad muestra la informacin pblica de cadacampus. Se podr seleccionar el campus del que queramos la informacin, y aparecer

    informacin actualizada del campus, como por ejemplo el men, los horarios de biblioteca,laboratorio, etc.

    Perfiles:-

    Comportamiento:Se le mostrar al usuario una lista con los campus de ESADE. Al seleccionaruno de esos campus se le mostrar la informacin de los servicios de ese campus. Adems sele dar la posibilidad de mostrar la localizacin geogrfica del campus en un mapa F21

    Validaciones:-

    Restricciones: Es posible que alguno de los campus no contenga ninguna informacin sobrealgn servicio. En tal caso se le mostrara un mensaje claro sobre el servicio que as lo ndice, enfuncin del servicio, como los que se indican a continuacin.Este campus nodispone de servicio de laboratorio

    Este campus no dispone de servicio de men

    Este campus no dispone de servicio de biblioteca

    Este campus no dispone de servicio de lanzadera

  • 7/26/2019 Prototipo Apps Libro

    18/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 18

    2.4.5. F05 Mostrar Horario

    Descripcin de la funcionalidad:En esta funcionalidad se mostrara el horario del usuario consus clases, reuniones o acontecimientos planeados.

    Perfiles: AlumnoPAS/Profesores

    Comportamiento: Se mostrar el horario del da por defecto. Se podr seleccionar el eventopara encontrar informacin ampliada y ms detallada. Se podr cambiar el filtro para ver lainformacin del mes y de la semana.

    Validaciones:-

    Restricciones: Solo se podr sincronizar con los calendarios de ESADE y el correo de Exchange.

  • 7/26/2019 Prototipo Apps Libro

    19/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 19

    2.4.6. F06 Solicitudes de informacin

  • 7/26/2019 Prototipo Apps Libro

    20/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 20

    Descripcin de la funcionalidad: Funcionalidad que permite solicitar informacin de aquellos

    programas de ESADE que acepten solicitudes online.

    Perfiles:-

    Comportamiento: Se tendr que seleccionar el programa del cual queremos informacin yaparecer un formulario que tendr que rellenar. Una vez lo rellene y acepte los trminos de lanormativa de proteccin de datos tendr que confirmar dndole a un botn.El usuario recibirun email por solicitud de informacin.Los campos a rellenar son los siguientes:

    Nombre

    Primer Apellido

    Segundo Apellido:

    Fecha Nacimiento:

    Ao de graduacin:

    Pas de residencia

    Provincia:

    Ciudad:

    Email:

    Mvil:

    (Adems del campo que implica aceptar la normativa de

    proteccin de datos.)

    Validaciones:Todos los campos seguirn la misma validacin que se realiza en el formulario de

    solicitudes de informacin va web.

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    21/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 21

    2.4.7. F07 Mostrar Notas

    Descripcin de la funcionalidad: Esta funcionalidad mostrara una lista con las asignaturas delas que est matriculado el alumno y la nota oficial del expediente y la extra oficial.

    Perfiles: Alumno

    Comportamiento: Se le mostrara una pantalla no editable con la informacin de las notas delas asignaturas que ha cursado.

    Validaciones:-

    Restricciones: El periodo de muestra de notas ser el mismo que el de la intranet

  • 7/26/2019 Prototipo Apps Libro

    22/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 22

    2.4.8. F08 Alertas Especficas

    Descripcin de la funcionalidad: Esta funcionalidad permitir al usuario ver si tiene algunaalerta de la intranet y podr acceder mediante navegador web a ella.

    Perfiles:Alumno

    PAS/Profesor

    Perfiles especiales

    Comportamiento: Se mostrara las alertas especficas del usuario en una lista. En el momentoen que seleccionemos alguna se abrir el navegador web externo a la aplicacin.En el caso de no tener ninguna alerta pendiente, se le mostrara un mensaje del estilo: No

    tiene ninguna alerta

    Validaciones:-

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    23/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 23

    2.4.9. F09 Estado de las becas

    Descripcin de la funcionalidad: Esta funcionalidad muestra para un candidato el estado de lasbecas que haya podido solicitar

    Perfiles: Candidato

    Comportamiento: Se le mostrara una lista con las becas solicitadas y al seleccionar unaaparecer la informacin en una ventana de dialogo y ser solo de consulta. En el caso de queno haya ninguna solicitud de becas se le mostrara un mensaje que as lo indique, como este.No ha solicitado ninguna beca

    Validaciones: -

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    24/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 24

    2.4.10.F10 Estado solicitud admisin

    Descripcin de la funcionalidad:Esta funcionalidad muestra para un candidato, el estado deuna solicitud de admisin.

    Perfiles:Candidato

    Comportamiento: Se le mostrara una lista con las solicitudes de admisin y al seleccionar una,aparecer la informacin en una ventana de dialogo y ser solo de consulta. En el caso de queno haya ninguna solicitud de becas se le mostrara un mensaje que as lo indique, como este.No tiene ninguna solicitud de admisin

    Validaciones:-

    Restricciones:-

  • 7/26/2019 Prototipo Apps Libro

    25/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 25

    2.4.11.F11 Documentacin Pendiente

    Descripcin de la funcionalidad: Esta funcionalidad permitir consultar si tienedocumentacin pendiente para una solicitud.

    Perfiles:Candidato

    ComportamientoSe le mostrara una lista con las solicitudes que requieren documentacin y alseleccionar una, aparecer la informacin en una ventana de dialogo y ser solo de consulta.En el caso de que no haya ninguna documentacin pendiente de entregar se le mostrara unmensaje que as lo indique, como este.No tiene documentacin pendiente de entregar

    Validaciones: -

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    26/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 26

    2.4.12.F12 Estado TUI

    Descripcin de la funcionalidad: Esta funcionalidad mostrara al usuario el saldo y el estado

    Perfiles:Alumno

    PAS/Profesor

    Comportamiento: Se le mostrara en la pantalla principal el saldo y el estado del carnet, y unbotn que permitir listar las operaciones o movimientos realizados por orden temporal. (Quenos enviar a la funcionalidad F13)

    Validaciones: -

    Restricciones:-

  • 7/26/2019 Prototipo Apps Libro

    27/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 27

    2.4.13.F13 Movimientos TUI

    Descripcin de la funcionalidad: Esta funcionalidad mostrara los movimientos de la TUI delusuario, permitiendo filtrar por periodos.Perfiles:Alumno

    PAS/Profesor

    Comportamiento: Esta funcionalidad aparecer pulsando el botn Movimientos de la

    funcionalidad F12.Se le dar la opcin de filtrar mediante una opcin que permitir seleccionar que periodo de

    tiempo desea que sea listado

    Validaciones: -

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    28/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 28

    2.4.14.F14 Moodle

    Descripcin de la funcionalidad: esta funcionalidad permitir descargar los archivos que se

    hayan subido y sean visibles en el Moodle del usuario. Aprovechando la potencia de lasterminales actuales para poder mostrar archivos como hojas de clculo, documentos de textoo PDFs.

    Perfiles:AlumnoPAS/Profesor

    Comportamiento: Aparecer un listado de los archivos que se pueden descargar y tan soloseleccionando uno de ellos se abrir la aplicacin predeterminada del telfono que puedasoportar el formato del archivo.En caso de no tener ningn archivo para descargar se le mostrara un mensaje del estilo:

    No hay ningn archivo para descargar

    Validaciones: -

    Restricciones: El usuario tiene que tener una cuenta de Moodle

  • 7/26/2019 Prototipo Apps Libro

    29/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 29

    2.4.15.F15 Mostrar Exmenes

    Descripcin de la funcionalidad: esta funcionalidad permitir listar los exmenes y saber lahora, el da, la fecha y el lugar del examen.

    Perfiles:Alumno

    Comportamiento: Aparecer un listado de exmenes mostrando las horas y los das y laasignatura de los exmenes. Si seleccionamos uno, nos aparecer informacin ms detallada,as como el aula en la que se realizar el examen. En el caso de que no tuviera ningn examense le mostrara un mensaje del estilo:No tiene ningn examen pendiente de realizar

    Validaciones: -

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    30/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 30

    2.4.16.F16 Salir de la aplicacin

    Descripcin de la funcionalidad: esta funcionalidad permitir cerrar la aplicacin.

    Perfiles:-

    Comportamiento: Al pulsar el botn se cerrara automticamente la aplicacin.

    Validaciones: -

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    31/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 31

    2.4.17.F17 Seleccionar idioma

    Descripcin de la funcionalidad: Esta funcionalidad permite elegir el idioma en el que semostrarn los textos de la aplicacin.

    Perfiles:-

    Comportamiento: Utilizando la tecla de men del terminal aparecern 3 opciones. Al pulsar lade la tecla de idioma se mostrara un men con tres opciones de idioma. El usuario tendr que

    seleccionar una opcin y pulsar el botn aceptar. Se le mostrara un mensaje que indicar quese debe de reiniciar la aplicacinDebe reiniciar la aplicacin para que los cambios se efecten

    Validaciones: -

    Restricciones: Solo se podr seleccionar una de las opciones que se muestren en el men deseleccin de idioma.

  • 7/26/2019 Prototipo Apps Libro

    32/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 32

    2.4.18.F18 Cerrar Sesin

    Descripcin de la funcionalidad: esta funcionalidad permite cerrar la sesin de la aplicacin.

    Perfiles:Alumno

    Pas/Profesor

    Perfiles Especiales

    Candidato

    Comportamiento: Utilizando la tecla de men del terminal aparecern 3 opciones. Alseleccionar la opcin de Logout se terminar la sesin y llevar al usuario a la pantalla deinicio de la aplicacin.

    Validaciones: El usuario tiene que estar logado.

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    33/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 33

    2.4.19.F19 Listar Programas ESADE

    Descripcin de la funcionalidad: esta funcionalidad permitir mostrar la lista de programas deESADE y consultar su informacin.

    Perfiles:-

    Comportamiento: Se le mostrara al usuario una lista con todos los programas de ESADE. Alseleccionar uno de estos programas se le llevara a la pgina web, mediante el navegador delterminal con la informacin del programa seleccionado.

    Validaciones: -

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    34/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 34

    2.4.20.F20 Experiencias Alumnos

    Descripcin de la funcionalidad: esta funcionalidad permitir ver videos sobre experiencias dealumnos sobre ESADE.

    Perfiles:-

    Comportamiento: Esta funcionalidad mostrar una lista de videos sobre experiencias dealumnos que al seleccionarlos ejecutara el reproductor de video de la terminal.

    Validaciones: -

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    35/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 35

    2.4.21.F21 Cmo llegar?

    Descripcin de la funcionalidad: esta funcionalidad permitir mostrar la localizacin delcampus seleccionado en la funcionalidad F04.

    Perfiles:-

    Comportamiento:Se mostrara la localizacin del campus y la ruta a seguir desde la situacinactual del usuario. Si se selecciona el punto de destino (el campus como tal) se mostrarinformacin bsica de la localizacin y del campus.

    Validaciones: -

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    36/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 36

    2.4.22.F22 Eventos ESADE Frum

    Descripcin de la funcionalidad: esta funcionalidad permitir consultar los eventos que serealizarn en ESADE frum mediante un calendario

    Perfiles:-

    Comportamiento: Al iniciar la funcionalidad se le mostrara un calendario con el mes actual conlos das que posean un evento marcados de un color diferente. En el momento en que setoque uno de estos evento se le mostrara una dialogo con la informacin del evento. Si porotro lado presionamos la tecla de men se activar la funcionalidad F23.

    Validaciones:-

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    37/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 37

    2.4.23.F23 Listar eventos ESADE Frum

    Descripcin de la funcionalidad: esta funcionalidad mostrar una lista con los prximoseventos por orden de fecha.

    Perfiles:-

    Comportamiento: Esta funcionalidad viene activada de la F22. Se mostrar una lista por ordentemporal con los prximos eventos de ESADE Frum. Cuando se seleccione uno de los

    elementos de la lista aparecer un dialogo con la informacin del evento.

    Validaciones:-

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    38/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 38

    2.4.24.F24 Qu es ESADE?

    Descripcin de la funcionalidad: esta funcionalidad informacin sobre la fundacin ESADE.

    Perfiles:-

    Comportamiento: Se mostrara informacin para dar a conocer ESADE.

    Validaciones:-

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    39/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 39

    2.4.25.F25 Pasatiempos

    Descripcin de la funcionalidad: esta funcionalidad permitir acceder a las funcionalidadesF26 y F27 con la finalidad de entretener al usuario o premiarle por su talento.

    Perfiles:-

    Comportamiento: Se le permitir al usuario acceder a los pasatiempos mediante el men delusuario y le mostrar una lista con los iconos que acceden a las funcionalidades F26 y F27

    Validaciones:-

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    40/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 40

    2.4.26.F26 Sopa de letras

    Descripcin de la funcionalidad: esta funcionalidad permitir acceder al tpico pasatiempo dela sopa de letras donde tendremos que buscar los valores de ESADE en ella.

    Perfiles:-

    Comportamiento: Se le mostrar al usuario un panel con letras y de ellas deber sacar las

    palabras que sean vlidas como resultado. Deber tocar el inicio de una letra y el final de otra.Si la palabra es correcta se le marcara como correcta, si la palabra no es correcta no semarcara nada.

    Validaciones:-

    Restricciones: -

    Fin del juego?

  • 7/26/2019 Prototipo Apps Libro

    41/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 41

    2.4.27.F27 Test del talento para las Becas

    Descripcin de la funcionalidad: Esta funcionalidad permitir hacer un Test de nivel muyelevado, que servir para premiar con una beca a la persona o las personas que saquen lamejor nota.

    Perfiles:-

    Comportamiento: Se le mostrar preguntas con las posibles respuestas de las que tendr queseleccionar la correcta. Cada vez que responda una pregunta, se avanzar a la siguientepregunta sin notificarle an sobre el resultado de las preguntas. Al final del test se le mostrarael resultado obtenido que quedar registrado. Se podr saltar la pregunta actual a la siguientey navegar entre preguntas. Si la pregunta ya ha sido contestada se le notificar junto con larespuesta seleccionada.

    Validaciones:-

    Restricciones: -

  • 7/26/2019 Prototipo Apps Libro

    42/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 42

    3. Especificacin

    En este apartado se explicar el trabajo realizado sobre la especificacin realizada en

    UML (Unified Modeling Language), lenguaje utilizado hoy en da para realizar tanto la

    especificacin como el diseo de las operaciones.

    En esta etapa de especificacin se desarrolla el modelo conceptual (diagrama de

    clases), el modelo de casos de uso, y el modelo de comportamiento. ste ltimo no lo

    comentaremos por ser bastante redundante y trivial, y no lo tuvimos en cuenta a la hora de la

    realizacin del proyecto.

    El modelo conceptual es la representacin de los conceptos significativos en el

    dominio del problema a resolver. Muestra principalmente las clases de objetos, asociaciones,

    atributos, operaciones ms relevantes y restricciones textuales.

    En el modelo de casos de usose definen los casos de uso del sistema y la relacin

    existente entre ellos. Un caso de uso describe una secuencia de acontecimiento que realiza un

    actor (agente externo) que usa el sistema para llevar a cabo un proceso que tiene valor para l.

    Este modelo principalmente se compone de los siguientes procesos:

    Identificar a los actores: Un actor es una entidad externa al sistema que participa en la

    historia de los casos de uso.

    Especificacin de caso de uso:es una breve descripcin de las acciones del caso de

    uso.

    En este primer apartado detallar el modelo conceptual resultante de la parteimplementada. Puesto que inicialmente sugerimos un modelo muy parecido al resultado final,surgieron unos cambios a la hora de conocer la API de Android o por la problemtica surgida ala hora de intentar aprovechar los servicios ya implementados de ESADE que, o ya seencargaba de solucionarnos parte del problema que tenamos, o simplemente nosimposibilitaba la realizacin de la funcionalidad como la tenamos pensada.

    Otros elementos del modelo fueron eliminados porque Android nativamente ya nosproporcionaba lo que nosotros queramos. A priori puede parecer que esto fuera una prdidade tiempo, y en parte as es, porque nos hizo tardar ms y afectaba a nuestra planificacin yestimacin de costes, pero en el fondo me sirvi para saber cmo afrontar los cambios deespecificacin y saber qu partes ya no necesitaba y cules necesitaba aadir.

    En el tema de los casos de uso ocurre lo mismo, puesto que los cambios que ha habidohan modificado muchas de las funcionalidades.

    Aun as en el modelo conceptual aadir algunos comentarios de algunos elementosdel modelo que eliminamos, para que se entienda el por qu lo quitbamos.

  • 7/26/2019 Prototipo Apps Libro

    43/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 43

    3.1.Especificacin parte ANDROID

    Este es el diagrama con las actividades de nuestra aplicacin.

    API ANDROID

  • 7/26/2019 Prototipo Apps Libro

    44/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 44

    Descripcin

    Este diagrama contiene 2 partes. Como una aplicacin Android est compuesta por 1 o

    ms actividades (clase Activity proporcionada por la API de Android), tenemos que definir una

    actividad por cada funcionalidad (al menos una). Lo primero que hicimos fue prever si para

    cada actividad pudiera haber algo en comn. Y tan solo con encontrar que queremos acceder a

    los ajustes del idioma en cualquier parte de la aplicacin, nos encontramos con que todas las

    actividades deberan ser creadas a partir de una actividad genrica. Es por eso que se cre

    GenericActivity. En ella podremos aadir cualquier parte o mdulo comn a todas las

    actividades.

    Una ventaja de tener una GenericActivity es que tienes un nico punto de

    acoplamiento con la API de Android y no N (una para cada actividad), con lo que te cubres las

    espaldas contra futuras versiones de la API , haciendo que solo tengamos que tocar un punto

    de nuestra aplicacin.

    Solo por el hecho de partir de GenericActivity, ya estamos haciendo las

    comprobaciones necesarias en cada actividad o inicializaciones, lo cual nos ahorra un trabajo

    importante a la hora de aadir funcionalidades nuevas.

    En este diagrama tambin podemos ver la parte del login (LoginUtil), que es quien se

    encargar de identificarse y gestionar el acceso a los servidores de ESADE y de hacer las

    llamadas pertinentes, haciendo transparente a las actividades la gestin relacionada con esta

    parte.

    Con esto conseguiremos que cualquier cambio en la forma de logarse con ESADE,

    sistema de autenticacin, etc. ser transparente a las actividades y a las funcionalidades.

    Estas actividades estn relacionadas conceptualmente con otros elementos pero lo

    mostraremos en diagramas posteriores, para que todo quede ms claro.

    Evolutivo y modificacin en la especificacin:

    Cuando se estuvo investigando la API de Android para ver qu nos proporcionaba,

    vimos que nos facilitaba la clase ListActivity, preparada para las actividades que iban a serlistas de elementos. Lo vimos bastante bien, pero entonces nos hizo pensar la especificacin

    separando por dos tipos de actividades, las que son listas, y las que no lo son. Al ser ms

    especfico podamos tener ms control sobre el desarrollo y el diseopero con el tiempo

    vimos que no nos aportaba ningn beneficio puesto que una actividad normal tambin puede

    mostrar listas.

  • 7/26/2019 Prototipo Apps Libro

    45/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 45

    En cualquiera de los dos casos, la actividad tiene que saber que contiene una lista en

    su UI, por lo que no nos aportaba nada separarlas conceptualmente en el modelo. Estos

    cambios se vieron reflejados en la especificacin, diseo e implementacin y eliminamos la

    clase GenericActivityList, y todo pas a hacerse a partir de GenericActivity.

  • 7/26/2019 Prototipo Apps Libro

    46/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 46

    El siguiente diagrama contiene la especificacin para la creacin de las actividades que contienen listas de elementos.

    API ANDROID

  • 7/26/2019 Prototipo Apps Libro

    47/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 47

    Descripcin

    La clase BaseAdapteres la que se utiliza para poblar Listas (ListView) en Android, entre

    otras. Lo que hicimos fue identificar que funcionalidades iban a necesitar listas, y crear

    nuestros propios Adapters (extendiendo de BaseAdapter), en funcin del contenido de cada

    elemento de la lista.

    Una vez tienes creados y definidos los Adapters, solo hay que asociarlos con la

    actividad correspondiente. Es por eso que si creamos una actividad que va a mostrar la

    informacin de un RSS, debemos crear el Adapter especfico para el RSS, que vaya rellenando

    cada elemento de la lista.

    Si en cualquier otra actividad necesitramos el mismo tipo de lista con el mismo tipo

    de informacin, podramos aprovechar los Adapters. En el caso de los RSS, tendramos eventosy noticias, que es informacin diferente, y el origen de los datos es diferente, pero cumplen

    el mismo patrn, por lo que podemos aprovechar el Adapter para las 2 actividades, como

    podemos ver en el fragmento de diagrama a continuacin

  • 7/26/2019 Prototipo Apps Libro

    48/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 48

    Especificacin de la creacin de funcionalidades:

    Descripcin:

    Este es el mdulo ms importante de la aplicacin y sobre el que ms se ha trabajado.

    Aunque a simple vista no parezca una estructura de clases compleja, detrs de esto hay varias

    propuestas, teniendo en cuenta futuros mantenimientos, adiciones de funcionalidades, etc.

    En la parte de diseo se ver mucho ms el trabajo realizado y la implicacin de esta

    decisin.

    Bsicamente lo que tenemos es un Factory de funcionalidades. Adems hemos hecho

    que sea Singleton, para que solo haya una instancia en memoria.

    El Factory crea objetos de tipo Funcionalidad y es Funcionalidad quien sabe cmo

    crearse y donde tiene que acceder, creando menos acoplamiento entre el Factory y el origen

    de datos de la funcionalidad.

    El Factory es utilizado por MenuPrincipal, pero se podra aprovechar para crear otro

    tipo de objetos aprovechando la potencia de la herencia y del polimorfismo.

  • 7/26/2019 Prototipo Apps Libro

    49/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 49

    En el siguiente diagrama mostramos la parte de cargar RSS

    Investigando la API de ANDROID y mirando patrones que son tendencia en diseo y

    usabilidad, descubrimos que un dispositivo mvil no debe dar la sensacin de que est

    bloqueado o sin hacer nada.

    Es por eso que aadimos a nuestra especificacin una clase que se encargara de

    obtener los datos por nosotros de manera asncrona (utilizamos la API de Android mediante

    AsyncTask) con una pantalla de progreso para darle esa sensacin de trabajo al usuario.

    LoadFeedsse encargar de obtener los datos tanto para la actividad de obtencin de eventos

    EventosRssActivityy noticias NoticiasRssActivity.

    En este punto hemos tenido en cuenta el uso razonable de la batera ya que es uno de

    los requisitos no funcionales a ms importantes a la hora de realizar este proyecto.

  • 7/26/2019 Prototipo Apps Libro

    50/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 50

    Para terminar de explicar la especificacin de la parte ANDROID, aadimos la clase AMSE.

    Descripcin

    La claseApplicationes utilizada para mantener un estado global de la aplicacin. Sera

    como una especie de Singleton, solo que ya proporcionado por la API, y accesible desde

    cualquier punto de la aplicacin. Con ello somos capaces de guardar el estado de variables

    globales, la configuracin actual de la aplicacin, o en nuestro caso, guardar el mapeo de las

    funcionalidades del men principal, puesto que necesitaremos acceder a ellas desde diferentes

    lugares.

  • 7/26/2019 Prototipo Apps Libro

    51/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 51

    3.2.

    Especificacin parte Servidor

    En esta parte aprovechamos el conjunto de libreras estndar desarrolladas por ESADE

    para con un coste reducido tener una serie de funcionalidades (login con usuarios de ESADE,

    seguridad a nivel de sesin, esto es, durante una sesin no se puede cambiar ni de IP y ni de

    navegador, ni estar inactivo ms de 30 minutos sin que te salte otra vez la pantalla de login,

    entre otros)

    Pese a que la parte de cliente ya posee una parte de autenticacin y autorizacin,

    reforzamos esta seguridad con una segunda capa en el servidor. Para ello nos servimos de la

    librera ya existente en ESADE para la creacin de las aplicaciones, en la que ya hay un modeloconceptual especificado y que cubre todos los requisitos en cuanto a creacin de sesiones y

    autenticacin para las aplicaciones.

    Nuestra especificacin parte de sta, explicada a continuacin.

    Bsicamente, la idea de este diagrama de clases es poder implementar cualquier tipo

    de aplicacin sin necesidad de duplicar el cdigo en todas las aplicaciones cuando queramos

    que el usuario por ejemplo entre con login, o que tenga una sesin activa para poder acceder.

    Con GenericStartActionpodemos crear aplicaciones que no necesiten sesin activa,

    simplemente un punto de entrada. Con GenericActionSession obligamos al usuario a tener

  • 7/26/2019 Prototipo Apps Libro

    52/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 52

    una sesin activa. Con GenericActionAuthOptobligamos al usuario a que tenga una sesin

    activa y adems podemos hacer que est logado o no, modificando el comportamiento, si es

    necesario, para cuando est logado; por ltimo tenemos GenericActionAuth que hereda laspropiedades de sus antecesores y adems obliga al usuario a estar logado. En el caso de que

    no se cumplan las condiciones, se muestra una pantalla de error y no se permite continuar.

  • 7/26/2019 Prototipo Apps Libro

    53/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 53

    Como uno de los requisitos era montar un framework para aplicaciones mviles, hemos creado una estructura de clases especial. Queda reflejada

    en la siguiente figura.

    API ESADE

  • 7/26/2019 Prototipo Apps Libro

    54/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 54

    Descripcin

    Con esta estructura de clases dotaremos a nuestra aplicacin con la capacidad deautorizar al usuario a la hora de acceder a las funcionalidades

    Como ya se ha comentado, esta aplicacin contiene varias funcionalidades pero notodo el mundo puede acceder a ellas, depender del perfil que le asigne la aplicacin una vezidentificado. Ms adelante explicaremos con detalle cmo se asigna dicho perfil y lasfuncionalidades a las que da acceso.

    Para ello, creamos una estructura de clases a partir de la que ESADE nos proporciona,de tal manera que, si una funcionalidad requiere de un perfil especfico, utilizaremos esa clasepara empezar a implementar la funcionalidad.

    Con esto conseguimos, aparte de reforzar la seguridad de nuestra aplicacin, puestoque tan solo por usar esta estructura de clase, nos aseguramos una sesin activa y unaautenticacin con ESADE, tambin una forma de que los desarrolladores no tengan quepreocuparse sobre la gestin de los perfiles, con lo que el desarrollo ser bastante ms rpidoy el mantenimiento mucho ms sencillo.

    En el apartado de diseo e implementacin aadiremos unos ejemplos para que quedetodo mucho ms claro.

    A parte, tenemos otras funcionalidades que requieren de esta estructura de clases. Porejemplo, para logarse contra ESADE y obtener las cookies de sesin e identificacin, vamos a

    necesitar la clase SuperGenericAction , proporcionada por ESADE.

  • 7/26/2019 Prototipo Apps Libro

    55/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 55

    Para obtener los perfiles vamos a tener que poseer la cookie de identificacin deESADE, por lo que vamos a tener que utilizar la clase GenericAMSEAuth , creada por nosotros,que nos obliga a estar logados previamente (simplemente heredar de GenericActionAuth ,proporcionada por ESADE).

    Si por ejemplo quisiramos aadir una funcionalidad nueva a la especificacin de la

    aplicacin y quisiramos que esta funcionalidad solo pudiera ser ejecutada por alguien que

    tuviera el perfil PAS, por ejemplo debera aadirla heredando de la clase que se encarga de

    controlar que tenga ese perfil, en este caso: GenericAMSEAuthPAS.

  • 7/26/2019 Prototipo Apps Libro

    56/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 56

    3.3.

    Curso de acontecimientos de los casos de uso.

    En este punto explicaremos los cursos de acontecimientos de los casos de uso. Solo se

    explicarn los siguientes:

    Login

    Consultar Informacin ESADE

    Consultar ESADE

    Consultar Eventos

    Consultar Noticias

    Salir de la aplicacin

    Seleccionar Idioma

    Acceso pblico

    3.3.1. Login

    Accin del actor Respuesta del sistema

    1. El caso de uso empieza cuando elusuario quiere entrar a la aplicacin con superfil asociado y accede mediante el botnde acceso privado Soyde ESADE .

    2. El sistema muestra un formulariodonde se muestran los campos a rellenar.

    3. El usuario introduce sus datospersonales y pulsa el botn de Aceptar.

    4. El sistema accede al servidor conlos datos del usuario, obtiene los perfiles y lemuestra las funcionalidades que puede

    utilizar.

    5. El usuario puede navegar yseleccionar las funcionalidades en las quetiene autorizacin.

  • 7/26/2019 Prototipo Apps Libro

    57/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 57

    3.3.2. Acceso pblico

    Accin del actor Respuesta del sistema

    1. El caso de uso empieza cuando elusuario quiere entrar a la aplicacin sinningn perfil asociado.

    2. El sistema muestra las funcionalidades

    que no requieren ningn perfil asociado .

    3.3.3.

    Consultar Informacin ESADE

    Accin del actor Respuesta del sistema

    1. El caso de uso empieza cuando elusuario quiere consultar la informacinasociada a ESADE tocando el botnInformacin.

    2.El sistema le muestra una lista con loscampus de ESADE.

    3. El usuario selecciona el campus delque quiere obtener la informacin.

    4.El sistema le muestra una lista con losedificios del campus con informacin asociada yvarias opciones para cada edificio

    5. El usuario selecciona una de lasopciones. *

    6. El sistema activa la opcin seleccionada. *

    * Existen 2 opciones actualmente:

  • 7/26/2019 Prototipo Apps Libro

    58/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 58

    Llamar: Le permite llamar al edificio seleccionado.

    Ver Mapa: Se le muestra la posicin en el mapa del edificio seleccionado.

    3.3.4. Consulta ESADE

    Accin del actor Respuesta del sistema

    1. El caso de uso empieza cuando elusuario quiere consultar qu es ESADE y

    toca el botn Qu es ESADE?.

    2. Se le muestra la pgina web con lainformacin asociada a la funcionalidad Qu

    es ESADE?.

    3.3.5. Consultar Eventos

    Accin del actor Respuesta del sistema

    1. El caso de uso empieza cuando elusuario quiere consultar los eventos prximosde ESADE

    2. Se le muestra al usuario una listacon los eventos de ESADE

    3.El usuario selecciona un evento

    4. Se muestra el detalle del eventoseleccionado.

  • 7/26/2019 Prototipo Apps Libro

    59/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 59

    3.3.6. Consultar Noticias

    Accin del actor Respuesta del sistema

    1. El caso de uso empieza cuando elusuario quiere consultar las noticias de ESADE

    2. Se le muestra al usuario una lista

    con los noticias de ESADE

    3.El usuario selecciona una noticia

    4. Se muestra el detalle de la noticia

    seleccionada.

    3.3.7. Seleccin de idiomas

    Accin del actor Respuesta del sistema

    1. El caso de uso empieza cuando elusuario quiere cambiar el idioma de laaplicacin pulsando la tecla men yselecciona la opcin ajustes.

    2. Se le muestra al usuario losidiomas disponibles

    3.El usuario selecciona un idioma

    4. La aplicacin pasa a tener elidioma seleccionado

  • 7/26/2019 Prototipo Apps Libro

    60/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 60

    4.

    Diseo

    Estilo de las aplicaciones de ESADE vs API Android

    Si un experto en Android, y solo en Android, viera cmo se ha diseado la aplicacin y

    que arquitectura se ha decidido para sta, es posible que pusiera en entredicho algunas de las

    decisiones tomadas. Un experto Android pensara que algunas de las decisiones tomadas

    acaban montando estructuras demasiado complejas para una aplicacin mvil que suele tener

    una vida til ms bien corta y que por tanto se suelen desarrollar con bajo coste y pensando a

    corto plazo.

    Despus de ms de un ao desarrollando en ESADE aprend la importancia de la

    ingeniera del software y sus efectos a posteriori a la hora del mantenimiento de las

    aplicaciones, por ejemplo.

    Discutindolo con el director de proyecto, y siendo l el que conoce ESADE y est ms

    familiarizado con la realizacin de los proyectos , su mantenimiento, y sus costes llegamos a la

    conclusin de que vala ms invertir tiempo en hacer una aplicacin slida a nivel de diseo y

    arquitectura. Con ello la haramos mantenible sin tener a gente con conocimientos en el

    desarrollo de Android, dado que se trata de un perfil que actualmente no se necesita enESADE y por el que no es muy probable que se quiera invertir, por lo menos a corto - medio

    plazo.

    Esto es importante tenerlo en cuenta puesto que Android hace mucho nfasis, entre

    otras cosas, en cuidar al usuario que utiliza el dispositivo mvil. Si una aplicacin gasta mucha

    batera o es muy lenta, esa aplicacin ser objeto de ser desinstalada sin miramientos. Es por

    ello que hay que cuidar cada lnea de cdigo para no replicar cdigo, no consumir mucha

    memoria (puesto que los dispositivos mviles no andan sobrados de memoria, comparado con

    los servidores u ordenadores de sobremesa).

    Se ha intentado ser cuidadoso en ese tema, pero si necesitbamos aadir un coste en

    memoria o en ejecucin para llevar a cabo un cdigo mantenible y extensible, lo bamos a

    hacer. De hecho, lo hicimos y el rendimiento de la aplicacin no se vea afectado, por lo que

    seguimos adelante con la idea.

    El ejemplo ms claro lo encontramos en la generacin dinmica del men principal

    que utiliza un XML y una asignacin de actividades o clases ejecutables mediante reflexin, o

    tener la informacin de los campus y sus edificios y obtenerlos mediante reflexin tambin,

    donde utilizamos el tipo de datos String como identificadores que contienen informacin de

    otros elementos que deben escoger para formar la estructura correcta. Esto lo hicimos para

    conseguir que aadir un elemento de men no implique tocar ni una sola lnea de cdigo, solo

  • 7/26/2019 Prototipo Apps Libro

    61/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 61

    editar un XML. Se explicar con ms detalle en los apartados de diseo y la implementacin de

    estas funcionalidades.

    Para la parte de servidor se ha seguido el libro de estilo para las aplicaciones de ESADE.

    Para ello se han utilizado las libreras de autenticacin oficiales de ESADE. En las que

    aprovechando la potencia de java (herencias, polimorfismos, etc...) se ha creado una

    estructura de clases con las que el desarrollo de las aplicaciones se acelera significativamente.

    Aprovechando la idea de este diseo y aprovechando estas mismas clases, se ha

    montado la arquitectura de la aplicacin de servidor.

    Esta es la fase en la que recae parte del peso de nuestro proyecto, puesto que las

    decisiones que se han tomado aqu, son las que hacen que la aplicacin sea slida, mantenible

    y extensible. Aunque no sea ptimo, las decisiones que bamos tomando y estudiando en esta

    fase, nos modificaron parte de la especificacin y del funcional.

    Parte de esto se debe al desconocimiento de la API, ya que a medida que bamos

    investigando cmo se podra hacer una cosa u otra, nos iban apareciendo soluciones mejores

    ya implementadas por la API o , simplemente, consideramos que era mejor hacer nuestro

    diseo a partir de las funcionalidades que nos facilitaba dicha API.

    Para empezar a estructurar nuestra aplicacin tuvimos que separarla en los que seran los

    mdulos principales, que formaran la arquitecturade la aplicacin y sobre la que solamente

    quedar la parte de aadir funcionalidades, sin tocar nada de lo ya implementado.

    4.1.

    Mdulos

    Hay 5 mdulos importantes que componen la arquitectura bsica de la aplicacin. A

    continuacin pasaremos a describir los mdulos uno por uno, cul es su funcin y el por qu

    de las decisiones tomadas en su diseo e implementacin.

    4.1.1. Mdulo Login y llamadas al servidor.En la siguiente figura se muestra por encima el flujo seguido a la hora de logarse en laaplicacin y lo que ocurre con el usuario.

  • 7/26/2019 Prototipo Apps Libro

    62/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 62

    Descrito brevemente, el usuario introduce sus credenciales, el servidor le devuelve superfil y para la aplicacin eres un usuario con uno o ms perfiles asociados.

    Pese a que previamente se dijo que no entraba en el alcance del proyecto, cremosnecesario incluirlo puesto que este mdulo era el que iba a diferenciar nuestra aplicacin de ladel resto de organizaciones educativas.

    El hecho de incluirlo y valorar la posibilidad de que el usuario se logara en la aplicaciny pudiera ver una especie de intranet en versin reducida, fue lo que nos hizo motivarnos eneste proyecto, aunque nos diera ms de un problema, por varios motivos, que explicaremosms adelante.

    El mdulo de login es el que ms problemas nos ha dado, debido al sistema deautenticacin que ya existe en ESADE. Este sistema ya lleva mucho tiempo implantado y noestaba pensado para ser utilizado en un dispositivo mvil. No por ello es peor. Al contrario, elgestiona las sesiones y las cookies de manera que solos usuarios de ESADE con sesin activa enla intranet puedan utilizar las aplicaciones.

  • 7/26/2019 Prototipo Apps Libro

    63/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 63

    Para ello se necesita el navegador, porque es la nica forma desde la que se puedeacceder a la intranet.

    Quisimos hacer transparente la gestin de la cookie por el navegador. Es decir,queramos logarnos y obtener los perfiles de forma transparente para el usuario, mostrndolesimplemente el formulario o el dilogo con los campos de usuario y contrasea. El dispositivointernamente se conectara a ESADE, intentara obtener los perfiles y en funcin de estosperfiles se le mostrara las funcionalidades a las que se le autorice.

    Diagrama del mdulo

    Descripcin del diagrama

    La idea del diseo es bastante simple. Nuestra actividad principal, muestra un dialogo

    donde saldr el formulario para logarse. Una vez tengamos usuario y contrasea llamamos a

    LoginUtil, que es quien se encargar de hacer toda la gestin de los perfiles y persistirlos en la

    sesin.

    Una vez la actividad posee el control de la aplicacin otra vez, se llama al men principal,donde mostraremos las funcionalidades autorizadas por la aplicacin.

  • 7/26/2019 Prototipo Apps Libro

    64/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 64

    No existe la opcin de logarse permanentemente puesto que las cookies en ESADE,

    caducan, por lo que este proceso hay que repetirlo tantas veces como veces quieras entrar en

    la aplicacin con tu perfil.

    Problemas encontrados

    Nos encontramos con el problema de que al no tener navegador, no tenamos uncliente que auto gestionara las cookies. Adems era necesario que la sesin del navegador sea

    la misma que cuando te has logado, porque si no ocurre esto, te vuelve a pedir las credencialespara seguir trabajando.

    Para nuestro proyecto era imposible abrir un navegador, puesto que al volver al meno a la aplicacin mvil, el navegador se cierra, y se tiene que abrir otra instancia, por lo queestaramos pidindole el login al usuario para cada transaccin que requiera de una peticin alos servidores de ESADE (los que requieran autorizacin y autenticacin).

    Bsicamente, entrando en detalles un poco ms tcnicos, ESADE requiere de la sesindel navegador y de la cookie creada una vez te has logado en la intranet. Al no tenernavegador, cuando nos logbamos y hacamos una peticin sobre nuestra aplicacin deservidor, que comprueba que ests logado y tengas una sesin activa, no tenamos esa sesin

    activa, porque la cookie de sesin no la tenamos.

    Entonces empezamos a valorar soluciones, y la nica que encontramos sin modificar laexperiencia del usuario a la hora de utilizar la aplicacin mvil ( consideramos que es lo msimportante a la hora de utilizar un dispositivo mvil, el hecho de que te proporcione rapidez ycomodidad) , fue que cada vez que llamramos a una funcionalidad, nos logamos y,aprovechando el cliente de la llamada que hace el login, hacemos la llamada a la funcionalidadcorrespondiente, emulando as una sesin activa, y pasndole las dos cookies necesarias parapoder autenticarnos correctamente.

    4.1.2. Mdulo creacin de funcionalidades

    Este mdulo es el core de nuestraaplicacin. Gracias a ste mdulo podemos ampliarnuestra aplicacin de una manera rpida y eficaz.

    Este es el mdulo ms importante de todos y el que justifica el coste temporal dedesarrollo y diseo de esta aplicacin. Es nuestro mdulo favorito, puesto que invirtiendo unascuantas jornadas pensando y mejorando el diseo, y otros tantos para la implementacin ytesteo, hemos conseguido que la adicin de funcionalidades en nuestra aplicacin sea directa ytrivial.

  • 7/26/2019 Prototipo Apps Libro

    65/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 65

    La idea est en persistir la informacinnecesaria en el dispositivo mvil(para tenermxima disponibilidad y no depender de internet para mostrar las funcionalidades) paradefinir las funcionalidades de la aplicacin y la autorizacin a stas. Es la funcionalidad la quesabe quin puede acceder a ella.

    La figura siguiente muestra el ejemplo para un usuario con perfil de Alumno, a modo

    de ejemplo.

    Descrito brevemente, el alumno se loga y obtiene su perfil. El Factory de

    funcionalidades lee el origen de datos con la informacin de las funcionalidades y las va

    generando todas, para luego mostrar al usuario solo las que l pueda ver.

    Esto puede penalizar un coste espacio, puesto que estamos guardando ms de las que

    l puede ver, pero como la generacin de men puede llegar a darse repetidas veces,

  • 7/26/2019 Prototipo Apps Libro

    66/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 66

    aprovechamos esto para que la respuesta de la aplicacin sea ms rpida y mejorar la

    experiencia del usuario.

  • 7/26/2019 Prototipo Apps Libro

    67/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 67

    A partir de aqu solo tenemos que asignar para cada elemento pulsable del Men

    Principal (apartado 4.1.3), la actividad que tiene que ejecutar. Al mantener el mismo orden,

    solo tenemos que leer la actividad de la lista que est en la misma posicin que su aparicin enel men. Es decir, si pulsamos la funcionalidad que est en la tercera posicin del men (de

    izquierda a derecha y de arriba a abajo), tendremos que ejecutar la funcionalidad que est en

    la tercera posicin de la lista de actividades.

    Si queremos cambiar el orden, no tenemos que preocuparnos para nada de este

    mdulo, solo vamos al fichero que define las funcionalidades porque el orden de escritura de

    estas, ya define implcitamente el orden de aparicin en el men principal.

    Con esto adems conseguimos que funcione para todas las funcionalidades nuevas que

    se quieran aadir en el mdulo de creacin de funcionalidades.

    Por qu decidimos hacerlo as?

    Hacerlo de esta manera nos permite una adicin de funcionalidades directa, sin

    necesidad de tocar absolutamente nada ms que el fichero de funcionalidades y aadir la

    nueva funcionalidad como fichero nuevo. Eso en coste de mantenimiento y evolutivos es ideal

    y as se prefiri cuando se plante el proyecto, puesto que despus podra quererse aadir

    funcionalidades sin necesidad de dominar necesariamente el funcionamiento de Android y su

    API. Si quisiramos aadir una funcionalidad mostrada en un navegador, eso sera trivial y

    podra hacerlo cualquiera, siguiendo el documento tcnico que se dej de manual en ESADE.

    Tendramos una funcionalidad o varias, nuevas a un coste muy bajo.

    Actividad Qu Es ESADE

    Actividad Info

    Actividad Eventos

    Actividad Noticias

    Actividad Programas

    Al pulsar

  • 7/26/2019 Prototipo Apps Libro

    68/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 68

    4.1.3. Mdulo Generacin Men Principal

    Este mdulo es el que se encarga de generar el men principal (imagen superior,

    extrada del funcional) a partir de las funcionalidades creadaspor el mdulo de creacin de

    funcionalidades (ver apartado 4.1.2).

    Como las funcionalidades a mostrar no son siempre las mismas, no podamos ni

    asignarles una posicin en la lista del men fija. Se poda disear de tal manera que una vez se

    aadiera una nueva funcionalidad y conocindolas todas se fueran agregando

    programticamente una a una.

    Esta decisin no es la correcta puesto que requiere tocar muchas partes de la

    aplicacin y el coste de mantenimiento aumenta, as que lo hicimos de tal manera quehubiera una dependencia directa con el mdulo de la creacin de funcionalidades.

    La solucin por la que optamos fue primero obtener las funcionalidades ya creadas, y a

    partir de ah ir generando el men para cada una de las funcionalidades autorizadas para el

    usuario.

    Para ello necesitbamos que el objeto de modelo que define a la funcionalidad tuviera

    3 atributos obligatorios, que son los siguientes: La imagen que le representa en el men, el

    nombre de la funcionalidad que se mostrar en el men y la actividadque ejecuta esta

    funcionalidad en el dispositivo.

    Con esto conseguimos poder hacer un men creado dinmicamente

    independientemente del orden en el que se creen las funcionalidades. De tal manera que si

    queremos cambiar el orden de aparicin, solo tenemos que tocar el mdulo de creacin de

    funcionalidades. Al crear las funcionalidades en un orden determinado, generamos una lista

    con las actividades asociadas a estas funcionalidades en el mismo orden.

    Adems, es dinmico en el sentido de que se muestran unas funcionalidades u otras en

    funcin del rol de la persona logada, como se ha explicado anteriormente en la parte de

    especificacin/diseo.

  • 7/26/2019 Prototipo Apps Libro

    69/109

    Primeras aplicaciones Android para el acceso mvil a los servicios de ESADE (AMSE).Proyecto final de carrera

    Alberto Santos Benito

    pg. 69

    Diagrama secuencia Generacin de Men

    Descripcin

    El diagrama de secuencia es sencillo puesto que el Adapter se encarga de hacer toda la

    faena, e iterar con los elementos de la lista obtenidos por FactoryFuncionalidades e ir

    asignandolas a cada posicion que le corresponde en el men principal.

    Como vemos, la actividad instancia un MenuAdapter, ste llama a nuestro Singleton

    FactoryFuncionalidadese iterativamente va asignandole el elemento correspondiente al

    menprincipal.

    Por qu decidimos hacerlo as?

    Utilizando la paginawww.androidpatterns.com, aprendimos patrones de diseo de las

    aplicaciones mviles (Android en concreto) , puntos fuertes y puntos dbiles de cada uno. En

    concreto encontramos el patrn Dashboard, el cual, dada la cantidad de