Unidad 2 Alumnos

25
FUNDAMENTOS DE PROGRAMACIÓN DE DISPOSITIVOS MÓVILES Unidad 2. Arquitecturas y entorno de desarrollo Ing. María Elizabeth Bautista Padilla

description

unidad 2 de dispositivos moviles

Transcript of Unidad 2 Alumnos

Diapositiva 1

Fundamentos de Programacin de Dispositivos MvilesUnidad 2. Arquitecturas y entorno de desarrolloIng. Mara Elizabeth Bautista Padilla

Desarrollo de aplicaciones para dispositivos mvilesLas aplicaciones mviles no son aplicaciones de escritorio adaptadas para dispositivos con pantallas pequeas, son por el contrario, aplicaciones diferentes por varias razones:

La capacidad para comunicarse desde cualquier lugar cambia la interaccin del usuario con la aplicacin.

La interfaz de usuario para una pantalla y teclados pequeos difiere de forma significativa de la interfaz de una aplicacin diseada para una pc o una porttil. Desarrollo de aplicaciones para dispositivos mvilesLos tipos de canales de comunicacin son diferentes, los dispositivos mviles incorporan capacidades de voz, mensajera, informacin de geolocalizacin y vdeo conferencia (en algunos telfonos). Las mejores aplicaciones para mviles integran estas capacidades para optimizar la interaccin del usuario con los datos.

La naturaleza de las redes inalmbricas, aunque las redes ofrecen capacidades de datos de banda ancha, estas pueden variar, dependiendo de la calidad de la seal y de la disponibilidad de conexin de la red, en particular si se trata de usuarios mviles.

2.1 Arquitecturas de desarrollo de aplicaciones mvilesPara el diseo de aplicaciones para dispositivos mviles se consideran cuatro arquitecturas principales:Clientes nativosClientes JMEClientes basados en webClientes basados en middlewareClientes nativosLas aplicaciones se escriben en lenguajes de bajo nivel como C o ensamblador y compilados en un lenguaje de mquina para un grupo especfico de procesadores y configuraciones hardware, y luego se ejecuta como cdigo nativo en esos dispositivos mviles. El principal beneficio de este enfoque es la capacidad para utilizar al completo todas las caractersticas de un hardware determinado. Este enfoque se debe utilizar si el dispositivo mvil tiene un hardware especializado al que solo se puede acceder utilizando una API de C.Clientes nativosOtro beneficio de desarrollar en clientes nativos es que se pueden ajustar los bucles, la gestin de memoria y el acceso a datos para lograr un alto nivel de rendimiento de la aplicacin. Sin embargo esta potencia y control tiene un precio. Los desarrollos se hacen para dispositivos que tienen hardware similar, por tanto es necesario mantener diferentes versiones del cdigo fuente para todos los clientes.Clientes nativosAdems, los lenguajes de bajo nivel no son tan productivos y por tanto la cantidad de cdigo que hay que escribir para que la aplicacin realice una determinada operacin es bastante grande. Por ejemplo, si se utiliza C, las asignaciones de memoria se deben hacer manualmente, lo cual aade no solo complejidad y lneas de cdigo, sino tambin la posibilidad de errores.

Resumiendo, se puede utilizar este enfoque cuando la utilizacin completa del hardware y el alto desempeo son primordiales. Cuando hay que dar soporte a un gran nmero de clientes mviles o cuando el tiempo de desarrollo es clave, este enfoque no es la mejor opcin, a menos que sea la nica opcin.Clientes JMEPlataforma Java Micro Edicin: las aplicaciones se escriben en Java y se compilan para ejecutarse contra una mquina virtual Java (JVM), diseada especficamente para computadoras de mano y clientes mviles.

