miércoles, 4 de septiembre de 2013

MULTIMEDIA Y PROGRAMACION WEB PARA MOVILES

DISPOSITIVOS MOVILES
Si pensamos en algún dispositivo móvil lo primero que pensamos es en un teléfono móvil en la actualidad son varios los dispositivos móviles este es el caso de los pc portátiles este hecho da lugar a una importante problemática para quien programa tales dispositivos ya que cada uno tiene sus características particulares cada uno dispone de una memoria determinada o ha de soportar un lenguaje y un entorno especifico

PLATAFORMAS Y LENGUAJES SOPORTADOS

Cada una de las plataformas tiene sus particularidades, no sólo en cuanto al manejo del 
dispositivo por el usuario, sino también a la hora de desarrollar aplicaciones para las mismas. 
No será lo mismo programar una aplicación para Windows Mobile que para Symbian, entre otras cosas porque no todas las plataformas soportan los mismos lenguajes de programación


DISPOCITIVO MOVIL (DM)

Un dispositivo móvil (DM) se puede definir como aquel que disfruta de autonomía de movimiento y esta libre de cableado
La principal característica es su gran capacidad de comunicación


WINDOWS CE

Windowsl CE Net v 4’2 
Ofrece varias mejoras sobre la versión actual del sistema operativo Windows CE Net 4.1 

Windows móvil 2003
Este sistema pretende vender como una versión muy aligerada de Windows, pero en realidad no tiene mucho que ver con él.


Windows Mobile de Microsoft Word
La entrada de datos se realiza a través de la pantalla, que es táctil, y gracias al sistema de reconocimiento de escritura que implementan, que permite trabajar de una forma bastante natural y rápida en la actualidad casi todos los desarrollos para Windows Mobile se realizan en C++ o en .Net, basándose en el Compact Framework 
El principal problema a la hora de desarrollar aplicaciones para estos dispositivos es el precio de las herramientas de desarrollo.



SYMBIAN
Si los PocketPC están basados en un sistema operativo de Microsoft llamado Windows Mobile, la gran mayoría de los teléfonos móviles funcionan gracias a un sistema operativo llamado Symbian. Hace unos años, a estos teléfonos se les llamaba con el nombre genérico de Smartphone.

Symbian es un sistema operativo escrito en C++, por lo que presenta muy bajo consumo de recursos del dispositivo, a la vez que se ejecuta con gran rapidez.

El sistema operativo Symbian se presenta en varios "sabores". En concreto, Nokia divide sus dispositivos Symbian en tres familias, que se llaman respectivamente Serie 40, Serie 60 y Serie 80. 



La Serie 40 es la que agrupa a los teléfonos Symbian con pantallas más pequeñas (en general, hasta de 240x320 píxeles), y tiene ciertas limitaciones sobre las otras series, sobre todo en lo referente a la cantidad de recursos del teléfono que puede poner a disposición de las aplicaciones que se ejecuten sobre él. 

La Serie 60 es la más extendida, y es donde suelen estar los teléfonos de gama media y alta de Nokia, a los que muchas veces se hace referencia como teléfonos multimedia. Con alguna excepción, suelen tener pantallas más grandes que los de la serie 40, y suelen ser teléfonos específicamente optimizados para ejecutar aplicaciones J2ME.


PRODUCTOS DE PALM OS

Diferentes ejemplos de dispositivos móviles que utilizan el sistema operativo de Palm OS: 
Handspring Treo 90
Palm Tungsten w
Handspring Treo 600
Handspring Treo 300


LAS TRES GRANDES POSIBILIDADES TECNOLÓGICAS A LA HORA DE DESARROLLAR APLICACIONES PARA TELÉFONOS MOVILE

