lunes, 11 de abril de 2011

Desarrollo para Blackberry ? o para todos los teléfonos Java...?

Cuando decidí crear aplicaciones para teléfonos me cuestione:  "para Blackberries o para todos ?".  Decidí que para todos, sería lo mejor:

Hay que cuestionarse:
  • si se me quema el Blackberry, no podré usar mi sistema de venta en línea hasta que me compre otro Blackberry ?
  • Podría en cambio adquirir un teléfono muy barato y continuar operando ?
  • Si contrato un vendedor, debo comprarle un BlackBerry para que venda mi producto en la calle 
Esas cosas hay que preguntárselas.

BlackBerry insiste en que hay muchos beneficios al desarrollar con su propia API, pero la verdad es que no es tan cierto, quizá si para acceder al Messenger u otros componentes propios del BlackBerry, como el canal de datos PIN.

De que hay que preocuparse para que nuestra aplicación corra en un Blackberry:

Una sola cosa:  -no tocar las API Firmadas (Signed) por RIM- sino nuestra aplicación fallará cuando queramos correrla en este dispositivo, ya que RIM controla el acceso a ellas con un sistema de pago de licencia: "Api Sign", es un mecanismo para evitar que cualquiera use las funciones de esta empresa, evitará código maligno y cosas similares, uno debe pagar unos 20us$ para poder obtener un "sign key" para entonces usarlo en nuestras aplicaciones creadas.  

Podemos hacer muchas cosas sin tocar esas API sensibles de BlackBerry, que según ellos nos permite una gran facilidad en muchas cosas, como por ejemplo la Persistencia de Datos.

Cuales API de RIM estan firmadas y provocaran un "Crash" de la aplicación cuando corra en Blackberry ?

Todo lo diga "net.rim" son api firmadas por RIM y requieren que paguemos para usarlas en un teléfono real, funcionarán en un emulador, pero no en la vida real.  Además, al usar una sola de estas funciones de RIM se causará que la aplicación no corra en ningún otro teléfono del mercado.

Cómo saber que cosas fallarán y cuales no.

Que hago yo:  voy al menú "acerca de..." del BlackBerry y presto atención a estos datos marcados en color:
BlackBerry™ 7130e
Dispositivo de bolsillo inalámbrico (CDMA)
v4.2.1.110 (Plataforma 2.3.0.24)
Kernel de cifrado v3.8.4.34
Configuración de MicroEdition: CLDC-1.1
Perfil de MicroEdition: MIDP-2.0
Versión MicroEdition JTWI: 1.0
Versión MicroEdition Media: 1.1
Versión MicroEdition PIM: 1.0
Versión del archivo MicroEdition: 1.0


CLDC, MIDP y JTWI son las versiones de las API de J2ME que este teléfono tiene incorporadas para dar soporte. Tendremos que buscar estas versiones de estas librerias y desarrollar para estas versiones o compatibles. Debemos usar solo las funciones de estas librerias en estas versiones, sino la aplicación fallará.

Para este caso de ejemplo, el cual es un screenshot de mi teléfono, uso para el desarrollo la versión 3.0 de J2ME SDK, disponible en:    J2ME SDK 3.0 WebSite Oficial

Persistencia de Datos sin usar código de RIM

Hay una solución: Floggy. Este Framework permite aplicar persistencia a nivel de J2ME sin tocar ninguna API sensible de BlackBerry.

En resumen...

Por esto y mucho mas decidí no usar el API de BlackBerry, sino usar J2ME puro, hasta donde pueda, y cuando realmente requiera hacer algo para un teléfono -específicamente BlackBerry- entonces pagaré, mientras...no doy un dolar.




No hay comentarios:

Publicar un comentario