Tips para el Reto BlackBerry 10

El año pasado durante el Reto BlackBerry (enfocado a apps de PlayBook) escribí este post con algunos consejos para los participantes, varios de esos tips todavía son vigentes pero he decidido actualizar un poco el contenido de aquella ocasión para compartir varios tips con los participantes del Reto BlackBerry 10.

banner_bb10

Antes que otra cosa un pequeño disclaimer: “los consejos que aquí daré son en base de mi experiencia personal y en ningún momento deben de ser interpretados como parte de las reglas y/o generalidades del reto

Ideas para sus Apps

Esta es una primera parte donde veo que algunos de los que se han inscrito al reto están algo atorados, básicamente si en la descripción de tu aplicación dice algo como “juego para niños” o “aplicación HTML5” bien podrías buscar un poco de inspiración en alguno de los servicios de insights como Distimo o en la lista de aplicaciones en CrackBerry y revisar algún hueco donde haga sentido ofrecer una aplicación o de igual forma validar en cuáles de las categorías hay competencia para ofrecer algún diferenciador en nuestras aplicaciones.

Pasando esta primera etapa seguramente tendremos una o dos ideas que creamos puedan valer la pena y ahora tendríamos que validar la posibilidad de realizarlas. Por ejemplo supongamos que quiero realizar un juego de acción 3D en primera persona pero en mi vida he realizado nada con 3D, lo más seguro si no tienes experiencia ni tampoco una gran cantidad de horas para dedicarle a tu proyecto para ese aprendizaje será que esta gran idea termine archivada en un cajón o quede incompleta.

También me he topado con argumento como “podré realizar mi aplicación si BlackBerry tiene las APIs disponibles” mmm eso quiere decir que si no hay APIs no hay aplicación? Creo que en ese tipo de casos donde dependemos de factores externos podemos rápidamente tomar una decisión si revisamos la documentación disponible

A continuación una lista de las tecnologías soportadas durante el reto y su documentación correspondiente:

Antes de que pregunten sobre tecnologías como Unity, PhoneGap, Marmalade o Appcelerator por favor sigan leyendo😉

Para agregar un último comentario sobre el tema de Ideas, veo a pocos desarrolladores sacando provecho de APIs existentes para crear clientes móviles o integrar dichos servicios dentro de sus aplicaciones. Claros ejemplos podemos encontralos en Klout, Mailchimp, Eventbrite, Twilio, Soundcloud, Foursquare, Run Keeper, Flickr, Google Analytics, por citar algunas.

Built For BlackBerry

Lo diré en una sencilla oración, solamente podrán quedar finalistas aquellas aplicaciones que cubran con los criterios de designación de Built For BlackBerry. Así mismo las aplicaciones que sean aceptadas dentro del programa Built For BlackBerry recibirán un dispositivo Z10 o Q10. Sorry no más PlayBooks para todos xD

bfb_badge

Y a todo esto ¿Qué es Built For BlackBerry?
La mejor fuente de información la tienen en la documentación de BlackBerry Developer y también pueden obtener información interesante del blog de desarrollo.

Lo que tratamos de hacer con ese programa es que los desarrolladores conozcan las diferentes opciones dentro de la plataforma BlackBerry 10 para brindar la mejor experiencia de usuario en sus aplicaciones. Hay opciones muy interesantes desde un punto de vista de apps como integración de BBM, NFC, Analytics, etc. y para Juegos también con opciones como Scoreloop, Gamepad API, manejo de sensores, etc.

Un punto interesante dentro del programa BFB es la localización (no confundir con geolocalización) de las apps, que se refiere a la disponibilidad de sus aplicaciones en diferentes idiomas. Y en cuanto a este punto solo recomendarles que piensen al menos en tener soporte para español e inglés o si tienen que elegir entre un solo idioma utilicen el inglés ya que son ello sus aplicaciones tendrán un alcance global.

Diseña una Mejor UI

El aspecto de diseño tendrá un mayor peso en esta ocasión a la hora de evaluar las aplicaciones, sobretodo porque parte de los requerimentos de las aplicaciones BFB (Built For BlackBerry) es que deben de cumplir con las mejores prácticas expuestas en los guidelines de la plataforma.

ui_guidelines_landing_page

