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