• No se han encontrado resultados

Aplicación para dispositivos móviles con servicios de la red universitaria UCLVLink

N/A
N/A
Protected

Academic year: 2020

Share "Aplicación para dispositivos móviles con servicios de la red universitaria UCLVLink"

Copied!
84
0
0

Texto completo

(1)Universidad Central “Marta Abreu” de Las Villas Facultad de Matemática, Física y Computación Centro de Investigaciones en Informática Laboratorio de Programación para Móviles. Aplicación para dispositivos móviles con servicios de la red universitaria. “U C LV Link”. A utor: José Antonio López Arencibia. Tutor: MsC. Frank Reyes García.. “Año 59 de la Revolución” Santa Clara, 2017.

(2) P ensam iento. “Tu tiempo es limitado, de modo que no lo malgastes viviendo la vida de alguien distinto. No quedes atrapado en el dogma, que es vivir como otros piensan que deberías vivir. No dejes que los ruidos de las opiniones de los demás acallen tu propia voz interior. Y, lo que es más importante, ten el coraje para hacer lo que te dicen tu corazón y tu intuición.” Steve Jobs..

(3) Agradecimientos A toda aquella persona que ha contribuido a mi formación profesional. Al claustro de profesores de la Facultad por su exigencia y profesionalidad. A Frank, mi tutor, por confiar en mí y por su apoyo en cada momento. A Lázaro J esús por ser mi primer tutor, que a pesar de los hechos, siempre pude contar contigo. A Synthia, mi novia, por ser mi luz los momentos más difíciles, por confiar en mí en todo momento, por apoyarme siempre. A Felipe, sin dudas gracias por siempre tener un tiempo para mí, para mis dudas con las asignaturas, por ayudarme en todo momento. A D avid, gracias por dedicarme tiempo, y ayudarme con “algunas muchas dudas”. A mis compañeros de K aleydoB it, por su apoyo incondicional. A mis am istades (Moreno, Jose Ángel, “Teddy”, Lázaro, Felipe, y muchos, muchos más) que en todo momento me apoyaron con la idea, aconsejaron en todo momento. A mi tío Á ngel, por ayudarme con el enfoque y redacción de mi investigación, tu ayuda fue muy importante. A Félix (Tecnopunta), por sus consejos, por su guía, por apoyar mis estudios en todo momento. A mis colegas de Tecnopunta y N axos por su apoyo.. En fin a todas las personas que de alguna forma u otra estuvieron involucrados y me apoyaron en la realización de este trabajo (Lisy, Piero, Isidro, Lázaro García, Mildrey, ...)..

(4) D edicatoria A mi papá, que SIEMPRE me has apoyado en todo momento, incluso desde lejos; que en ocasiones estuviste más nervioso y preocupado por mi trabajo que yo. A mi m am á, que SIEMPRE me has ayudado con todo, y cuando digo todo es TODO. Gracias por todo. A toda mi fam ilia que de una manera u otra siempre me apoyaron durante todos estos años de estudio. A mis abuelos G ustavo, M ildred y Othoniel que, aunque ya no están, siempre me apoyaron en todo momento. Los quiero.. En especial, a mi abuela Lidia que has estado conmigo desde el día en que nací, que has vivido cada una de mis etapas, que siempre me has apoyado en cuanta idea me pasa por la cabeza, a ti te debo todo. Te quiero..

(5) R esum en En la actualidad el software se encuentra en la mayoría de los objetos con los que interactuamos en el quehacer cotidiano, y son las aplicaciones para dispositivos móviles las que se han convertido en principal protagonista de esta interacción entre el hombre y la tecnología, gracias a su gran portabilidad. Debido a los adelantos tecnológicos en los dispositivos móviles, permiten a los desarrolladores crear herramientas cada vez más profesionales para ayudar a las personas con las tareas que realiza en cualquier momento. El objetivo de este trabajo es crear una aplicación que permita a los usuarios de la UCLV utilizarla como un portal para consultar la información disponible en diferentes sitios web de la red, unificarla y hacerla persistente en el dispositivo, permitiendo su consulta incluso estando offline. Las principales fuentes de información son sitios web que poseen canales R SS o A P Is para la extracción de información de los mismos, de esta forma se garantiza mayor velocidad en la obtención de los datos ya que no es necesario cargar completamente los sitios web para ver su contenido, esta información es filtrada, eliminando caracteres indeseados u otros objetos que pueda contener el texto, extraer información que puedan contener eventos, enlaces externos o imágenes, y utilizar todos estos datos para mostrarlos al usuario de forma estructurada y disponible en cualquier momento..

(6) A bstract Today, software is found in most of the objects we interact with in everyday life, and the applications for mobile devices are the ones that have become the main protagonist of this interaction between man and technology, due to their portability. In order to the technological advances in mobile devices, they allow developers to create more professional tools to help people with their tasks at every single moment. The objective of this work is to create an app that allows the users of the UCLV to use it as a portal to read all the information available on different websites in the network, unify it and make it persistent in the device, allowing to read it even offline. The main sources of information are websites that have R SS feeds or A P Is for extracting information from them, this way ensures greater speed in obtaining the data as it is not necessary to fully load the websites to see their content. This information is filtered, removing unwanted characters or other objects that may be present in the text, gather information which can contain events, external links or images, and use all this data to show it to the user in a structured and most likely way at any time..

(7) Tabla de C ontenidos. IN TR OD U C C IÓN ...................................................................................................... 1. C A P ÍTU LO 1: Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. ........................................................................................................ 5 1.1 Diferencias entre Aplicaciones y Web Móviles........................................................ 6 1.2 Aplicaciones Móviles............................................................................................... 8 1.3 El proceso de diseño y desarrollo de una aplicación ............................................... 9 1.3.1 Conceptualización ............................................................................................10 1.3.2 Definición ........................................................................................................10 1.3.3 Diseño..............................................................................................................10 1.3.4 Desarrollo ........................................................................................................12 1.3.5 Publicación ......................................................................................................12 1.4 Tipos de aplicaciones según su desarrollo ..............................................................12 1.4.1 Aplicaciones nativas ........................................................................................13 1.4.2 Aplicaciones Web ............................................................................................15 1.4.3 Aplicaciones híbridas .......................................................................................17 1.4.4 ¿Cuál utilizar? .................................................................................................19 1.5 Diseño de aplicaciones móviles para Android ........................................................19 1.6 Principios de experiencia de usuario ......................................................................20.

(8) 1.6.1 Simplicidad ......................................................................................................21 1.6.2 Consistencia.....................................................................................................21 1.6.3 Navegación intuitiva........................................................................................22 1.7 El estilo de las interfaces .......................................................................................22 1.7.1 Interfaces nativas o personalizadas ..................................................................23 1.7.2 ¿Cuándo usar una u otra interfaz? ..................................................................24 1.8 Android. Sistema Operativo para dispositivos móviles ..........................................25 1.9 Material Design ..................................................................................................26 1.10 Mecanismos para extraer información de servicios ..............................................26 1.10.1 RSS................................................................................................................27 1.10.2 RSS................................................................................................................28 1.10.3 JSON .............................................................................................................29 1.10.4 APIs ..............................................................................................................30 1.12 Conclusiones parciales .........................................................................................31. C A P ÍTU LO 2: Análisis, diseño e implementación de la herramienta ..........................32 2.1 Requisitos y análisis ..............................................................................................32 2.1.1 Requisitos funcionales......................................................................................33 2.1.2 Requisitos no funcionales.................................................................................33 2.1.3 Diagrama de casos de uso ................................................................................34 2.1.4 Diagrama de paquetes .....................................................................................36 2.1.6 Diagrama de actividades .................................................................................37.

