Programacion Blackberry
Programacion Blackberry
ejecutar tareas en simultneo multithreading, por lo que se est expuesto a la degradacin del rendimiento general del equipo. Tanto el diseo de clases y mtodos, como la implementacin de estos, es fundamental para la mejor optimizacin del procesador. Existen herramientas profiler que permiten analizar la utilizacin del CPU y encontrar la mejor implementacin para cada rutina, llegando a optimizarlas lo mximo posible. Se mostrarn ejemplos y explicar su uso en otro captulo. - Medios de conexin Los dispositivos mviles cuentan con la posibilidad de estar todo el tiempo conectados, tanto a internet como a dispositivos perifricos. Existen distintos mtodos para lograrlo, como la conexin celular, WiFi y BlueTooth. Es importante no abusar del uso de este recurso, ya que este representa el factor de mayor consumo de procesador y memoria. En la etapa de diseo de una aplicacin, es necesario considerar el mnimo uso de las distintas conexiones en los distintos escenarios. - Batera Los dispositivos mviles cuentan con una fuente de energa muy limitada. El mal uso de los recursos (pantalla, memoria, procesador y conexiones) tendrn un impacto directo en el consumo de batera, generando una baja considerable en el rendimiento de las aplicaciones y la experiencia de los usuarios.
Desarrollo JAVA
Las aplicaciones Java se caracterizan por residir y correr dentro de los dispositivos mviles. Las aplicaciones para BlackBerry se escriben basadas en Java ME.
Existe la posibilidad de implementar aplicaciones Standalone, que no requieren de conexin a internet, y por lo contrario, contienen el contenido y lgica completos dentro de estas. Ademas, es posible desarrollar aplicaciones que soporten funciones wireless.
Desarrollo HTML5
En primer lugar, una aplicacin de BlackBerry WebWorks es una aplicacin independiente, lo que significa que no tiene que apuntar a un servidor remoto para cargar una pgina web o aplicacin (a menos que se requiera). En este caso, la aplicacin reside en el dispositivo BlackBerry. Bsicamente se trata de un conjunto de recursos que se encapsulan en un contenedor que puede ser visto por un "explorador sin cabeza" - el motor WebKit.
En segundo lugar, usted puede tomar ventaja de las tecnologas web estndar, como CSS, HTML5 y JavaScript para construir su aplicacin.
Tambin puede tomar ventaja de los populares frameworks para mviles, tales como Sencha, PhoneGap, jQuery, o Dojo. Esto permite crear aplicaciones ms rpido porque puede volver a utilizar las aplicaciones existentes y los recursos.
Lo ms importante es que se puede agregar funcionalidad nativa a una aplicacin HTML5 utilizando la plataforma BlackBerry WebWorks.
Se puede obtener acceso completo a la API de la plataforma a travs de wrappers de JavaScript, que puede utilizar para extender la aplicacin y tomar ventaja de las caractersticas especficas de BlackBerry (por ejemplo, BBM, PIM, los medios de comunicacin, hardware), ofreciendo una experiencia integrada para el usuario de BlackBerry .
El SDK provee APIs que extienden ActionScript 3.0 que permiten desarrollar aplicaciones que se asemejan a las desarrolladas para BlackBerry Tablets. Estas API proporcionan algunos de los componentes de interfaz de usuario nicos y skins predefinidos, as como de los listeners para los eventos que son especficos para el sistema operativo BlackBerry Tablet.
Usando la API de Flash, la aplicacin tambin puede acceder a las funciones que son exclusivas de los dispositivos mviles, tales como el acelermetro y la informacin de geolocalizacin.
Desarrollo en C++
BlackBerry Native SDK para Tablet OS es un conjunto de herramientas de desarrollo que le permite aprovechar el poder de la BlackBerry PlayBook.
Combinando la velocidad y estabilidad del sistema operativo en tiempo real QNX Neutrino con el entorno de desarrollo basado en Eclipse Momentics QNX, el SDK nativo est diseado para desarrolladores que necesitan tener acceso completo a todo lo que la BlackBerry PlayBook tiene para ofrecer.
El SDK nativo le proporciona un conjunto APIs de C y C++ que expone todas las herramientas necesarias para crear aplicaciones potentes y dinmicas.
API nativo del sistema para la pantalla, el navegador, ecualizador, el acelermetro, la red, etc
Un entorno de compilacin que le permite personalizar la configuracin del proyecto, del compilador y las opciones de deploy
Una manera de implementar sus aplicaciones a los dispositivos BlackBerry PlayBook reales o al simulador de PlayBook incluido
Un depurador integrado que le permite examinar cada lnea de cdigo, mientas es ejecutada
Flexibilidad
Determina cuan permisivo es el lenguaje para poder crear cualquier estilo, apariencia y funcionabilidad. Siendo altamente flexibles aquellos lenguajes que prcticamente no presentan lmites ni requisitos que determinen la apariencia y comportamiento, dejando as en manos de los desarrolladores y diseadores ambas cuestiones. Aun as, se recomienda seguir las buenas prcticas de programacin, estndares y consideraciones de diseo para evitar complicaciones y facilitar el uso.
Utilizacin de estndares
Determina cuan respetados son los estndares de programacin por parte del resto de la comunidad. Tomando en cuenta desde los que determinan como se escribe el cdigo (forma de nombrar clases, variables, mtodos, utilizacin de llaves y ubicacin de las mismas) hasta las que indican las mejores maneras de proceder para realizar determinadas procesos.
Rendimiento
Define que tan eficiente o efectivo es el cdigo producido, siendo la efectividad la capacidad de alcanzar el efecto deseado y la eficiencia la capacidad de alcanzar dicho efecto con la menor cantidad de recursos posibles. Aun as, el rendimiento est altamente ligado a la habilidad y conocimientos del programador, ya que a pesar de que C++ tiene una alta performance, si se codifica mal o bien no se tiene cuidado se puede generar cdigo mucho menos eficiente que el producido en otros lenguajes.
Nota: En Air se puede utilizar las ANE (Adobe Native Extensions) y acceder a libreras compiladas con el NDK.
Conexin a internet
Significa que no requieren una conexin a internet para poder ejecutarse ni para obtener sus recursos.
Almacenamiento local
Define la capacidad del leguaje para acceder a los dispositivos de almacenamiento interno del dispositivo (memoria interna y memoria SD).
Nota: Si bien HTML5 no puede utilizar la memoria interna del dispositivo, se puede usar lo que se denomina Storage (Local storage, session storage y database storage).
Portabilidad
Define la facilidad para portar la aplicacin a otras plataformas, determinada por las modificaciones que se requieran. Muchas veces se requiere crear distintas versiones de la aplicacin orientadas a soportar las caractersticas propias de cada dispositivo.
Nota:Las aplicaciones desarrolladas en C++ no pueden ser portadas a smartphones, debido a que estos no soportan aplicaciones desarrolladas en este lenguaje.
Push notifications
Describe la posibilidad de recibir un request originado del lado del servidor. Cuando haya contenido nuevo, el servidor tiene la capacidad de empujar esta informacin a los dispositivos.
Nota:Tanto HTML5 como Air tienen una limitacin dada por same origin policy, en el caso de HTML5 esto se puede resolver utilizando JSONP y en Air se puede solucionar mediante el uso de un archivo de cross domain ubicado en el dominio.
Escalabilidad
Indica la capacidad de ampliacin o extensin de las aplicaciones sin perder calidad ni funcionabilidad.
Disponibilidad de ejemplos
Define la facilidad as como tambin la cantidad de ejemplos disponibles en internet.
Transportes de red
Objetivos
El objetivo principal de este captulo es cubrir y explicar las diferentes formas que un dispositivo BlackBerry puede utilizar para conectarse a la red. Se explicarn las principales caractersticas y beneficios de cada mtodo y cundo y cmo utilizarlos.
TCP Celular
- El transporte TCP celular crea una conexin a Internet a travs de la puerta de enlace de Internet de un Operador. Este mtodo crea el tipo ms directo de conexin que utiliza la radio celular. - La mayora de los Operadores configuran los dispositivos BlackBerry del usuario para usar la puerta de enlace de Internet del proveedor. Sin embargo, cuando el usuario se mueve a otra red, este debe configurar el dispositivo manualmente para usar el gateway de Internet en la red del host. - Si la aplicacin utiliza este transporte, debera probarlo con cada Operador. - Generalmente este transporte genera un costo adicional al usuario, ya que no est contemplado dentro del servicio de datos BlackBerry.
WAP
- El transporte WAP crea una conexin a travs de la puerta de enlace WAP del Operador. Se admiten WAP 1.0, 1.2 y 2.0. - Para soportar este transporte, el usuario o el Operador debe configurar los parmetros de conexin WAP en el dispositivo. Como resultado, este transporte puede que no se admitido en todas las redes inalmbricas o con todos los planes de datos. - Si la aplicacin utiliza este transporte, debera probarlo para cada Operador que puede utilizar la aplicacin. - Para utilizar WAP 2.0, debe recuperar el identificador de conexin del libro de servicio. - Generalmente este transporte genera un costo adicional al usuario, ya que no est contemplado dentro del servicio de datos BlackBerry.
TCP WiFi
- El transporte WiFi crea una conexin a Internet o a redes privadas, como las de una organizacin o un hogar. Cuando la radio WiFi est activada, el usuario del dispositivo BlackBerry o una aplicacin puede configurar el dispositivo para conectarse a Internet utilizando este transporte. - Si aplica, el dispositivo puede enviar automticamente datos a un BlackBerry Enterprise Server o BlackBerry Internet Service a travs de una conexin WiFi. Por ejemplo, si el dispositivo est conectado a una red WiFi y un perfil VPN est configurado para la organizacin del usuario, el dispositivo intenta conectarse al BlackBerry Enterprise Server a travs de la VPN mediante la conexin WiFi porque la transmisin de datos a travs de Wi-Fi es generalmente ms barata que otros transportes. Este comportamiento se conoce como el enrutamiento de menor costo.
- El transporte BlackBerry Internet Service crea una conexin a Internet a travs de la infraestructura de BlackBerry. Los datos que se envan y reciben utilizando este transporte son comprimidos y optimizados para la transmisin en conexiones inalmbricas. - Las aplicaciones que utilizan el transporte BlackBerry Internet Service automticamente se benefician por el enrutamiento de menor costo. El dispositivo se conecta a una red WiFi automticamente, si est disponible.
- El transporte de BlackBerry MDS permite a un dispositivo BlackBerry conectarse a su asociado BlackBerry Enterprise Server a travs de la infraestructura de BlackBerry o utilizando una conexin WiFi. - Los datos que se envan y reciben utilizando este transporte son comprimidos y optimizados para la transmisin en conexiones inalmbricas. - Es posible acceder a destinos privados dentro de la red corporativa.
Tecnologa PUSH
Objetivos
El objetivo principal de este captulo es definir la tecnologa Push y describir sus beneficios. Se describir cmo funcionan las aplicaciones push server-side y se proporcionarn ejemplos de usos en aplicaciones BlackBerry.
El paradigma PUSH
Una de las caractersticas principales de la solucin BlackBerry es la tecnologa PUSH. El principal objetivo a cumplir es entregar los datos de forma proactiva, haciendo que estos se encuentren listos en el dispositivo cuando el usuario los necesita. Para ello, los datos se entregan tan pronto como estn disponibles, por ejemplo cuando se produjo un evento de inters en el servidor. Las aplicaciones estn siempre escuchando la llegada de datos sin necesidad de que el usuario intervenga para recibirlos. Este se entera de la llegada de nueva informacin mediante una alerta (reproducir una meloda, vibrar, parpadear, ventana emergente, icono) cuando han sido entregados todos los datos, procesados y listos para ver, provocando la apariencia de cero latencia. La aplicacin no se encuentra solicitando actualizaciones constantemente, sino que simplemente espera a que esta llegue por medio de una solicitud del servidor. La experiencia del usuario es que el evento acaba de ocurrir, automticamente, en tiempo real y de forma fiable.
Beneficios
Los beneficios principales de la implementacin de aplicaciones que utilizan la tecnologa PUSH son: - Instantaneidad El usuario recibe la informacin en el momento que se produce el evento o actualizacin. - Eficiencia La informacin solo se enva cuando est disponible, evitando que el cliente este solicitando actualizaciones constantemente. - Latencia reducida Se reduce el impacto en la red debido a que la aplicacin no se encuentra todo el tiempo solicitando informacin. - Duracin de batera prolongada El hecho de no estar constante e innecesariamente solicitando actualizaciones tiene un impacto positivo en la duracin de la batera. La informacin es recibida y procesada solo cuando est disponible y el usuario no se preocupa por solicitar actualizaciones.
Flujo bsico
1. Proveedor de contenido enva la peticin Push 2. Servicio BlackBerry devuelve respuesta, declarando la aceptacin o rechazo del mensaje 3. Servicio BlackBerry empuja los datos a los dispositivos asignados en el puerto especifico 4. Dispositivo devuelve respuesta al servicio BlackBerry 6. Proveedor de contenidos devuelve notificacin de lectura al servicio BlackBerry