Una buena recomendación que puedo darles es que aprovechen los recursos de Wireframe Prototyping del sitio de BlackBerry Developer para plasmar sus interfaces porque siempre será más económico en términos de recursos hacer un cambio en Power Point que ya en el código fuente de la aplicación.

Inclusive con estos recursos pueden probar fácilmente criterios de Usabilidad usando los principios de Steve Krug o el autor de su preferencia. También es muy recomendable que puedan revisar alguna bibliografía sobre el tema de diseño para móviles, Mobile First de ALA o este post de The Next Web pueden ser un buen comienzo.

Si no eres diseñador y no te gusta lidiar con tipografías, colores, formas y demás cuestiones de diseño puedes hacer equipo con un diseñador(a) seguramente el resultado final será mucho más interesante que solamente componentes regados por ahí sin ninguna previa consideración visual y además que aprenderás mucho del proceso.

Ya lo hablaremos en la siguiente sección pero hay tecnologías que facilitan más que otras el cumplir rápidamente con los guidelines de UI en BlackBerry 10 y eso es algo que también hay que tener en cuenta.

Tecnologías Soportadas

Esto sin duda es otro punto importante. De las opciones de desarrollo disponibles en la plataforma de BlackBerry 10 deberemos elegir entre: Native SDK, HTML5 con WebWorks y Adobe AIR. Cada una tiene sus propias ventajas y desventajas al momento de desarrollar, sin embargo para poder elegir una dependeremos de varios factores, tales como el tipo de aplicación, la plataforma donde tengamos más experiencia, el tiempo disponible, si trabajamos con un equipo de diseño que conozca de desarrollo, etc.

Native SDK (Cascades y/o C/C++)

Sin lugar a dudas es la opción que ofrece mejor desempeño para nuestras aplicaciones y donde encontraremos el mejor soporte a nivel hardware y de ciertos servicios internos.

Cascades

Una primera cosa que debemos entender es que Cascades es el framework que ofrece soporte para los diferentes componentes y que para desarrollar una aplicación no siempre tenemos que utilizar C/C++ inclusive podríamos basar una aplicación de Cascades solamente mediante QML (notación muy parecida a JSON) y Javascript, así es Javascript! y como dicen por ahí para muestra un botón…


Button {
id: button1
text: "Simple button"
imageSource: "asset:///image.png"
onClicked {
//do something
}
}

Como podrán ver es un código bastante simple para darse una idea del poder de Cascades en combinación con QML y Javascript. Pero también es posible intercambiar información entre QML y C/C++ para realizar tareas que requieran mayor integración con el hardware o un soporte de otro tipo de librerías/proyectos basados en C/C++

En el caso de juegos no obstante usar Cascades para la UI sería algo un tanto fuera de foco, para gente haciendo juegos y que quieran irse por la opción de nativo hay una serie de interesantes recursos tanto del lado de engines e inclusive proyectos de código abierto como Cocos 2D-x, Box2D, gameplay, etc.

HTML5 WebWorks

Después de lo que acabamos de contar sobre Cascades pareciera que no hay mejor opción para desarrollar una aplicación en BlackBerry 10 pero debo decir que WebWorks también tiene cosas muy interesantes!

Si la aplicación que están pensando tiene integración con algún servicio social, la mayoría de estos servicios tienen APIs basadas en REST o inclusive Javascript que pueden facilitarnos mucho las cosas al momento de estar desarrollando.

HTML5 Logo

También es un hecho que HTML5 vive un momentum donde podremos encontrar un sinfín de recursos en la red desde tutoriales, ejemplos y foros de ayuda por lo que la parte de soporte será más fácil resolverla.

Hay que tener en cuenta que WebWorks es un framework de desarrollo HTML5 que les permitirá tener acceso a diferentes características nativas dentro de sus aplicaciones pero que para cumplir con los guidelines de diseño de BlackBerry 10 vamos a tener que aprovechar alguna librería para el diseño de la UI como BBUI.js, el tema de BB10 en Sencha Touch o desarrollar nuestros propio framework que cumpla con los guidelines de UI de BlackBerry 10.

Para el caso de juegos en HTML5 van a tener que explotar al máximo las diferentes técnicas de optimización para cuidar al máximo los FPS, les dejo un link a una presentación de HTML5 Gaming en BlackBerry 10.

Adobe AIR