(9) 2.2 Diseño e implementación .......................................................................................39 2.2.1 Arquitectura del Sistema .................................................................................40 2.2.2 Diagrama de clases ..........................................................................................41 2.2.3 Diagrama de secuencia ....................................................................................45 2.2.4 Mapa de navegación de la aplicación ...............................................................47 2.2.5 Diagrama de componentes ...............................................................................48 2.2.6 Descripción de la aplicación .............................................................................48. C A P ÍTU LO 3: Descripción de las pruebas realizadas .................................................55 3.1 Pruebas unitarias...................................................................................................55 3.2 Pruebas de integración ..........................................................................................59 3.3 Pruebas de validación ............................................................................................60 3.4 Pruebas de compatibilidad ....................................................................................61 3.5 Pruebas de usabilidad ............................................................................................64 3.6 Pruebas de campo .................................................................................................69 3.7 Conclusiones parciales ...........................................................................................70 C ON C LU SION ES ......................................................................................................71 R EC OM EN D A C ION ES ...........................................................................................72 R EFER EN C IA S B IB LIOG R Á FIC A S ...................................................................73.

(10) INTRODUCCIÓN. IN TR OD U C C IÓN Los dispositivos móviles forman parte de la vida cotidiana y cada vez se vuelven más sofisticados. Su poder de cómputo genera posibilidades que unos años atrás eran impensables. (Cuello and Vittone, 2013). Hace varios años las medianas empresas y las grandes corporaciones a nivel mundial iniciaron una transformación condicionada por las nuevas innovaciones tecnológicas. El primer protagonista de este cambio fue Internet, y unas décadas después, las Aplicaciones Móviles o Apps son las innovaciones que están actuando y cambiando las formas de trabajo en diferentes áreas de la sociedad. Las instituciones que utilizan aplicaciones móviles en su día a día son cada vez más, y no solo las que ofrecen servicios o productos, sino que, sin importar su tamaño o sector, han ido incorporando estas apps en sus procesos internos. Esto ha sido posible gracias a la cercanía y la inmediatez que proporcionan las apps y la gran penetración de esta tecnología en la sociedad. En nuestro país todavía es incipiente el uso de esta nueva tendencia de hacer uso de apps para los procesos o actividades que realizamos a diario, y aunque se han hecho algunos avances en esta dirección, el grado de desarrollo de aplicaciones aún es muy bajo. La Universidad Central “Marta Abreu” de las Villas posee una de las redes más completas en infraestructura de todo el país (López Valdés, 2007). Lo que posibilita ofrecer gran variedad de información a sus usuarios, incluyendo un repositorio de documentos científicos que permiten su consulta y descarga de manera libre; noticias y eventos en el ámbito universitario, Aula Virtual, que permite a los educadores crear cursos en línea de alta calidad y entornos de aprendizaje virtuales, además de contenido multimedia y entretenimiento.. 1.

(11) INTRODUCCIÓN Estos servicios pueden ser accedidos desde la Intranet de la Universidad, siendo un navegador web la única vía para llegar a ellos y para lo cual es necesario utilizar un dispositivo conectado a la red universitaria. Sin embargo, la información que ofrecen varios de estos servicios pudieran estar disponibles sin conexión, lo cual hoy no es posible por no existir una herramienta que permita a los usuarios acceder a ellos sin hacer uso exclusivo de los navegadores web. A lo antes dicho se agrega que la mayoría de los usuarios de la Universidad Central “Marta Abreu” de las Villas (UCLV) poseen un dispositivo móvil, ya sea un Tablet o Smartphone con Sistema Operativo (SO) Android, según los registros de los dispositivos en el dominio de esta red, que no se utilizan con estos fines. La situación antes descrita permite definir el problem a de investigación : No se cuenta con una herramienta que permita acceder los servicios de la red de la UCLV y poder consultar la información extraída de los mismos estando offline. Para dar respuesta al problema de investigación se propone como objetivo general: desarrollar una herramienta que permita a los usuarios de la red de la UCLV acceder a los distintos servicios sin hacer uso exclusivo de un navegador Web y hacer persistente esta información en el dispositivo. Para dar cumplimiento a este objetivo se plantean los siguientes objetivos específicos: -. Determinar los mecanismos que se utilizaran para la extracción, tratamiento y visualización de la información obtenida de los servicios que nos brindan los distintos sitios en la red de la. UCLV.. -. Realizar un análisis de los servicios existentes en la red de la UCLV.. -. Implementar una aplicación móvil para Android que permita realizar el proceso de extracción y visualización de la información extraída de estos servicios.. 2.

(12) INTRODUCCIÓN. -. Evaluar el desempeño del software diseñado a través de pruebas de usabilidad y funcionamiento de la aplicación.. El valor práctico del trabajo está dado en que la aplicación U C LV Link dispone de medios para hacer llegar las últimas publicaciones de diferentes sitios web en la red universitaria a la mayoría de sus usuarios, por lo que ofrece una alternativa más práctica que un ordenador para consultar información, mantenerse actualizado del acontecer universitario y planificar eventos que resulten de interés. El valor m etodológico del trabajo está dado por la sistematización de un conjunto de métodos científicos y procedimientos tecnológicos que permitieron el desarrollo y presentación de una aplicación móvil en función de elevar la eficacia de la comunicación social de la UCLV y ampliar el alcance e inmediatez de la información en correspondencia con las exigencias actuales del trabajo político ideológico para la comunidad universitaria. Demuestra la viabilidad del uso de las nuevas tecnologías como alternativa para contrarrestar la infomediación globalizada y neoliberal actual. El trabajo de diploma está estructurado en tres capítulos: El C apítulo 1 expone los fundamentos teóricos que respaldan la investigación relacionados con las aplicaciones móviles, tendencias actuales y tipo de las mismas. Se estudia el proceso de diseño y desarrollo de las aplicaciones en sus diferentes fases. Se hace referencia a los principios de diseño de interfaces para dispositivos móviles, así como las tendencias actuales de los mismos y a Android como sistema operativo para dispositivos móviles. También se analizan mecanismos que se utilizan para estructurar la información proveniente de sitios a través de las redes. El C apítulo 2 describe los principales diagramas de la aplicación y algunos de los algoritmos y técnicas empleadas. 3.

(13) INTRODUCCIÓN El C apítulo 3 consta de una descripción de la herramienta para unificar información de diversas fuentes en la Red UCLV, contribuyendo a una mejor en la difusión de estas informaciones. Además, presenta las diferentes pruebas de usabilidad y funcionamiento a las que se sometió la aplicación y los resultados que se obtuvieron de las mismas. El documento termina con las conclusiones, recomendaciones, referencias bibliográficas y los anexos.. 4.

(14) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. C A P ÍTU LO 1: Fundam entación teórica sobre el desarrollo de aplicaciones para dispositivos m óviles. Una aplicación móvil, o app es una aplicación informática diseñada para ser ejecutada en teléfonos inteligentes (Smartphones), tabletas u otros dispositivos móviles, que permiten al usuario efectuar una tarea concreta de cualquier tipo: profesional, ocio, educativa, de acceso a servicios, etc., facilitando las gestiones o actividades a desarrollar (Santiago et al., 2015). Por lo general se encuentran disponibles a través de plataformas de distribución, operadas por las compañías propietarias de los sistemas operativos móviles como Android, iOS, BlackBerry OS, Windows Mobile, entre otros. Existen aplicaciones móviles gratuitas y otras de pago (Wolfram and Schilling, 2015). Al ser aplicaciones residentes en los dispositivos están escritas en algún lenguaje de programación compilado, y su funcionamiento y recursos se encaminan a aportar una serie de ventajas tales como: un acceso más rápido y sencillo a la información necesaria sin necesidad de los datos de autenticación en cada acceso, un almacenamiento de datos personales que, a priori, es de una manera segura, una gran versatilidad en cuanto a su utilización o aplicación práctica; la atribución de funcionalidades específicas así como mejoras en la capacidad de conectividad y disponibilidad de servicios y productos (usuariousuario, usuario-proveedor de servicios, etc.).. 5.