C++
Es el lenguaje de programación por excelencia para aplicaciones que necesitan extraer el máximo del terminal, tanto en capacidad de procesamiento y por lo tanto en velocidad de ejecución, como en utilizar las posibilidades de hardware que ofrezca el dispositivo.
El ejemplo más claro de aplicación candidata a ser realizada en C++ sería un juego de conducción, con capacidades multiusuario a través de bluetooth. Es ideal, por tanto, para aplicaciones críticas (como por ejemplo, sistemas operativos para teléfonos como Symbian). 
C++ es un lenguaje de programación, de los que se llaman orientados a objetos, que en realidad es una evolución del lenguaje más utilizado en la historia de la informática: el lenguaje C.
Desarrollar en C++ es bastante complicado para casi cualquier programador. Hacen falta, por tanto, programadores de un perfil muy especializado o muy alto, y el lenguaje en sí no hace posible el desarrollo de aplicaciones con gran rapidez, con lo que los proyectos desarrollados en C++ suelen ser más caros que aquellos producidos con otros lenguajes

J2ME
es un subconjunto del lenguaje Java. Es un lenguaje de programación desarrollado a principios de los años noventa por James Gosling y algunos de sus colegas de Sun Microsystems. Las principales características de este lenguaje son, por un lado, que es de los llamados orientados a objetos, lo que supuestamente permite desarrollar aplicaciones más complejas con mayor facilidad, y por otro, que fue diseñado para ser independiente de la plataforma, lo que supuso una gran novedad en su momento. Sin embargo, el caso de J2ME es especial, ya que es de todo, menos independiente de la plataforma. 
Hay dos configuraciones, que dividen la plataforma en dos grandes grupos de dispositivos

El mapa con las configuraciones y perfiles J2ME. ¿Lioso?


Por un lado, los dispositivos más potentes, son los que soportan la Configuración CDC.
Durante mucho tiempo en este grupo sólo cabían las PDAs (dispositivos como la Palm, por ejemplo), dadas las exigencias de memoria y tamaño de pantalla para cumplir con la especificación.

La otra configuración, la llamada CLDC, es la que agrupaba a los dispositivos con menor capacidad de procesamiento, y es donde siempre han estado los móviles.

Actualmente, Nokia, el mayor fabricante de teléfonos móviles, está en proceso de portar toda su gama de teléfonos Symbian a la Configuración CDC, un indicador más de cómo el hardware va mejorando progresivamente en prestaciones.

Dentro de cada una de las configuraciones, no todos los dispositivos soportan las mismas funcionalidades. Éstas está divididas en los llamados Perfiles (o en su nombre original,Profiles). Los dos perfiles de la CLDC son el MIDP 1.0 y el MIDP 2.0. Como podría suponerse, el perfil MIDP 2.0 incorpora librerías que no aparecen en los teléfonos MIDP 1.0, con las que se pueden implementar aplicaciones que accedan a la cámara, que puedan capturar imágenes,
vídeos, que accedan a servicios web, etc.
Los dispositivos que se adhieran a la especificación de cada uno de esos perfiles tienen que dar soporte a una serie de funcionalidades obligatoriamente. Esas funcionalidades vienen empaquetadas en lo que se llama especificaciones. Algunas de esas especificaciones son obligatorias para poder decir que el dispositivo soporta uno u otro de los perfiles, mientras que otras son opcionales y pueden o no ser implementadas por el fabricante. Por ejemplo, un teléfono que implemente gráficos 3D deberá hacerlo soportando la especificación jsr-184. 

En todo caso J2ME es la plataforma de desarrollo para móviles más extendida, porque no está limitada sólo a los teléfonos con sistema Symbian, porque durante mucho tiempo ha sido la única disponible para los desarrolladores, y porque algunos años en los que no ha sido la única, programar en J2ME era la única forma de implementar muchas funcionalidades. De hecho, aún hoy, sigue siendo la plataforma más extendida, con mayor número de desarrolladores, y con mayor número de aplicaciones disponibles.

