Download Desarrollo de Aplicaciones Móviles
Document related concepts
no text concepts found
Transcript
Desarrollo de Aplicaciones Móviles Java Java es la base para prácticamente todos los tipos de aplicaciones de red, además del estándar global para desarrollar y distribuir aplicaciones móviles y embebidas, juegos, contenido basado en web y software de empresa. Con más de 9 millones de desarrolladores en todo el mundo, Java le permite desarrollar, implementar y utilizar de forma eficaz interesantes aplicaciones y servicios. Desde portátiles hasta centros de datos, desde consolas para juegos hasta súper computadoras, desde teléfonos móviles hasta Internet, Java está en todas partes. El 97% de los escritorios empresariales ejecutan Java El 89% de los escritorios (o computadoras) en Estados Unidos ejecutan Java 9 millones de desarrolladores de Java en todo el mundo La primera opción para los desarrolladores La primera plataforma de desarrollo 3 mil millones de teléfonos móviles ejecutan Java El 100% de los reproductores de Blu-ray incluyen Java 5 mil millones de Java Cards en uso 125 millones de dispositivos de televisión ejecutan Java 5 de los 5 principales fabricantes de equipos originales utilizan Java ME ¿Por qué los desarrolladores de software eligen Java? Java ha sido probado, ajustado, ampliado y probado por toda una comunidad de desarrolladores, arquitectos de aplicaciones y entusiastas de Java. Java está diseñado para permitir el desarrollo de aplicaciones portátiles de elevado rendimiento para el más amplio rango de plataformas informáticas posible. Al poner a disposición de todo el mundo aplicaciones en entornos heterogéneos, las empresas pueden proporcionar más servicios y mejorar la productividad, las comunicaciones y colaboración del usuario final y reducir drásticamente el costo de propiedad tanto para aplicaciones de usuario como de empresa. Java se ha convertido en un valor impagable para los desarrolladores, ya que les permite: Escribir software en una plataforma y ejecutarla virtualmente en otra Crear programas que se puedan ejecutar en un explorador y acceder a servicios Web disponibles Desarrollar aplicaciones de servidor para foros en línea, almacenes, encuestas, procesamiento de formularios HTML y mucho más Combinar aplicaciones o servicios que utilizan el lenguaje Java para crear aplicaciones o servicios con un gran nivel de personalización Escribir aplicaciones potentes y eficaces para teléfonos móviles, procesadores remotos, microcontroladores, módulos inalámbricos, sensores, gateways, productos de consumo y prácticamente cualquier otro dispositivo electrónico. Mtra. Carolina Galaviz Inzunza CBTIS 37 Página 1 Desarrollo de Aplicaciones Móviles Java 2 Micro Edition (J2ME) Plataforma que ofrece un entorno flexible y sólido para aplicaciones que se ejecutan en dispositivos móviles e integrados: teléfonos móviles, TDT, reproductores Blu-ray, dispositivos multimedia digitales, módulos M2M, impresoras y mucho más. La tecnología Java ME se creó originalmente para paliar las limitaciones asociadas a la creación de aplicaciones para pequeños dispositivos. Con este fin Oracle ha definido los fundamentos de la tecnología Java ME para adaptarse a entornos limitados y hacer posible la creación de aplicaciones Java que se ejecuten en pequeños dispositivos con memoria, visualización y potencia limitadas. La expansión de las computadoras personales la década pasada, permitió que la mayoría de las personas tuvieran acceso a una computadora, tanto en sus hogares, oficinas, cyber cafés, bibliotecas, etc. Cada vez las computadoras adquieren mayor capacidad y potencia, sin embargo en los últimos años la venta de dispositivos móviles como tabletas y celulares rebaso esta cifra. Según la empresa especializada International Data Corp (IDC), el mercado de teléfonos inteligentes creció un 40% en 2013 y es probable que alcance los 1,7 millones anuales hacia 2017. Por otro lado, la venta mundial de tabletas ascendió en 2013 a 217 millones de unidades, un 50,6% más que en el 2012. Vemos que la evolución se centra en fabricar aparatos más pequeños, dotándoles de habilidad de comunicación y potencia de cálculo. Independientemente del tipo de aparato, les requerimos que más o menos nos den las mismas prestaciones en cualquier momento. Pero eso es un problema para los desarrolladores, porque se les pide lo mismo, pero en sitios más pequeños cada vez. Hasta hace poco, la programación de estos dispositivos se hacía en código máquina o en ensamblador. La razón básica era que se disponía de entornos de ejecución muy restringidos, por lo que el uso de lenguajes de programación de alto nivel era impracticable. Esto implicaba el hecho de tener que desarrollar completamente a medida, es decir, específicamente para el dispositivo, con el consiguiente esfuerzo y lentitud en los desarrollos. El lenguaje de programación Java permite escribir un programa una vez y poder ejecutarlo en multitud de ordenadores, con diferentes plataformas sin tener que compilarlo de nuevo. Esa es una gran ventaja y una característica muy deseable en el entorno de los pequeños dispositivos, por lo que se ha exportado esa filosofía a estos aparatos. Así, mediante J2ME se podrán escribir aplicaciones para una gran variedad de dispositivos diferentes. Pero... ¿por qué Java para programar dispositivos móviles? Existe una razón fundamental para elegir este lenguaje para desarrollar nuestras aplicaciones en estos dispositivos especiales: Java nos da la posibilidad de escribir una vez el programa y Mtra. Carolina Galaviz Inzunza CBTIS 37 Página 2 Desarrollo de Aplicaciones Móviles poder ejecutarlo en cualquier tipo de plataforma sin tener que recompilarlo de nuevo (Write Once, Run Anywhere (WORA) - Escríbelo una vez y ejecútalo en cualquier lugar). Esta independencia lo convierte en un firme candidato. Otra razón es que en muchos casos es la única alternativa que dispone el programador, pues varios fabricantes han optado únicamente por él para desarrollar aplicaciones. Pero también hay otras razones que aporta Java: Extensión dinámica: la habilidad de un programa Java para descargar código en tiempo de ejecución, yendo a buscar nuevos ficheros de clases sustituyendo las ya existentes o simplemente añadiéndolos a las aplicaciones. Seguridad: Java ofrece un entorno de ejecución seguro para programas con acceso a red. La máquina virtual de Java lleva a cabo una verificación estricta del código antes de la ejecución, asegurando que éste no trata de saltarse las protecciones impuesta por el lenguaje, utilizar punteros que accedan directamente a memoria o usar el objeto equivocado. Portabilidad: cada dispositivo dispone de un hardware con características peculiares que hace difícil encontrar un conjunto de bibliotecas que permitan desarrollar programas más o menos independientes del soporte físico. La máquina virtual de Java asegura esta portabilidad. Fiabilidad: teniendo en cuenta que algunos de los tipos de dispositivos que deben realizar tareas críticas, las aplicaciones que las implementan no deben fallar, ni tampoco ponerse fácilmente en manos de hackers. En ese sentido, Java es un lenguaje seguro, suministrando esa fiabilidad buscada. Para tal fin, requiere la obligación de la estructuración del código en paquetes, fuertes verificaciones de compilación y ejecución (fuerte tipado, comprobación de límites en vectores, pruebas de desbordamiento de pila,...), dispone un mecanismo eficiente para la gestión de excepciones y de memoria (elimina los punteros, asignación dinámica de memoria transparente al usuario y su posterior liberación -de esta manera se evitan errores). Código reutilizable: debido a la orientación a objetos de Java, se consiguen características como la facilidad en el desarrollo, la reutilización del código y la mayor calidad del código. Así, Sun Microsystems volvió a los orígenes de Java y desarrolló una edición de la versión de Java 2: J2ME (Java 2 Micro Edition). Y una razón fundamental puede ser las características especiales que tiene estos dispositivos: un ejemplo es la cantidad de memoria que reservará un dispositivo de este tipo para una aplicación Java, las clases y la máquina virtual, ya que suele ser apenas pocos cientos de kilobytes. Con este espacio, las dos ediciones anteriores no son apropiadas, por lo que esta empresa pensó en la posibilidad de desarrollar una nueva totalmente adaptada a las características específicas de los dispositivos pequeños. Mtra. Carolina Galaviz Inzunza CBTIS 37 Página 3 Desarrollo de Aplicaciones Móviles Descripción de J2ME - Origen y evolución Java comenzó su andadura como lenguaje de programación a mediados de la década de los noventa del siglo pasado. Originalmente fue concebido como un lenguaje para poder programar un amplio rango de aparatos electrónicos con capacidades de conectividad a partir de otro dispositivo del tipo de un asistente personal digital. El espíritu inicial era realizar una adaptación de C++, tomando lo mejor de él y a la vez mejorándolo y que se adecuara a las restrictivas condiciones ofrecidas por los chips de los aparatos a programar, teniendo como principales objetivos la fiabilidad y la seguridad. Además, se intentaba que una vez que fuera desarrollado el programa, éste se pudiera ejecutar en varios tipos diferentes de aparatos sin necesidad de volver a compilarlo. Con la llegada de Internet y los primeros navegadores para la World Wide Web, los desarrolladores de Java se dieron cuenta de su aplicabilidad a este nuevo medio, naciendo así la tecnología de los applets de Java, que permite, de nuevo, poder desarrollar una aplicación una única vez y ejecutarla tantas veces cómo se desee en un conjunto heterogéneo de ordenadores conectados a la Red. Así, en Mayo de 1995 Sun lanzó oficialmente Java al mercado con el Java Development Kit (JDK) en su versión 1.02., es decir, un entorno de desarrollo y una implementación del lenguaje Java. Este JDK fue ampliado y mejorado (se subsanaron algunos problemas), dando lugar a la versión 1.1. De ahí se pasó a la siguiente, el SDK 1.2 (Software Development Kit), la cual, entre otras muchas características, incluía una colección nueva de clases y elementos para el diseño de interfaces gráficos. Surgieron seguidamente la versión, SDK 1.3 y, finalmente y actual, el SDK 1.4. Cabe destacar en este punto la distinción entre la plataforma Java y las diferentes versiones JDK y SDK. El primero se refiere al lenguaje abstracto y a la especificación del mismo. Los segundos son, como ya hemos dicho, implementaciones que ha realizado Sun, así como un conjunto de herramientas que ofrece esta empresa para facilitar el desarrollo de aplicaciones. Y finalmente, ya en 1999, se vuelve a cerrar el ciclo que lleva a Sun a desarrollar una versión de Java especialmente diseñada para dispositivos móviles: Java 2 Micro Edition, basada en una máquina virtual llamada KVM. Este primera versión sólo contenía una única máquina virtual y un único API (inicialmente diseñados para Palm OS), hecho que puso de manifiesto la insuficiencia de esta solución para la gran variedad de dispositivos diferentes. De esta forma, en el año 2000, nació la primera versión de una configuración, es decir, el Connected Limited Device Configuration (J2ME CLDC 1.0). Una configuración ofrece el API básico para programar dispositivos, aunque no aporta todas las clases necesarias para desarrollar una aplicación completa. Por tanto, la primera configuración no tenía las herramientas necesarias para permitir a los desarrolladores escribir programas para el dispositivo Palm. En julio de 2000 nació la primera implementación de un perfil, concretamente el llamado Mobile Information Device Profile (MIDP), aunque no estaba destinado a PDAs sino a Mtra. Carolina Galaviz Inzunza CBTIS 37 Página 4 Desarrollo de Aplicaciones Móviles teléfonos móviles y a paginadores. A partir de este primer perfil, J2ME fue considerablemente aceptado por la comunidad de desarrolladores de dispositivos móviles, expandiéndose a una gran velocidad hasta nuestros días. Mtra. Carolina Galaviz Inzunza CBTIS 37 Página 5