Portando tu app de Android a BlackBerry 10

  4 mins read

Que Blackberry 10 incluya un runtime de Android 2.3.3 es toda una suerte para los desarrolladores que tenemos apps en el play store y para los propios usuarios de BB10 ya que van a poder disfrutar de mas apps a corto plazo. En este manual os ensenyamos como portar las apps de Android a BB.

Para portar una aplicacion veremos que no es ni siquiera necesario instalar el IDE de desarrollo casi todo se puede hacer desde la linea de comandos o desde las utilidades online que blackberry ha creado para la ocasion, pero, como todo es mejor instalar el IDE, probar la aplicacion tranquilamente, hacer cambios si fueran necesarios y subirla al appworld de BB. Empezaremos por ver si nuestra app es compatible con la tool que ha preparado RIM. Como veis usa Java, asi que darle permiso al navegador.

Instalando el entorno

Presuponemos que tenemos instalado Eclipse con la SDK de Android 2.3.3 y el plugin ADT.

Instalamos el plugin de blackberry en nuestro eclipse, haciendo clic en eclipse help | Install new software | Add y anyadimos la siguiente url: http://bdsc.webapps.blackberry.com/android/downloads/eclipseplugin/

Tenemos este proceso descrito en la documentacion oficial.

Ahora que tenemos el plugin instalado instalaremos el simulador, lo podemos encontrar aqui bajo el nombre de “BlackBerry 10 Dev Alpha Simulator for Mac OS X”, bajaros ese y no la version de tablets. Os recomiendo que bajeis tambien las “Command-line tools”, es probable que las necesitemos mas adelante.

Cuando lo descarguemos lo instalamos y veremos que… Sorpresa! Necesitamos instalar VMWare para poder arrancar el emulador, asi que instalamos VMWare y hacemos clic en la imagen .vmwarevm. Si no sabeis donde lo habeis instalado, podeis encontrarlo en: /Users//Documents/Virtual Machines.localized/BlackBerry10Simulator-BB10_0_09-2318
Ah! Por cierto, ya he intentado hacerlo funcionar en VirtualBox sin éxito, se queda colgado al intentar arrancar la pantalla.

Con el emulador arrancado vamos a Settings | Security | Development mode y lo dejamos marcado. Con esto tenemos el entorno instalado ahora falta pedir unas keys de desarrollo a RIM.

Certificados, keys y demas mierders

Para poder firmar y arrancar en el simulador una app necesitamos unas keys y un certificado de desarrollo, empecemos pidiendo las keys aqui. Anotad el PIN bien, puesto que luego lo necesitaremos. Tardan un poco en llegar asi que si tenemos ganas de un cafe, es el momento 😉

Ya tenemos las keys, yuhu! Como vemos nos han llegado 2 correos, uno con client-RDK-XXXX.csj y otro client-PBDT-XXXX.csj Las copiamos en un lugar seguro.

Ahora tenemos 2 caminos, hacerlo facil y graficamente, con eclipse o hacerlo a lo dificil con la consola, os indico las 2 formas:

a) Soy un poco nena, usare el IDE

Buena eleccion, es lo mas sencillo. Vamos a preferencias | blackberry | blackberry tools SDK | barsigner. Le damos a register y rellenamos los campos:

csj register

  • Ruta al CSJ RDK que nos han enviado por correo
  • Ruta al CSJ PBDT que nos han enviado por correo
  • El pin que hemos escrito antes al pedir los CSJ
  • La contraseña de CSK que queremos usar (ANOTADLA BIEN!)
  • Dejamos marcado “Autommatically generate developer certificate”

Con esto ya tenemos registrado el sistema. Sigue leyendo despues de la explicación para machotes 🙂

b) Soy el mas macho de todos, lo hare con la consola.

He de decir que vas a llegar al mismo punto, pero, te indico el camino. Con las “Command line tools” que bajaste antes, ejecutamos:

./blackberry-signer -csksetup -cskpass 

Ojo con esa pass, mas adelante la vamos a necesitar, es la pass de la keystore. Si tuvieramos algun problema deberiamos de ejecutar la opcion -cskdelete para borrar previas passwords instaladas.

./blackberry-signer -register -csjpin  -storepass   

Esto registra nuestro PC con estas keys. La ruta al CSK lo genera el primer comando y suele estar en: /Users/TU USUARIO/Library/Research In Motion/

./blackberry-keytool -genkeypair -keystore  -storepass  -dname "cn=" -alias 