Este enfoque proporciona dos beneficios principales: tiempo de desarrollo rpido y la posibilidad de utilizar el mismo cdigo base en un gran nmero de dispositivos.Clientes JMELa cantidad de cdigo necesario escrito en Java es por lo general menor que si se escribe en un lenguaje de bajo nivel. Esto se debe a que la mquina virtual se encarga de manejar automticamente muchas de las operaciones tediosas, entre ellas el manejo de memoria. Esto significa que para realizar la misma operacin se necesitan pocas lneas de cdigo y menos errores. Adems, la JVM est disponible en varios dispositivos, por lo que la aplicacin cliente trabajar en diferentes dispositivos sin necesidad de mantener mltiples versiones.Clientes JMESin embargo, debido a las diferencias en las implementaciones, ser necesario probar la aplicacin sobre cada plataforma. Los principales inconvenientes de este enfoque son el desempeo y la flexibilidad. Si la aplicacin debe caber en un pequeo espacio de memoria o realizar operaciones que requieran mucha CPU, entonces Java no es adecuado. Adems, es posible que uno o ms dispositivos no tengan la JVM. Clientes basados en webSon similares a los clientes web estndar excepto porque se debe tener en cuenta el diseo de la pgina. Un cliente basado en web se ejecuta dentro del navegador web del dispositivo, desde el cual accede a la pgina que el servidor web enva utilizando las mismas facilidades que un cliente web comn.Clientes basados en webEl principal beneficio de este enfoque es que simplifica el mantenimiento del cliente independientemente de que las caractersticas de las versiones cambien. Sin embargo, las aplicaciones deben desarrollarse para que sean compatibles con el navegador del dispositivo. Clientes basados en webLos principales inconvenientes para un cliente basado en web que en el cliente web, el dispositivo requiere una conexin a un servidor web para que la aplicacin mvil se pueda ejecutar. Esto significa que si la aplicacin cliente necesita realizar trabajo fuera de lnea, que se puede procesar por lotes y enviar a los servidores centrales solo unas cuantas veces al da, el enfoque de cliente basado en la web no es la opcin adecuada.Clientes basados en webAdems, si la aplicacin requiere una interfaz de usuario dinmica o acceso a un hardware I/O (entrada/salida) especial, es necesario considerar una implementacin alternativa. En resumen, el cliente basado en web es una buena opcin si el cliente software tiene una interfaz de usuario simple, que puede mantener una conexin para realizar trabajo til.Clientes basados en middlewareSoftware que ayuda a una aplicacin a interactuar o comunicarse con otras aplicaciones, redes, hardware y/o sistemas operativos: el diseo de este tipo de aplicaciones utiliza un conjunto de herramientas y tiempos de ejecucin para abstraer la aplicacin y las tareas de adquisicin de datos lejos de cualquier dispositivo.Clientes basados en middlewareEn el enfoque midleware se crea una aplicacin utilizando un conjunto de herramientas de diseo para terceros, en un sistema operativo propietario. Adems controla aspectos como lo que se muestra en pantalla, los dilogos, los datos en el lado cliente, la gestin del estado de conexin del dispositivo y la gestin de los datos fuera de lnea.Clientes basados en middlewareEl enfoque midleware funciona mejor cuando la aplicacin necesita acceder y cambiar datos desde un servidor central. Por lo general, se puede gestionar y desplegar aplicaciones rpidamente. El inconveniente es el enfoque potencialmente estrecho de las capacidades y la incapacidad para utilizar funciones hardware especializadas sobre los dispositivos. Las plataformas midleware generan cdigo que no es adecuado para situaciones de alto rendimiento. 2.1 Arquitecturas de desarrollo de aplicaciones mvilesCada arquitectura tiene sus beneficios e inconvenientes que determinan qu enfoque de desarrollo encaja mejor con las necesidades de desarrollo. Si la aplicacin requiere un alto desempeo o un cdigo para funcionalidades especficas del hardware, una aplicacin nativa ser la mejor opcin. Si el cliente necesita ejecutarse sobre una amplia gama de dispositivos y manipulacin de datos fuera de lnea, el enfoque midleware es el mejor. Si es una aplicacin sencilla en la que la operacin puede depender del estado de conexin, entonces el cliente basado en web es una buena opcin. Finalmente, si la aplicacin requiere una interfaz de usuario especializada o un cdigo del lado cliente especializado, pero no requiere el poder de una aplicacin nativa, entonces, el enfoque JME es una buena opcin.2.2 Requerimientos de las aplicaciones de los dispositivos mvilesEl tamao de las pantallas y la iluminacin tambin son factores determinantes en el diseo de aplicaciones. No hay que olvidar que la mayora de los datos de entrada que proporciona el usuario son introducidos con una sola mano y en muchas ocasiones en movimiento. Por lo tanto, en la medida de lo posible se le debe facilitar al usuario la entrada de datos por pantalla, a travs de los botones de navegacin propios de cada dispositivo, de modo que pueda ir seleccionando y que no tenga que rellenar campos de texto, de esta forma podr realizar varias operaciones en poco tiempo.2.2 Requerimientos de las aplicaciones de los dispositivos mvilesLa distribucin de los elementos en la interfaz marca la diferencia, no solo en la forma en la que se presenta la informacin, sino tambin en cmo navega el usuario a travs de ella. Lo fundamental es ofrecer interfaces a travs de las cuales la entrada de los datos se realice de la forma ms intuitiva y natural. Una buena opcin es agrupar la informacin por funcionalidades o por jerarquas, de modo que el usuario acceda a la informacin que necesita en cada momento, sin tener que pasar por pantallas o informacin irrelevante para el tipo de operacin que desea realizar.2.2 Requerimientos de las aplicaciones de los dispositivos mvilesSi adems tenemos en cuenta que cada vez que accedemos desde nuestro telfono mvil a Internet estamos pagando una tarifa por cantidad de bytes descargados, es necesario que el envo y la recepcin de datos se realicen dentro de un tiempo de espera aceptable. Durante el proceso de envo y/o recepcin de datos, debemos mantener informado al usuario sobre el progreso de esta operacin y el tiempo estimado para la finalizacin de la misma. El tiempo de espera entre la peticin de los datos y el momento en el que empieza a llegar la respuesta es lo que se conoce como latencia. Hay que tener en cuenta que en el caso de aplicaciones para dispositivos mviles la latencia es mucho mayor que la de una aplicacin web normal.2.2 Requerimientos de las aplicaciones de los dispositivos mvilesTambin hay que tener presente que cuando se trata del desarrollo de aplicaciones para telfonos mviles, la funcin de telfono, tiene la prioridad ms alta. Por lo tanto, en el momento en el que se reciba una llamada, la aplicacin debe proporcionar la forma de mantener el estado en el que ha sido interrumpida, para volver a ella cuando la llamada termine y el usuario confirme que quiere volver al punto en el que se interrumpi su ejecucin.2.2 Requerimientos de las aplicaciones de los dispositivos mvilesEn cuanto a las conexiones, debemos tener presente que pueden fallar y de hecho es algo que sucede con relativa frecuencia, por ejemplo, por la falta de cobertura en determinadas reas. Esto implica que no podemos dar por sentado que tendremos el acceso a Internet garantizado y que podremos obtener los datos necesarios para la ejecucin de la aplicacin.2.2 Requerimientos de las aplicaciones de los dispositivos mvilesAunque el uso de emuladores es til para simular el comportamiento de la aplicacin, hay que tener presente que se ejecutan en equipos cuya capacidad de procesamiento es superior a la del dispositivo. Por lo cual, es muy recomendable probarla cuanto antes en el dispositivo para el cual ha sido diseada y as evitar comportamientos indeseados.2.2 Requerimientos de las aplicaciones de los dispositivos mvilesEl desarrollo de aplicaciones para dispositivos mviles requiere tener en cuenta las limitaciones que podemos encontrar a la hora de ejecutarlas. Estas limitaciones estn relacionadas, principalmente, con las caractersticas hardware y de conexin, asociadas a cada dispositivo mvil.

A pesar de que la capacidad de procesamiento y la memoria de los dispositivos mviles han ido mejorando con el paso del tiempo, las aplicaciones deben disearse evitando la sobrecarga de elementos multimedia, que exijan del dispositivo ciclos de procesamiento demasiado largos.