En BlackBerry 10 existe un buen soporte para Adobe AIR e inclusive en el último release de 10.2 ya existe la posibilidad de aprovechar Stage3D mediante frameworks como Starling para tener un desempeño sobresaliente. Más info sobre este soporte la pueden encontrar aquí.

adobe_air

Como parte de las últimas revisiones que se le han hecho a la plataforma Flash van a encontrar buenos recursos en el sitio de Adobe donde herramientas como Scout o el mismo Gaming SDK seguramente sacarán lo mejor de sus proyectos en ActionScript 3.0 si saben aprovecharlas.

Por supuesto que del lado de las aplicaciones con AIR también tendremos alternativas interesantes mediante el uso de los componentes de QNX, recientemente se publico el BlackBerry 10 Experience framework que es una muy buena base para que aplicaciones AIR puedan cumplir con la designación de Built For BlackBerry.

Casos Especiales (Unity, PhoneGap, etc.)

He visto que varios desarrolladores están inquietos por utilizar diferentes tecnologías dado que BlackBerry 10 ofrece bastantes opciones a los desarrolladores. Prácticamente podríamos decir que todas son opciones válidas para participar en el Reto BlackBerry 10 a excepción apps corriendo sobre el Runtime de Android y aplicaciones creadas con el BlackBerry App Generator.

gamepad_sample_app

Para el caso de Unity es una gran tecnología para desarrollar juegos que ya ofrece soporte directo para la plataforma BlackBerry 10 pero si les aconsejaría revisar las diferentes opciones de licenciamiento ya que sin problemas pueden construir usando la versión gratuita pero con la Pro que tiene un costo de $1,500 USD tendrán mayor soporte para filtros de audio, IK, reproducción de video, efectos de render-to-texture, etc.

Sucede un caso similar con Marmalade pero hay una oferta muy interesante donde pueden tener acceso a una licencia de 499USD cuando su juego resulte aprobado en BlackBerry World.

Si deseas usar PhoneGap puedes hacerlo, solamente decirte que con el modelo de desarrollo actual de PhoneGap 3.0 terminarás usando WebWorks ya que parte de la arquitectura de Cordova (la base de PhoneGap) adopta un modelo de plugins provenientes de WebWorks. Creo que el principal beneficio que le vería a usar este modelo de desarrollo es si estás pensando migrar tu aplicación HTML5 a otras plataformas pero no olvides tener en cuenta que para el tema de vistas aún así vas a tener que dar soporte a los guidelines de UI de BlackBerry 10.

El mismo caso anterior sucede con Appcelerator que justamente acaba de incluir un soporte mejorado de BlackBerry 10 pero dado que Appcelerator se enfoca bastante en cross-platform hay ciertos componentes tendríamos que adaptarlos para cumplir con los guidelines de UI de BlackBerry 10 al igual que context menus y gestos tipo peek que tendríamos que implementar por nuestra cuenta para así poder ser considerados con la designación de Built For BlackBerry.

Hay que hacer una mención especial a NME que poco a poco a ido evolucionando hacia OpenFL proyecto lidereado por Josua Granick quién fuera evangelista de desarrollo de BlackBerry 10, sobra decir que el soporte para nuestra plataforma es muy bueno. Si quieren desarrollar juegos con una tecnología bastante flexible para el manejo de gráficos y además de código abierto esta puede ser una interesante opción.

Para terminar con la mayoría de las opciones hay otros RADs además del BlackBerry App Generator como Icenium, Constructor, Codiqa, etc. que no dudo facilitarían la creación de ciertos prototipos funcionales de la aplicación pero a la hora de querer integrar servicios u otras características de la plataforma BlackBerry 10 para lograr la designación BFB podrían generar bastantes dolores de cabeza.

Comentarios Finales

No olviden tener en cuenta las fechas para desarrollar sus aplicaciones y que para la selección de finalistas a principios de Noviembre sus apps ya deberían de estar publicadas en BlackBerry World y aprobadas como Built For BlackBerry. La aprobación en BlackBerry World tarda de 2 a 3 días pero para BFB podrían llegar a ser hasta 2 semanas ya que son varios los filtros de revisión. No echen en saco roto este consejo.

Si tienen alguna otra inquietud sobre el reto no olviden consultarme por twitter @edgarparada

Les deseo el mejor de los éxitos en el Reto BlackBerry 10!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s