Esto genera nuestro certificado de desarrollo y lo usaremos ahora para generar depurar nuestro programa en eclipse. Realmente podriamos seguir por consola para convertir el APK generado en .bar, subir los debug tokens al dispositivo, pero considero que ahora no tiene sentido seguir por aqui ya que lo que queremos es probar nuestr app antes de subirla. Hora de volver a eclipse!

Generando un token de debug y probando

Vamos a preferencias | blackberry | blackberry tools SDK | targets | ADD. Le ponemos un nombre descriptivo y le damos al boton de Auto detect, si tenemos nuestro simulador arrancado lo deberia encontrar sin problemas. Marcamos la ultima opcion “Create a debug token and upload to this device”. Aceptamos, si nos pide una contrasenya sera la del keystore (CSK passowrd) la introducimos y ya deberiamos de tenerlo. Ahora vamos a nuestor proyecto Android hacemos un click derecho y vamos a Blackberry Tools | Add blackberry nature to project, veremos que el icono del proyecto cambia y sale tambien el signo de BB en una esquina. Para ejecutarlo, click derecho en el proyecto | Run as | Blackberry Android launch. Eso es todo, deberia de salir en el emulador el proyecto ejecutado. Probar sobre todo el tema de navegaciones y menús.

Lo único que quedaría ahora es subirla al APPWorld de blackberry.

Posibles problemas y/o dudas (FAQ)

Q: Mi app usa servicios de google, Gapis, Google maps o similares…
A: Entonces no podremos portar este proyecto, primero debemos encontrar alternativas a esos servicios, para los mapas tenemos por ejemplo Open Street Maps, aunque en mi opinion esta un poco verde aun.

Q: Mi app es para 4.0 o mayores.
A: Solo las Apps que sean para 2.3.3 maximo pueden correr, porque usa tu app 4.0? Quiza puedas encontrar sustituos para que corra en 2.3.3, si es por actionbar, puedes usar usar actionbar sherlock etc…

Q: Tengo problemas al hacer “upload debug token”
A: Os voy a contar un secreto, esta parte es la que mas me costo, cuando ya todo lo tenia bien preparado se seguia resistiendo y se arreglo simplemente reiniciando el simulator de blackberry, con esto quiero decir que puede ser que haya algun problema de comunicaciones todo esto es Alpha y puede tener problemas o quiza te hayas dejado algo por hacer, vuelve a leer el manual.

Written by:

Christian Panadero Martinez

  • Alefran

    Muy buen tutorial!!!!!
    He seguido todos los pasos. Ahora subiendo la app en el APP World ha tenido problemas con el .bar.
    Como es que se genera? Ví un .bar que se encuentra en la carpeta dist del proyecto pero con ese no va… 🙁

  • Hola Alefran,

    Posiblemente tu .bar este mal firmado. Te recomiendo que borres el contenido de la carpetea dist de tu proyecto, hagas click derecho sobre el proyecto > Blackberry Tools > Sign for appworld
    Eso genera el bar otra vez en la carpeta dist.

  • Alefran

    Gracias!!!
    Probaré nuevamente.
    Estimo que ya con ese .bar, no habría problema en subirlo al App World (release para BB 10 y PlayBook).

    Muchas gracias nuevamante!
    Saludos!

  • Efectivamente, con el .bar generado despues de firmar ya puedes subirlo al appworld.

    Saludos!

  • Diego

    ¡Buen tutorial!
    ¿Sabéis si funciona AdMob? ¿Y está autorizado?

    Gracias

  • Hola Diego,
    Admob funciona sobre la app portada y Admob no se ha pronunciado al respecto así que supongo que no tiene que haber problema. Yo he enviado MineRush a validar al appworld con Admob ya os contare 🙂

  • Diego

    Muchas gracias por la respuesta.

    Sí, por favor, coméntanos que te dice BlackBerry al respecto.

    Gracias!

  • Franco

    Hola que tal PaNaVTEC,
    Otra vez yo..he hecho ya todo y tengo el .bar
    He generado todo con las claves firmadas pero desde BB me han comentado lo siguiente:
    “the signature on the code signing request did not verify”

    Que podría estar pasando?
    Cuando hago doble click en el .cod esta todo “signed” en verde…
    Esto me ha sucedido haciendo una app exclusiva para BB pero modificando el xml del build se ha solucionado..

    Muchas gracias!!
    Saludos!

  • Bueno, mine Rush para BB10 ha sido aprobado con admob para los que preguntaban 😉

    • Diego

      Muchas gracias por avisar. Mucha suerte con la app!