(15) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. Es importante destacar que una app no es una aplicación web, tampoco es un sistema operativo, ni un servicio de alojamiento informático o web (Tracy, 2012) .. Figura 1.1: En las tiendas de aplicaciones (AppStore) hay cientos de miles de apps disponibles.. Actualmente encontramos aplicaciones de todo tipo, forma y color, pero en los primeros teléfonos, estaban enfocadas en mejorar la productividad personal: se trataba de alarmas, calendarios, calculadoras y clientes de correo. Al mismo tiempo, también mejoraron las herramientas de las que disponían diseñadores y programadores para desarrollar apps, facilitando la tarea de producir una aplicación y lanzarla al mercado, incluso por cuenta propia.. 1.1 D iferencias entre A plicaciones y W eb M óviles Las aplicaciones comparten la pantalla del teléfono con las webs móviles (Arroyo-Vázquez, 2009), pero mientras las primeras tienen que ser descargadas e instaladas antes de usar, a una web puede accederse simplemente usando Internet y un navegador; sin embargo, no 6.

(16) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. todas pueden verse correctamente desde una pantalla más pequeña que la de un ordenador de escritorio. Las aplicaciones que se adaptan especialmente a un dispositivo móvil se llaman responsive web y son ejemplo del diseño adaptativo (Martín, 2010), ya que se puede pensar en ellas como un contenido que toma la forma del contenedor, mostrando la información según sea necesario, como muestra la Figura 1.2.. Figura 1.2: El diseño “responsivo” se adapta dependiendo del dispositivo donde es visualizado.. Quienes cuentan ya con una web responsive pueden plantearse la necesidad de diseñar una aplicación, pero la respuesta a si esto es o no necesario, depende de entender tanto los objetivos de negocio, como las características que diferencian las aplicaciones de las webs. Por ejemplo, las aplicaciones pueden acceder a ciertas características del teléfono como los sensores, capacidades que actualmente están fuera del alcance de las webs. Por lo anterior, puede decirse que una aplicación ofrece una mejor experiencia de uso, evitando tiempos de espera excesivos y logrando una navegación más fluida entre los 7.

(17) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. contenidos. No siempre hay que elegir entre una u otra. Webs y aplicaciones no son competidoras, más bien, pueden complementarse entre ellas; por ejemplo, una web puede ser útil como canal de información para motivar la descarga de la aplicación (AguadoTerrón and Martínez-Martínez, 2009).. 1.2 A plicaciones M óviles En ocasiones al implementar una aplicación, es posible que ya exista una web como antecedente, en casos como este la aplicación debe utilizar este contenido de la web y darle un valor añadido mediante funcionalidades que permitan una mejor interacción con el mismo debido a que una aplicación está pensada para ser ejecutada en una pantalla más pequeña y puede que necesite adaptarse o utilizar características extras para ser visualizado correctamente. En otros casos, el diseño comienza desde cero, cuando todavía no hay ni web ni aplicación, y hay que decidirse por cuál de ellas empezar. Aquí es donde adquiere más trascendencia el concepto de mobile first, que implica plantear el proceso de diseño teniendo en cuenta el móvil en primer lugar. La ventaja de esta forma de trabajar es que el pensar en el móvil como punto de partida, obliga a concentrarse en lo esencial de un producto y a hacer foco solo en lo que tiene sentido para este dispositivo. Una vez que la aplicación está diseñada, puede preguntarse cuál es la mejor forma de llevar lo hecho para el teléfono a una pantalla de ordenador o a otros dispositivos, extendiendo y escalando el contenido y repensando la diagramación. Todos los dispositivos tienen usos diferentes, y en el momento de adaptar el diseño, hay que tener en cuenta las características particulares de cada uno de ellos. Mobile first es una propuesta de trabajo 8.

(18) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. que ha surgido recientemente; una tendencia emergente que aún está por consolidarse. Actualmente, es solo una manera de afrontar el proceso de diseño y como tal, puede evaluarse la comodidad que se tiene trabajando de esta forma antes de empezar (Cuello and Vittone, 2013).. 1.3 El proceso de diseño y desarrollo de una aplicación El proceso de diseño y desarrollo de una aplicación, abarca desde la concepción de la idea hasta el análisis posterior a su publicación en las tiendas. Durante las diferentes etapas, diseñadores y desarrolladores trabajan la mayor parte del tiempo de manera simultánea y coordinada. Se ha resumido las fases de este proceso solo desde la perspectiva del diseño y desarrollo, es decir, sin tener en cuenta los roles de coordinación, la participación del cliente, ni los accionistas de la empresa.. Figura 1.3: Cantidad de trabajo entre el diseñador y el programador en el desarrollo de un software. 9.

(19) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. 1.3.1 Conceptualización El resultado de esta etapa es consolidar una concepto que, teniendo en cuenta las necesidades y problemas de los usuarios, responda a una investigación preliminar y a la posterior comprobación de la viabilidad del concepto (Piattini et al., 2007). . Idealización. . Investigación. . Formalización de la idea. 1.3.2 Definición En este paso del proceso se describe con detalle a los usuarios para quienes se diseñará la aplicación, usando metodologías como “P ER SON A S” y “V iaje del usuario” (Pichler, 2016). También se sientan las bases de la funcionalidad, lo cual determinará el alcance del proyecto y la complejidad de diseño y programación de la app. -. Definición de usuarios. -. Definición de funcionalidades. 1.3.3 Diseño En la etapa de diseño se llevan a un plano tangible los conceptos y definiciones anteriores, primero en forma de wireframes, que permiten crear los primeros prototipos para ser probados con usuarios, y posteriormente, en un diseño visual acabado que será provisto al desarrollador, en forma de archivos separados y pantallas modelo, para la programación del código.. 10.

(20) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. Los wireframes varían desde un dibujo en una hoja de papel hasta un prototipo completamente comprensible utilizado para documentar el diseño a los programadores. Un wireframe realizado en corto plazo puede transmitir la idea de que trata el software que se realizará. Independientemente de los medios utilizados para llevar a cabo un wireframe, éste solo tendrá un centro periodo de utilidad por lo que suelen tener un costo muy bajo en recursos y tiempo. Debido a su rápida creación es vital en las primeras fases de desarrollo ya que su diseño puede sufrir cambios constantemente. Los prototipos se utilizan durante la fase de diseño conceptual presentando propuestas de las pantallas que componen el software. Estos dibujos pueden ser dibujados en papel o hechos en algún software y posteriormente impresos. Para simular el funcionamiento del sistema, se crean en papel múltiples pantallas e interfaces de elementos y una persona hace el rol de dispositivo, mostrando las pantallas que sean necesarias a lo largo de la presentación. Mediante esta interacción, usuarios y desarrolladores evalúan las diferentes características del software. Las pruebas con usuarios son siempre un reto, si se tiene acceso a los usuarios finales del producto, éstos deberían ser los principales protagonistas del proceso, aunque los usuarios que son afectados directamente por el producto siempre proveen información que puede ser utilizada para mejorar características o funcionalidades o alternativas de usabilidad. El diseño visual es el lenguaje visual y la composición de los elementos utilizados para expresar la estructura del software a los usuarios. Encontrar una forma de alcanzar una calidad visual y lograr un completo entendimiento con los usuarios es algo muy difícil de lograr y por lo general toma mucho tiempo. En muchas ocasiones los usuarios diferirán en lo que ven dependiendo de su punto de vista. (Snyder, 2003) 11.