Flash Lite 
es un adaptación de la plataforma Flash para dispositivos móviles. Actualmente coexisten varias versiones, Flash Lite 1.1, Flash Lite 2.0 y Flash Lite 2.0 
Flash Lite 1.1, es la versión más extendida, sobre todo en Asia, y basada en la versión 4 de player de flash. Y es la más extendida por dos razones primordiales; en primer lugar porque es la que más tiempo lleva disponible, y en segundo lugar porque es la que necesita de hardware menos potente para su ejecución. 



iPhone OS
Rompe también con las líneas maestras en cuanto a desarrollo se refiere, marcadas por sus antecesores. 

El sistema operativo utilizado es una versión aligerada de Mac OS X, el sistema detrás de los ordenadores de Apple, y por tanto, las herramientas de desarrollo que se deben utilizar son las mismas que para trabajar en escritorio.
Objective-C 

El lenguaje que debe utilizarse para desarrollar aplicaciones nativas para iPhone OS es Objective-C, un superset de C (una especie de C enriquecido), de forma que el desarrollador se apoya en un extenso Framework orientado a objetos, escalable y altamente modular, llamado Cocoa. 

En realidad, Cocoa es una colección de frameworks, que proporcionan todas las piezas necesarias para construir una aplicación: desde elementos de interfaz hasta gestión de tráfico de red.

Android 
es un sistema operativo para teléfonos, basado en el núcleo de Linux, y que, aunque disponible para cualquier fabricante como open-source, actualmente es el motor de los dispositivos comercializados por Google (en el momento de escribir este texto, sólo existe un dispositivo, el conocido en Asia como HTC Dream, y en el resto del mundo como G1). 

Android también proporciona al desarrollador un completo Framework Java, un intento de normalización de la selva de especificaciones en que se ha convertido J2ME, que al igual que en el caso del iPhone, está orientado a facilitar y hacer más rápido el desarrollo, por un lado, y a proporcionar un “look and feel” específico y reconocible de la plataforma. También se proporciona una tienda de aplicaciones, donde se pueden vender desarrollos comerciales

Herramientas de desarrollo

Las herramientas de desarrollo a utilizar dependerán de la plataforma para la que hayas 
planteado tu aplicación. Si tu aplicación debe funcionar en dispositivos Windows Mobile, deberás utilizar el Visual Studio de Microsoft, un entorno de desarrollo bastante caro, como ya hemos dicho, pero que es casi sin discusión el mejor de todos los disponibles, y para el que vas a contar con más documentación de la que puedas llegar a absorver conocimientos técnicos bastante elevados antes de comenzar el desarrollo, o bien apoyándote en el .NET Compact Framework, que es un subconjunto del .NET Framework, pudiendo programar en C#. 
Para dispositivos Symbian, la opción más extendida es, como hemos visto, J2ME. Las herramientas de desarrollo para J2ME no están tan refinadas como las de Windows Mobile, pero aún así, hay un entorno específico, el NetBeans Mobility Pack, y plugins y add-ons para los IDES java más populares: Eclipse e IDEA

Los tres entornos, una vez instalados los plugin correspondientes, permiten desarrollar, empaquetar y testear aplicaciones J2ME en los emuladores incorporados. Pero nunca debe olvidarse que los emuladores no son el dispositivo real, sino, como su nombre indica, emulaciones del dispositivo que están corriendo en una máquina que es varios órdenes de magnitud más rápida. Por tanto, lo que en un emulador funciona bien, puede que en el dispositivo no funcione tan bien. 
Por eso, siempre que se desarrolle para un dispositivo móvil, pero sobre todo si se está haciendo en J2ME o Flash Lite, hay que probar los programas en el dispositivo según se están desarrollando. Y cuanto antes se empiece a probar, mejor, de esa forma los posibles problemas aflorarán antes, y serán más fáciles de resolver. 
En el caso del iPhone será necesario un Mac con procesador Intel (no existe SDK para Windows ni para Linux), y aprender un lenguaje y una metodología de desarrollo completamente nueva y, a día de hoy, no excesivamente documentada.


