El desarrollo multiplataforma en los dispositivos móviles

Cada vez son más necesarias las aplicaciones móviles tanto en el mundo empresarial como en el sector del entretenimiento. A pesar de esta necesidad, a la hora de desarrollar aplicaciones móviles las empresas están teniendo que enfrentarse a los problemas de la segmentación de los dispositivos y les está obligando a desarrollar la misma aplicación varias veces en diferentes plataformas para cubrir una amplia cuota de mercado.

Esta duplicación de trabajo (normalmente android y iOS) hace que los costes de producción de aplicaciones móviles se disparen y que en algunos casos el desarrollo de las aplicaciones no sea rentable. En estos casos siempre se tiende a desarrollar una única versión de la app y perder una cuota de potenciales usuarios importante con tal de reducir gastos.

Para solucionar estos problemas poco a poco van apareciendo los frameworks de desarrollo de aplicaciones móviles multiplataforma. Con estas herramientas normalmente se desarrolla la aplicación en un lenguaje de programación diferente al que se utilizaría nativamente en las diferentes plataformas y con este código en lo que podríamos llamar un “lenguaje neutro” se llevan a cabo compilaciones específicas sobre cada una de las plataformas móviles. De esta forma, las empresas desarrollan el código una única vez y lo pueden distribuir sin costes adicionales de programación en otras plataformas móviles.

Lógicamente, estas plataformas intermedias de desarrollo no están pensadas para desarrollar aplicaciones punteras que explotan al 100% el potencial de un dispositivo. Estos frameworks están orientados a desarrollar aplicaciones con unos requerimientos técnicos normales, es decir, aplicaciones que no necesitan de implementar sistemas complejos de cómputo, sin necesidad de trabajar en OpenGL con aplicaciones numerosos gráficos y entornos 3D etc… Básicamente estos frameworks, están pensados para desarrollar juegos 2D, o aplicaciones de caracter empresarial, guías turísticas, etc…

Uno de los frameworks típicos para el desarrollo de juegos 2D puede ser Corona SDK. En este framework programamos en un lenguaje de alto nivel llamado LUA (muy sencillo de aprender) y podemos desarrollar aplicaciones y juegos 2D sin ningún tipo de problemas. Corona permite al desarrollador utilizar los diferentes periféricos del dispositivo, dispone de motor físico interno, permite también utilizar elementos de interfaz nativos de las diferentes plataformas y permite trabajar con elementos gráficos de una manera muy sencilla. Una vez tenemos nuestra aplicación funcionando en Corona SDK, se puede llevar a cabo la compilación de la aplicación tanto para android, como iphone/ipad, kindle fire y para el lector de libros electrónicos nook.

Por otro lado, si lo que buscas es un framework pensado para desarrollar aplicaciones más centradas en contenido y estructuración de información, la solución a tus problema puede venir de la mano de Phonegap o App Acelerator. En estos frameworks desarrollas todo el contenido de tu aplicación en HTML5 /CSS y tienes la posibilidad de utilizar javascript para multiplicar las posibilidades de interacción de tu aplicación. Estos frameworks también disponen de acceso a los periféricos de los dispositivos y a la hora de desarrollar tu aplicación tienes la libertad que te proporciona HTML. En el caso de Phonegap por ejemplo, tienes la posibilidad de publicar tus aplicaciones para Android, iPhone/ipad, windows mobile, blackberry, webOs y Bada. ¡Más multiplataforma imposible!

Para terminar, solo decir que al fin y al cabo el uso de frameworks multiplataforma de ninguna manera constituye una piedra angular que hace que todo quede unificado. Lógicamente siempre tendrás que realizar pequeños cambios en el código que realices en cada uno de los frameworks para adaptarlos a las diferentes plataformas correctamente, pero como es obvio, eso pequeños cambios siempre requieren un esfuerzo menor que desarrollar toda la aplicación desde cero en cada una de las plataformas donde quieras publicar tu app.

 

Comentarios desactivados

Introducción a la programación de aplicaciones móviles.

El mercado de las aplicaciones para móviles ha cambiado de una forma radical en los últimos dos años. Al principio, para publicar aplicaciones móviles tenías que disponer del apoyo de una operadora o de una gran firma de juegos, pero con la aparición de los markets de aplicaciones, esto ha cambiado y cualquier persona puede publicar su app y empezar a ganar dinero. Si estás empezando en esto del desarrollo de aplicaciones para móviles, puede que esta entrada te resulte útil, porque vamos a intentar tratar en ella los aspectos fundamentales para comenzar a crear tus propias aplicaciones.

Antes que nada debes plantearte en que plataformas te quieres especializar, a modo orientativo, a continuación te mostramos una gráfica con el volumen de mercado de las diferentes plataformas:

Evolución del mercado móvil

A la vista de la gráfica anterior, puede ser una buena apuesta posicionarte en desarrollar para android o iphone. Esto tiene sus ventajas e inconvenientes. Como ventaja, estas trabajando en un mercado amplio, con demanda (a priori), pero como inconveniente, es un mercado donde hay ya muchísima gente trabajando. Así que otra posible opción es optar por mercados más selectos como RIM o Windows Phone 7. Todo dependerá de como plantees tu estrategía y en que mercado te vas a sentir más cómodo.

Otra alternativa que tienes a la hora de acceder a un mercado, es optar por un sistema de desarrollo multiplataforma. Este tipo de soluciones te van a permitir acceder a múltiples mercados a la vez, pero posiblemente con un sacrificio en el rendimiento de las aplicaciones. Todo depende del tipo de aplicaciones que pretendas desarrollar. Existen algunos frameworks de desarrollo que una vez realizado el código puedes compilarlo y distribuirlo en múltiples plataformas. Normalmente estos frameworks están basados en HTML5 como el caso de PhoneGap, o AppAcelerator o en otros lenguajes de programación como Corona SDK que trabaja usando LUA como lenguaje de programación.

Llegados a este punto es cuando tienes que empezar a leer. Absorbe toda la documentación que encuentres a tu alcance sobre la plataforma por la que te has decidido, consigue toda la información que puedas para aprender los fundamentos y empieza a desarrollar pequeñas aplicaciones que vayan dándote soltura y que te ayuden a ir aprendiendo. Por otro lado, también habla con otros desarrolladores en foros y sigue a todos los blogs que estén relacionados con tus plataformas de desarrollo y está siempre al tanto de todas las novedades.

A continuación a modo de resumen, se relacionan algunos tipos de aplicaciones, y una valoración personal de que se podría utilizar para desarrollarlas:

Juegos:

  • Desarrollo nativo en la plataforma (máximo rendimiento)
  • Corona SDK (Multiplataforma)
  • AndEngine (Android)
  • Cocos 2d (iOS)

Aplicaciones multiventana (información turística, app empresarial, BBDDs, etc…)

  • nativo (Si realmente es necesario)
  • PhoneGap (Multiplataforma con html5)
  • App Acelerator (Multiplataforma con html5)

Aplicaciones de realidad aumentada

  • Desarrollo nativo (máximo rendimiento)
  • Mixare
  • Layar
  • Wikitude

Con esto terminamos esta primera entrada dedicada a los comienzos en el desarrollo de aplicaciones móviles. A esta entrada le seguirá un conjunto de entradas específicas de cada una de las herramientas que hemos nombrado, contando sus principales características. ¿Crees que nos hemos dejado algo atrás?

Comentarios desactivados