(21) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. 1.3.4 Desarrollo El programador de software podría considerarse como un trabajador simbólico-analítico. Serían aquellos trabajadores que identifican problemas y ofrecen soluciones a los mismos, comparten información a través de comunidades públicas y semipúblicas y privadas conformando redes de conocimiento como una de sus actividades prioritarias para acceder a información que se convertirá en un activo para resolver problemas de programación (Rodríguez-Gutiérrez). 1.3.5 Publicación El proceso de publicación es cuando el software se pone a disposición de los usuarios ya sea en las respectivas tiendas de aplicaciones u otras formas de distribución. Una vez lanzado el software se realiza un seguimiento a través de analíticas, estadísticas y comentarios de usuarios, para evaluar el comportamiento y desempeño de la app, corregir errores, realizar mejoras y actualizarla en futuras versiones (Agustín, 2002).. 1.4 Tipos de aplicaciones según su desarrollo En los últimos años el mercado de los dispositivos móviles, en especial los Smartphone, ha mostrado un crecimiento notable en todo el mundo. Siendo las plataformas más sobresalientes iOS y Android. Cada una de estas plataformas cuenta con una infraestructura de desarrollo particular, siendo un reto para los desarrolladores de aplicaciones proporcionar soluciones para todas las plataformas, lo cual tiene un alto costo. La solución ideal a este problema es crear y mantener una única aplicación para todas las plataformas. El desarrollo multiplataforma tiene como objetivo mantener la misma base. 12.

(22) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. de código para diversas plataformas. De esta forma el esfuerzo y costo de desarrollo se reduce notablemente. A nivel de programación, existen varias formas de desarrollar una aplicación. Cada una de ellas tiene diferentes características y limitaciones, especialmente desde el punto de vista técnico. Aunque a primera vista esto no parezca incumbencia del diseñador, la realidad es que el tipo de aplicación que se elija, condicionará el diseño visual y la interacción (Delía et al., 2013). 1.4.1 Aplicaciones nativas Las aplicaciones nativas son aquellas que han sido desarrolladas con el software que ofrece cada sistema operativo a los programadores, llamado genéricamente. Software. Development Kit o SD K . Así, Android, iOS y Windows Phone tienen uno diferente y las aplicaciones nativas se diseñan y programan específicamente para cada plataforma, en el lenguaje utilizado por el SD K . Este tipo de apps se descarga e instala desde las tiendas de aplicaciones, con ciertas excepciones en el caso de Android, que sacan buen partido de las diferentes herramientas de promoción y marketing de cada una de ellas. Las aplicaciones nativas se actualizan frecuentemente y en esos casos, el usuario debe volver a descargarlas para obtener la última versión, que a veces corrige errores o añade mejoras. Una característica generalmente menospreciada de las apps nativas, según se muestra en la Figura 1.4, es que pueden hacer uso de las notificaciones del sistema operativo para mostrar avisos importantes al usuario, aun cuando no se esté usando la aplicación, ejemplo de esto son los mensajes generados por la aplicación.. 13.

(23) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. Figura 1.4: Las aplicaciones nativas permiten aprovechar el sistema de notificaciones.. Las aplicaciones nativas no requieren Internet para funcionar, por lo que ofrecen una experiencia de uso más fluida y están realmente integradas al teléfono, lo cual les permite utilizar todas las características de hardware del terminal, como la cámara y los sensores (G P S, acelerómetro, giroscopio, entre otros). A nivel de diseño, esta clase de aplicaciones tiene una interfaz basada en las guías de cada sistema operativo, logrando mayor coherencia y consistencia con el resto de aplicaciones y con el propio sistema operativo. Esto favorece la usabilidad y beneficia directamente al usuario que encuentra interfaces familiares.. 14.

(24) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. 1.4.2 Aplicaciones Web La base de programación de las aplicaciones web, también llamadas web apps, es el H TM L, conjuntamente con JavaScript y C SS (Cascade Style Sheet) (Lie and Bos, 2005), estas son herramientas muy utilizadas por los programadores web. En este caso no se emplea un SD K , lo cual permite programar de forma independiente al sistema operativo en el cual se usará la aplicación. Por eso, estas aplicaciones pueden ser fácilmente utilizadas en diferentes plataformas sin mayores inconvenientes y sin necesidad de desarrollar un código diferente para cada caso particular. Las aplicaciones web no necesitan instalarse, ya que se visualizan usando el navegador del teléfono como un sitio web normal. Por esta misma razón, no se distribuyen en una tienda de aplicaciones, sino que se comercializan y promocionan de forma independiente. Al tratarse de aplicaciones que funcionan sobre la web, no es necesario que el usuario reciba actualizaciones, ya que siempre va a estar viendo la última versión. Pero, a diferencia de las apps nativas, requieren de una conexión a Internet para funcionar correctamente (Mora, 2002).. 15.

(25) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. Figura 1.5: Facebook cuenta tanto con una web app como con una app nativa.. Adicionalmente, tienen algunas restricciones e inconvenientes en factores importantes como gestión de memoria y no permiten aprovechar al máximo la potencia de los diferentes componentes de hardware del teléfono. Las aplicaciones web suelen tener una interfaz más genérica e independiente de la apariencia del sistema operativo, por lo que la experiencia de identificación del usuario con los elementos de navegación e interacción, suele ser menor que en el caso de las nativas.. 16.

(26) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. 1.4.3 Aplicaciones híbridas Las aplicaciones híbridas son una especie de combinación entre las aplicaciones web y nativas. La forma de desarrollarlas es parecida a la de una aplicación web, usando HTML, CSS y JavaScript, y una vez que la aplicación está terminada, se compila o empaqueta de forma tal, que el resultado final es como si se tratara de una aplicación nativa. Esto permite casi con un mismo código obtener diferentes aplicaciones, por ejemplo, para Android y iOS (Figura 1.6), y distribuirlas en cada una de sus tiendas. A diferencia de las aplicaciones web, estas permiten acceder, usando bibliotecas, a las capacidades del teléfono, tal como lo haría una app nativa.. Figura 1.6: Netflix tiene una aplicación híbrida que se ve prácticamente igual en iOS y en Android.. Las aplicaciones híbridas, también tienen un diseño visual que no se identifica en gran medida con el del sistema operativo. Sin embargo, hay formas de usar controles y botones nativos de cada plataforma para adherirse más a la estética propia de cada una. Existen 17.

(27) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. algunas herramientas para desarrollar este tipo de aplicaciones. A pache C ordova es una de las más populares, pero existen otras alternativas como Icenium o X am arin.. 18.

(28) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. 1.4.4 ¿Cuál utilizar? Dadas las características de cada una de las aplicaciones, decidirse por una u otra estará determinado por un conjunto de factores fundamentales y por la forma en que afectan finalmente la experiencia de uso. Cuando la disponibilidad de la app sin Internet, la posibilidad de usar notificaciones y el acceso a los recursos de hardware del teléfono sean importantes, una aplicación nativa será la opción más indicada. Si ninguna de estas características es realmente importante para la aplicación, diseñar una aplicación web sería una mejor opción, si es que ya se dispone del conocimiento para ello, heredado del desarrollo de sitios web. En este caso, el costo de desarrollo es más bajo y la forma de trabajar un poco más ágil. Independientemente de esto, las aplicaciones nativas son las que ofrecen una mejor experiencia de uso y, sobre todo, rendimiento. Algunas apps como Facebook o LinkedIn, que antes eran híbridas, han pasado a ser nativas por este motivo. Adicionalmente, ellas responden más a las guías de diseño de cada sistema operativo.. 1.5 D iseño de aplicaciones m óviles para A ndroid El diseño de aplicaciones para dispositivos móviles es fundamental, pues de ello depende el éxito una vez que sea desplegada y los usuarios comiencen a utilizarla. Se debe hacer énfasis en tres objetivos fundamentales a tener en cuenta en el desarrollo y diseño de estas aplicaciones. Las apps deben ser estéticamente placenteras en cada nivel o sección. Las transiciones deben ser rápidas y limpias, la organización y las tipografías deben ser atractivas y llenas de significado. Los iconos son como obras de arte si están bien utilizados ya que una simple imagen, bien conformada, dice más que muchas palabras. Como una 19.