Consideraciones sobre el desarrollo. Limitaciones

  • Hay dos limitaciones fundamentales a que tener en cuenta a la hora de desarrollar una aplicación para ser ejecutada en un dispositivo móvil, y son las particularidades de hardware y las de la conexión. 
  • Aunque los dispositivos cada vez tienen más memoria y más capacidad de proceso, siguen siendo hermanos pequeños de los ordenadores de escritorio. Por tanto, debe tenerse especial cuidado con no realizar demasiadas animaciones, ni gastar ciclos de proceso en procedimientos que no sean estrictamente necesarios. La pantalla es pequeña, mal iluminada, y se suele mirar en movimiento, como ya hemos visto con anterioridad, por lo que podemos aprovechar eso en nuestro beneficio.
  • Por ello la entrada de datos debe ser lo más sencilla posible. En el caso de las PDAs, se realizará escribiendo en la pantalla con un lápiz, para que sea el dispositivo el que realice el reconocimiento de la escritura. Aunque ya no hace falta escribir de forma especial, como ocurría con el sistema de reconocimiento de escritura de las primeras Pilot, llamado Graffiti, para que el dispositivo entienda la letra, tampoco se puede ser demasiado descuidado con la caligrafía. En los móviles, sin embargo, la entrada de datos se va a hacer, lo más probablemente, con una sola mano, y en condiciones no muy apropiadas. El teclado, en la mayoría de los casos, tiene sólo 10 teclas útiles, que se van a utilizar en movimiento. 
  • En cualquiera de los dos casos, hay que intentar, por tanto, formatear las pantallas de entrada de datos para que se pueda realizar el mayor número de operaciones o bien punteando encima de botones, en el caso de las PDAs, o bien navegando con el joystick y confirmando con alguno de los botones principales en el caso de los teléfonos; evitando en lo posible que el usuario tenga que dirigirse al teclado.Siempre es preferible que haya, por ejemplo,un desplegable en el que elegir entre “Calle”, “Vía”, “Avenida” y “Paseo”, a que haya un campo de texto en el que se tenga que escribir, letra a letra, “Calle”.Además, no hay que olvidar que los interfaces de los distintos dispositivos son desesperantemente heterogéneos. Además, ni el tamaño de las pantallas, ni el tamaño ni laubicación de las teclas ayuda a la hora de introducir datos por el usuario. Por eso, siempre hay que intentar desarrollar los interfaces de las aplicaciones de forma que no sean necesarias muchas pulsaciones de teclas, e intentar que, cuando sea necesario pulsar alguna tecla sea alguna de las softkeys, o teclas especiales. En el caso de los dispositivos móviles, más que en cualquier otro, menos es más.
  • Actualmente, el desarrollo para dispositivos móviles se puede dividir en dos categorías. Por un lado, el desarrollo web puro y duro (webs hechas para ser navegadas desde móviles), y por otro, la programación de aplicaciones para ser ejecutadas en el propio móvil. Actualmente hay varios portales de servicios basados en web que proporcionan interfaces específicos para ser navegados desde dispositivos móviles. Compra de entradas para espectáculos, consulta de callejeros, de mapas de carreteras, obtención de información sobre restaurantes o farmacias de la zona en la que se encuentra el usuario, son algunos de los servicios más extendidos.También se está trabajando bastante en aplicaciones que puedan servir como apoyo a personas con minusvalía, tanto visual como auditiva. Sistemas de localización, de reconocimiento óptico, sistemas de Sin embargo, pese al amplio abanico de funcionalidades de los dispositivos, pese a su enorme índice de penetración en el mercado, pese a las cantidades de dinero que se alrededor de las descargas de contenidos multimedia o del envío de SMS, aún no se ha producido el despegue definitivo del desarrollo de aplicación estraducción de y a Braille portátiles…

No hay comentarios:

Publicar un comentario