(29) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. herramienta bien hecha, las aplicaciones deben combinar belleza, simpleza y propósito para crear una verdadera experiencia con mínimo esfuerzo, pero poderoso a su vez. Deben simplificarnos las tareas que realizamos comúnmente y a su vez deben ser fáciles de entender, intuitivas. Cuando una persona utiliza una app por primera vez, ésta debe ser capaz de intuir fácilmente las características o funcionalidades más importantes. Hacer las operaciones más complejas de una forma transparente, dejando al usuario la menor cantidad de interacción posible. Las personas de cualquier edad o cultura deben sentirse totalmente en control y no abrumadas por muchas decisiones o señalamientos innecesarios. No es suficiente con desarrollar una aplicación que sea fácil de utilizar. Las aplicaciones tienen que inspirar a las personas a probar cosas nuevas y utilizar las aplicaciones de formas innovadoras. Permitir a las personas combinar aplicaciones a diferentes flujos de trabajo a través de multitareas, notificaciones e incluso compartir contenido entre aplicaciones (Google, 2015). Todos los sistemas operativos proponen diferentes formas de interactuar con los elementos en pantalla. Conocer la diferencia entre ellos y utilizar elementos familiares para el usuario, asegura que se sienta cómodo y seguro usando la aplicación.. 1.6 P rincipios de experiencia de usuario Cada sistema operativo tiene su propia identidad que es reflejada en la apariencia y comportamiento de cada uno de los elementos que componen su interfaz. En ellos imprime su personalidad, lo que hace que la experiencia sea diferente a las demás. Sin embargo, todos comparten algunos puntos de vista fundamentales que se manifiestan en el diseño de sus interfaces (Hassan Montero and Martín Fernández, 2005). 20.

(30) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. 1.6.1 Simplicidad La simplicidad visual está directamente relacionada con la usabilidad. Ser simple implica en cierta medida ser mínimo, contar con pocos elementos, sobre todo, que aquellos presentes en la interfaz tengan una función bien definida que contribuya a cumplir el objetivo de la app y ayude al usuario. Los móviles no son dispositivos para mostrar mucha información en pantalla. Por esta misma razón, la simplicidad consiste también en manejar la economía visual y tener un buen criterio para determinar qué incluir y qué no en el diseño. Una gran cantidad de elementos puede abrumar al usuario, por eso, lo que está en pantalla tiene que ser necesario en ese momento y en esa situación de uso. Hacer el diseño simple es bastante complicado, pero reporta grandes beneficios en la experiencia de uso de la aplicación. 1.6.2 Consistencia Una app tiene diferentes pantallas que la componen y al mismo tiempo, está dentro de un sistema operativo que propone un determinado aspecto visual e interacción. El usuario de Android, iOS o Windows Phone ya está habituado a ellos y espera que las aplicaciones se comporten de la misma manera. La consistencia, entonces, se trata de respetar estos conocimientos y costumbres del usuario, no solo en el interior de la aplicación, sino también en relación con el resto del Sistema Operativo. Esto favorece el uso intuitivo de la app, ya que el usuario puede prever su comportamiento sin demasiado esfuerzo. La relación existente entre apariencia y comportamiento también tiene que ser consistente. El aspecto visual de un elemento interactivo determinado (como un botón con un icono) puede llevar a esperar un comportamiento específico de acuerdo a la forma en que se ve. Por ejemplo, si se usa un botón que representa la acción “eliminar” en el sistema operativo,. 21.

(31) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. el usuario esperará que también dentro de la app haga lo mismo. Cumplir con esa expectativa habla de consistencia. 1.6.3 Navegación intuitiva Un aspecto que merece mucha atención en una aplicación es la forma de navegar entre contenidos, de manera que resulte fácil de comprender para el usuario, evitando la sensación de desorientación que puede ocasionar una navegación confusa. La navegación intuitiva está también relacionada con la consistencia. Cada sistema operativo propone diferentes elementos para navegar por la app como botones, pestañas y paneles. Hacer uso de ellos hará que el usuario los reconozca a primera vista y, solo con estos componentes, ya sepa cómo ir de una sección a otra. Por otro lado, para el usuario es importante saber y prever qué pasará después de pulsar un botón o cómo se mostrarán las pantallas. Intuir dónde se está dentro de los contenidos de la aplicación y conocer cómo volver hacia atrás son factores muy importantes que alivian al usuario y le ahorran esfuerzos inútiles por intentar comprender cómo ir de un sitio a otro. Una navegación intuitiva permite, justamente, lograr un uso fluido y sin esfuerzo de la aplicación.. 1.7 El estilo de las interfaces La interfaz de una aplicación es como la ropa que viste. Es también la capa que hay entre el usuario y el corazón funcional de la app, el lugar donde nacen las interacciones. En mayor medida está compuesta por botones, gráficos, íconos y fondos, que tienen una apariencia visual diferente en cada uno de los sistemas operativos, porque Android, iOS y. 22.

(32) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. Windows Phone tienen su propia forma de entender el diseño. El trabajo del diseñador consiste en interpretar la personalidad de cada sistema operativo, aportando su propia visión y estilo de diseño, para conseguir aplicaciones que, además de ser fáciles de usar, sean distintas a las demás y tengan coherencia visual con la plataforma que las acoge (Farman, 2013). 1.7.1 Interfaces nativas o personalizadas Las interfaces nativas se basan en elementos (botones, listas y encabezados) que vienen preestablecidos en cada plataforma. Tienen un aspecto ya definido en cuanto a las características básicas de su apariencia como color, tamaño o tipo de fuente, que pueden ajustarse en mayor o menor medida para que se correspondan con la estética buscada. En el momento de comenzar a diseñar es recomendable definir la interfaz con elementos nativos. De esta forma, se consigue una buena base sobre la cual trabajar y no es necesario crear todos los elementos desde cero. El inconveniente de las interfaces nativas es que limitan la personalidad del diseño y, en algunos casos, es necesario ir un paso más allá. En situaciones como esta, todos o algunos elementos de la interfaz pueden ser personalizados, lo cual se logra creándolos de nuevo como imágenes. Por ejemplo, un elemento visual personalizado podría ser un campo de entrada de texto de un formulario que se genera como imagen, para aprovechar la posibilidad de incluir texturas, relieves o sombras específicas, que un elemento nativo no ofrece. Diseñar una interfaz personalizada tiene que planearse de antemano porque representa una mayor complejidad y tiempo de desarrollo. De la misma manera, no siempre los. 23.

(33) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. diseños de este tipo de interfaces se trasladan a la aplicación funcional de forma fidedigna, pues su correcta implementación queda en manos de la pericia del desarrollador. 1.7.2 ¿Cuándo usar una u otra interfaz? En la mayoría de los casos no se trata de elegir entre una u otra, sino de alcanzar el balance adecuado combinando ambas. La situación más habitual suele ser partir de una interfaz nativa y personalizar solo aquellos elementos que se consideren necesarios. El tipo de aplicación también tiene incidencia directa en este asunto. Por ejemplo, las aplicaciones que dan valor a los detalles visuales y a la experiencia en general, suelen contar con más de un elemento personalizado. Tal es el caso de P ath y su forma de añadir “momentos”, algo diseñado y desarrollado a medida. Por el contrario, hay otras aplicaciones que dan más valor al cumplimiento de tareas y que se benefician de tener una apariencia más limpia que no distraiga del proceso. Un ejemplo de ellas es W hatsA pp, cuyo aspecto visual está completamente basado en elementos nativos del sistema operativo. Además del objetivo o del tipo de aplicación, hay otras variables para considerar. Las interfaces nativas tienen un punto a favor y es que están constituidas por elementos que el usuario ya conoce y a los que está habituado, por lo tanto, no representan un nuevo aprendizaje. Esto puede incidir favorablemente en la usabilidad de la app. Por otro lado, las interfaces personalizadas pueden ofrecer una apariencia más acabada, pero al trabajar con ellas hay que considerar la compatibilidad con múltiples dispositivos, es decir cómo se visualiza el mismo diseño en teléfonos diferentes y el rendimiento general.. 24.

(34) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. 1.8 A ndroid. Sistem a Operativo para dispositivos m óviles Android es un paquete de software para dispositivos móviles que incluyen un sistema operativo, middleware y aplicaciones. Los componentes de Android están diseñados en forma de paquete o stack, las aplicaciones conformar la capa superior del paquete, mientras que un kernel de Linux conformas las demás capas. Las aplicaciones que conforman el sistema operativo son para realizar las operaciones básicas como revisar el correo electrónico, enviar SM S, mapas, navegador web, contactos, entre otras. Todas las aplicaciones están escritas en el lenguaje de programación Java por tanto es en el que se desarrollan todas las aplicaciones para este sistema. El framework de desarrollo de aplicaciones tiene el mismo acceso al mismo framework con que se desarrollar las aplicaciones por defecto del sistema, su arquitectura está diseñada para simplificar y reutilizar componentes; las capacidades de cualquier aplicación pueden ser publicadas para ser utilizadas por cualquier otra aplicación (sujeto a requerimientos de seguridad establecidos por el framework). Este mismo mecanismo permite a los componentes ser reemplazados por el usuario. Por ejemplo, si se tiene una pequeña aplicación para almacenar notas y deseas buscar una ubicación específica cuya localización acabas de escribir, puedes utilizar las funcionalidades de la aplicación de mapas dentro de la misma aplicación en vez de considerar cambiar a la aplicación de mapas y buscar la ubicación manualmente. Android incluye un set de bibliotecas C /C+ + que son utilizadas por varios componentes del sistema operativo. Estas funcionalidades están a disposición a través del framework de desarrollo de aplicaciones (Developers, 2011).. 25.

(35) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. 1.9 Material Design Google, a partir de la versión de Android 5.0 – Lollipop, ha estandarizado ciertas normas en cuanto al diseño de aplicaciones. Material Design, es una normativa de diseño enfocada en la visualización del sistema operativo Android, en la Web o en cualquier otra plataforma. La filosofía se ha aplicado a la mayoría de las aplicaciones desarrolladas por la empresa, y a muchos de los productos que se pueden encontrar hoy en el mercado; proporcionando una experiencia consistente en todas las plataformas. Se trata de un diseño más limpio, en el que predominan las animaciones y transiciones en cada respuesta, el relleno y los efectos de profundidad, así como la iluminación y las sombras. El diseño de Material tiene superficies físicas y bordes. Las escenas y sombras proporcionan significado sobre lo que se puede tocar y cómo se va a mover, así como resaltar diversos contenidos (Benbourahla, 2015).. 1.10 M ecanism os para extraer inform ación de servicios Con la creciente demanda de apps para hacer portables los distintos servicios que ya eran prestados por proveedores de servicios a través de sitios Web, se necesitaron mecanismos que permitieran a las apps intercambiar información con estos sitios, de este modo se podría extraer información de una página web sin llegar a cargarla completamente lo que se traduce en aumento en la velocidad con que estos datos son descargados al dispositivos para ser procesados y poder mostrarlos al usuario de una forma personalizada. Hoy en día la mayoría de los sitios web son realizados utilizando un Sistema de Gestión de Contenidos o Content Management System, ya que permiten crear una estructura de soporte para la. 26.

(36) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. creación y administración de contenidos. Pero además incorporan por defecto un sistema de distribución de contenidos llamado R SS.. 1.10.1 XML X M L (Extensible Markup Language), describe una clase de objetos de datos llamados documentos X M L y describe parcialmente el comportamiento de los programas que los procesan. Es un perfil de aplicación o forma restringida de SG M L (Standard Generalized Markup Language), el lenguaje de marcado generalizado estándar [ISO 8879]. Por construcción, los documentos X M L son documentos SG M L conformes. Los documentos X M L están formados por unidades de almacenamiento denominadas entidades, que contienen datos analizados o sin par. Los datos analizados se componen de caracteres, algunos de los cuales forman datos, y algunos de los cuales forman marcado. El m arcado codifica una descripción de la disposición de almacenamiento del documento y de la estructura lógica. X M L proporciona un mecanismo para imponer restricciones en el diseño de almacenamiento y en la estructura lógica. Un módulo de software denominado procesador X M L se utiliza para leer documentos de este tipo y proporcionar acceso a su contenido y estructura. Se supone que un procesador X M L está haciendo su trabajo en nombre de otro módulo, llamado la aplicación. Esta especificación describe el comportamiento requerido de estos procesadores en términos de cómo debe leer los datos X M L y la información que debe proporcionar a la aplicación (Bray et al., 1997).. 27.

(37) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. 1.10.2 RSS ¿Cómo mantenerse informado a través de Internet sin usar un navegador? Esto, que hasta hace poco podía parecer imposible, se consigue gracias a R SS (Rich Site Summary o Really Simple Syndication). Un formato basado en el X M L (Extensible Markup Languaje) de acuerdo a especificaciones de la World Wide Consortium que sirve para distribuir titulares de noticias y contenidos. Gracias a R SS, el usuario dispone de los titulares de diferentes de sitios web sin la necesidad de conectarse uno por uno a todos ellos, sabiendo en esta forma en cada momento qué sitios web han actualizado sus contenidos, cuáles no y qué contenidos han sido actualizados. En la actualidad ya hay más de 700.000 webs adaptadas a este sistema. Su filosofía es sencilla y la podríamos sintetizar en la siguiente frase: “el receptor ya no va en busca de la información; es la información la que va en busca del receptor” (Hidalgo et al., 2005). Queremos señalar, que, aunque hablamos de presencia relativamente reciente, su primera versión data de 1999, cuando N estcape sacó una versión, la R SS 0.90, que perseguía los mismos objetivos a los que aquí nos referimos. Por otra parte, sus funciones no se limitan a la información de noticias y titulares, sino que con una planificación adecuada pueden ser de utilidad para el seguimiento de búsquedas, la planificación e interacción de agendas entre varias personas, el seguimiento de las cotizaciones y los movimientos de actividades o la construcción de estadísticas. A esta forma de distribuir contenidos se le llama sindicación, y su función, es mostrar resúmenes o índices con los contenidos y noticias que ha publicado un sitio web, sin la necesidad de entrar a ella. Dicho en otros términos, se trata de mandarle al receptor aquellas novedades de contenidos y noticias que se hayan producido en un sitio web, de forma que si nos interesa 28.

(38) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. tome contacto con ella, pulsando simplemente sobre la misma, lo que permitirá que se abra en el navegador que tengamos instalado en nuestro ordenador: Internet Explorer, Mozilla, Firefox, La utilización del R SS, nos evita de la pérdida de tiempo a la cual nos podemos vernos sometidos para actualizarnos en determinados contenidos, sin la necesidad de realizar un proceso de búsqueda, evitándonos el proceso de búsqueda en los diferentes sitios webs que nos pueden interesar. Indirectamente posee también otra serie de ventajas, una, la facilidad con que los códigos pueden ser incorporados en nuestros sitios web, y dos, la facilidad con que podemos descargar y usar las programas que nos permiten su utilización (Hidalgo et al., 2005). 1.10.3 JSON JavaScript Object Notation (JSON ) es un formato de texto para serializar información estructurada. Es un derivado de los objetos de JavaScript, definidos en ECMAScript (ECMAScript and Association, 2011). J SON puede representar cuatro tipos de datos primitivos (cadenas, números, booleanos, y nulos) y dos tipos de datos estructurados (objetos y arreglos), donde cadena es una secuencia de cero o más caracteres Unicode (Consortium, 2014), mientras que un objeto es una colección desordenada de ceros o pares nombre/valor, donde el nombre puede ser una cadena y valor puede ser una cadena (string), numero (number), booleano (boolean), nulo (null), objeto (object) o arreglo (array). Un arreglo es una secuencia ordenada de ceros o más valores. Los términos “object” y “array” vienen dados por las convenciones de JavaScript.. 29.

(39) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. 1.10.4 APIs Una A P I. (Application Programming Interface o Interfaz de Programación de. Aplicaciones) es un conjunto de funciones que facilitan el intercambio de mensajes o datos entre aplicaciones. En Internet, una A PI permite que un sitio web brinde determinado servicio a otro, a través de llamadas a ciertas funciones documentadas y publicadas, facilitando de esta manera la combinación de servicios. Una A P I detalla solamente la forma de llamar a cada función y la tarea que esta desempeña, sin importar cómo se lleva a cabo dicha tarea. Puede combinar recuperación de errores, traducción de datos, seguridad, manejo de colas y nomenclatura con una interfaz fácil de asimilar, que comprende acciones y comandos simples, pero con muchas opciones. Para invocarla, el programa debe llamar a una función tipo “send”, especificando parámetros para el nombre de destino, indicadores de datos y opciones de confirmación. Ésta, toma la información y hace que todo el trabajo específico de comunicación sea transparente para la aplicación. Existen cuatro tipos de A P Is que posibilitan el intercambio de datos entre diferentes aplicaciones de software en plataformas individuales o distribuidas. Mediante R P C (Remote Procedure Calls o Llamadas a Procedimientos Remotos), los programas pueden comunicarse a través de procedimientos (o tareas) que actúan en buffers compartidos de información. SQL (Standard Query Language o Lenguague Estándar de Consultas) es un lenguaje de acceso de datos sin procedimientos que permite el intercambio de información entre aplicaciones, accediendo a bases de datos comunes. La transferencia de archivos, habilita el intercambio de datos enviando archivos. 30.

(40) CAPÍTULO 1 Fundamentación teórica sobre el desarrollo de aplicaciones para dispositivos móviles. formateados entre aplicaciones. El envío de m ensajes, provee el intercambio de datos a través de pequeños mensajes formateados entre aplicaciones emparejadas. Las A P Is pueden desarrollarse para cualquier plataforma y sistema operativo o para todos estos sistemas al mismo tiempo. También desde hace unos años se vienen desarrollando como forma de acceder a servicios web. Ejemplo de estas son: Google Search, Flickr, Amazon, Facebook Connect, Google Maps, Del.icio.us.. 1.12 C onclusiones parciales Realizar un análisis de los servicios serán consumidos, juega un rol esencial al selecciona cuales sitios se seleccionarán para extraer información que pueda ser de interés a la mayor cantidad de usuarios posible. Conocer además los diferentes tipos de aplicaciones y sus formas de desarrollo nos permite implementar una aplicación acorde a los requisitos que se necesitan. Al realizar un análisis de los servicios existentes en la red de la UCLV se determinó que muchos de los sitios utilizan como vía de intercambio de información el R SS, aunque existen algunos que pueden ser accedidos a través de A P Is.. 31.

(41) CAPÍTULO 2 Análisis, diseño e implementación de la herramienta. C A P ÍTU LO 2: A nálisis, diseño e im plem entación de la herram ienta En este capítulo se describen las diferentes funcionalidades de la herramienta, así como el software desarrollado, presentando algunos diagramas creados durante las fases de análisis y diseño. Además, se describe el funcionamiento de la misma.. 2.1 R equisitos y análisis En esta fase se analizan las peticiones o requerimientos de las personas o entidad para la cual se desarrolla el servicio móvil “Cliente”. El propósito de los mismos es definir las características del mundo o entorno de la aplicación. Se realizan tres tareas: obtener requerimientos, clasificar los requerimientos y personalizar el servicio (Mantilla et al., 2014). Para obtener requerim ientos se sugiere hacer una serie de entrevistas al cliente, para que manifieste los síntomas del problema o necesidades que se pretenden solucionar con las tecnologías móviles, o simplemente, para que señale las características que debe tener la aplicación. Una vez obtenidos los requerimientos se procede a clasificar los requerim ientos. Dichos requerimientos se pueden clasificar en entorno, m undo, funcionales y no funcionales. El entorno se refiere a todo lo que rodea al servicio. Por ejemplo, las características técnicas del dispositivo móvil del cliente, el sistema operativo subyacente (móvil y servidores), la tecnología utilizada para la transferencia de información, el Sistema Manejador de Base de Datos, Data Base Management System (D B M S), si se requiere, el formato de archivos y, otros módulos tecnológicos utilizados para el servicio. 32.

(42) CAPÍTULO 2 Análisis, diseño e implementación de la herramienta. El m undo es la forma cómo interactúan el usuario y la aplicación. Aquí se encuentran los requerimientos de la Interfaz Gráfica de Usuario o Graphical User Interface (G U I), la forma en que el software va a generar los datos de salida, el formato de los datos y los demás requerimientos que involucren la comunicación hombre-máquina, considerando la gama tecnológica de los teléfonos móviles de los usuarios a la que va dirigida el servicio. Los requerim ientos funcionales son todos aquellos que demandan una función dentro del sistema. Se deben definir claramente cada una de las tareas que debe realizar la aplicación. Los requerim ientos no funcionales son la estabilidad, la portabilidad, el rendimiento, el tiempo de salida al mercado y, el costo, entre otros. Adicionalmente se deben analizar aspectos de la cotidianidad del cliente como preferencias, costumbres y particularidades del usuario, con el propósito de garantizar la aceptación del servicio (Mantilla et al., 2014). 2.1.1 Requisitos funcionales -. Registrarse en la aplicación.. -. Consultar la información de la red.. -. Consultar información del usuario.. -. Agregar tareas usando del calendario.. -. Navegar por diferentes sitios de la red... 2.1.2 Requisitos no funcionales -. Smartphone o Tablet con sistema operativo Android 4.03 – Jellybean o superior. 33.

(43) CAPÍTULO 2 Análisis, diseño e implementación de la herramienta. -. El almacenamiento requerido para instalar la aplicación es menor de 5 MB, aunque puede aumentar según la información extraída de los servicios de la red y la caché de navegación.. 2.1.3 Diagrama de casos de uso Los casos de uso son una técnica que se basa en escenarios para la obtención de requerimientos que se introdujeron por primera vez en el método Objetory (Jacobson et al., 1997). Actualmente se han convertido en una característica fundamental de la notación U M L, la cual se utiliza para describir modelos de sistemas orientados a objetos. En su forma más simple un caso de uso identifica el tipo de interacción y los actores involucrados. Algunas veces existe confusión sobre si un caso de uso es un escenario o, como sugiere Fowler, un caso de uso encierra un conjunto de escenarios, y cada uno de estos es un hilo único a través del caso de uso (Fowler and Scott, 1999).. Los casos de uso identifican las interacciones particulares con el sistema. Pueden ser documentadas con texto o vinculadas a modelos U M L que desarrollan el escenario en más detalle. (Sommerville, 2005). 34.

(44) CAPÍTULO 2 Análisis, diseño e implementación de la herramienta. Figura 2.1: Casos de uso del sistema. Como se muestra en la Figura 2.1, el usuario pasa por un proceso de registro la primera vez que ejecuta la aplicación, aunque la información originada en ese momento puede ser modificada más adelante. Al consultar información de la red el sistema se conecta de forma automática a los servicios pertinentes y realiza la extracción de la información más reciente publicada en estos, una vez obtenida la información el sistema detecta si se describe algún evento y dispondrá a decisión del usuario si desea programarlo como una tarea o no. El usuario puede programar las tareas que el sistema detectó para agregarlas al calendario por defecto del Smartphone o Tablet y el propio sistema se encargará de notificar cuando estos eventos estén por ocurrir. El usuario será capaz de consultar el estado de navegación en internet desde la red de la UCLV ya que el sistema utilizará los 35.

(45) CAPÍTULO 2 Análisis, diseño e implementación de la herramienta. datos obtenidos del registro para hacer la petición al servicio encargado de esto y mostrarla al usuario. Una vez registrado puede modificar los datos ingresados en primer lugar en caso de errores u otros motivos. Además, también podrá opinar sobre que piensa acerca de la aplicación mediante comentarios, para así contribuir al mejoramiento de la misma (feedback). 2.1.4 Diagrama de paquetes Un diagrama de paquetes muestra cómo un sistema está dividido en agrupaciones lógicas mostrando las dependencias entre esas agrupaciones. Se puede decir que existe dependencia entre varios paquetes cuando un elemento de un paquete requiere de otro elemento que pertenece a un paquete distinto (Sommerville, 2005). En la Figura 2.2 se muestran los paquetes involucrados en el desarrollo de la aplicación.. Figura 2.2: Diagrama de paquetes de UCLVLink. 36.

(46) CAPÍTULO 2 Análisis, diseño e implementación de la herramienta. 2.1.6 Diagrama de actividades Los diagramas de actividades, permiten una representación del orden en que se ejecutan las actividades correspondientes a diversos elementos productivos (personas, máquinas, entre otros). El estudio de este tipo de diagramas, podrá dirigirnos hacia una programación más adecuada de todo los elementos, y con ello lograr que se reduzcan los tiempos muertos o, que se puedan eliminar operaciones redundantes (Quesada et al., 1996). En la figura 2.3 se muestra como se realiza el proceso de consultar información en la app UCLVLink.. 37.

(47) CAPÍTULO 2 Análisis, diseño e implementación de la herramienta. Figura 2.3: Diagrama de actividades para el caso de uso “Consultar información”.. El caso de uso consultar inform ación inicia cuando el usuario va a obtener información nueva de los distintos servicios de la red, el sistema notifica al usuario del comienzo de la actividad de extracción de datos. El sistema verifica que se está conectado a la red de la UCLV y muestra el estado de esta conexión. En caso de estar desconectado se verifica si existen datos almacenados previamente, en caso negativo, el sistema informa que no existe contenido para mostrar. En caso positivo,. 38.

(48) CAPÍTULO 2 Análisis, diseño e implementación de la herramienta. se utilizan estos datos para mostrar la información existente, notificando al usuario que la misma, puede ser obsoleta. En caso de estar conectado a la red de la UCLV se hará la solicitud a cada uno de los sitios para una vez extraída la información realizar todo el procesamiento de la misma y mostrarla al usuario, mientras el sistema hace persistente estos datos, actualizando la información anteriormente guardada con la nueva o creando por primera vez los medios de almacenamiento.. 2.2 D iseño e im plem entación En la actualidad, en cualquier lugar del mundo los que desarrollan aplicaciones informáticas centran su atención en dos aspectos fundamentales: cómo lograr construir mejores aplicaciones en menos tiempo, y cómo utilizar mayor cantidad de estándares en el diseño de las aplicaciones que permitan mayor reutilización del código y mejores mantenimientos de los sistemas desarrollados. Teniendo en cuenta el creciente uso de la programación orientada a objetos en la concepción e implementación de este tipo de aplicaciones, y la gran actualidad que tiene el uso de patrones internacionalmente aceptados (González and Romero, 2012). Para desarrollar una aplicación en Android se utiliza el patrón M odelo V ista C ontrolador (M V C ), este modelo surge con el objetivo de reducir el esfuerzo de programación necesario en la implementación de sistemas múltiples y sincronizados de los mismos datos, a partir de estandarizar el diseño de las aplicaciones. El patrón M V C es un paradigma que divide las partes que conforman una aplicación en el Modelo, las Vistas y los Controladores, permitiendo la implementación por separado de cada elemento, 39.

(49) CAPÍTULO 2 Análisis, diseño e implementación de la herramienta. garantizando así la actualización y mantenimiento del software de forma sencilla y en un reducido espacio de tiempo. A partir del uso de frameworks basados en el patrón M V C se puede lograr una mejor organización del trabajo y mayor especialización de los desarrolladores y diseñadores (González and Romero, 2012). 2.2.1 Arquitectura del Sistema El diseño modular permite a los diseñadores y a los desarrolladores trabajar conjuntamente y hacer cambios en una parte de la aplicación sin que las demás se vean afectadas. Desde el punto de vista del usuario, todo comienza en el controlador. Según Catalani, este modelo de arquitectura presenta varias ventajas (Catalani, 2007): -. Separación clara entre los componentes de un programa; lo cual permite su implementación por separado.. -. Interfaz de Programación de Aplicaciones A P I (Application Programming Interface) muy bien definida; cualquiera que use el A P I, podrá reemplazar el Modelo, la Vista o el Controlador, sin aparente dificultad.. -. Conexión entre el Modelo y sus Vistas dinámicas; se produce en tiempo de ejecución.. Al desarrollar una aplicación para dispositivos móviles utilizando Android Studio, el M odelo queda conformado por el conjunto de clases que se utilizan para almacenar la información manejada por la aplicación. La V ista está integrada por las clases que representan las pantallas que muestran información al usuario, en el caso de programación para Android estas están definidas por archivos X M L que son los encargados de generar una interfaz gráfica. Como C ontrolador están las clases en Java asociadas con las vistas. 40.

Referencias

Documento similar

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

En este proyecto se crea una aplicación para móviles que trata de ser una versión simple y original de un videojuego para tabletas y smartphones con el sistema operativo Android,

[4] TechTarget, “Mobile endpoint security: What enterprise infosec pros must know now.”

Para dar solución al problema antes descrito se plantea como objetivo general: Desarrollar una aplicación para dispositivos móviles con sistema operativo Android, que

 Se ha desarrollado una aplicación que permite gestionar emplazamientos creados por el usuario, representar un perfil junto con la primera zona de Fresnel en

Una de las partes más importantes en una aplicación de realidad aumentada, es acceder a la cámara del dispositivo para posteriormente poder mezclar esta imagen con los

Desarrollo de una aplicación de cálculo de mapas de visibilidad radioeléctricos para dispositivos móviles móvil con sistema operativo

Como una consecuencia de la operación aislada en que se encontraban las redes de sensores en el pasado, los fabricantes desarrollaron protocolos especializados y acordes con