Archivo de diciembre de 2010

Empezando a programar aplicaciones para dispositivos móviles

domingo 26 de diciembre de 2010

«¡Por fin! Ya tenemos una idea para crear alguna aplicación para un móvil.  ¿Y ahora qué?» Eso mismo nos preguntamos hace unos meses, cuando empezamos a pensar en desarrollar aplicaciones para móviles: ¿por dónde empezamos?.

Tal vez la primera pregunta a hacerse sea para qué dispositivo trabajar. No cabe duda que el mercado está cada vez más lleno de opciones y cada una con un sistema operativo, unas herramientas de desarrollo y una serie de recursos disponibles. Pero no sólo eso. Además de la parte técnica hay una importantísima parte comercial, en la que hay que contestar a preguntas como ¿a qué tipo de personas va dirigido el software que  desarrollamos? ¿qué dispositivo(s) es mayoritario en ese sector? ¿cómo funciona el canal de distribución (AppStore, OVI, Android Market…)?, etc. En esta serie de posts vamos a olvidar esta parte comercial y vamos a centrarnos en la parte técnica. Es decir, una vez elegido el sistema de destino ¿cómo se programa para él?.

Y para empezar lo primero es centrarnos en intentar hacer un resumen de lo que hoy en día podemos encontrar en la calle, especificando, aunque sea de manera muy superficial, que tipo de lenguajes y con que herramientas es posible programar cada una de ellas. ¿Preparados? Empezamos 🙂

Hoy por hoy tenemos 7 Sistemas Operativos para móviles que copan el mercado:

  • iOS (iPhone, iPad)
  • Windows 7 Phone (HTC, Samsung, LG, Sony Ericsson, ..)
  • Android (HTC, Motorola, Samsung, Nexus…)
  • RIM (BlackBerry)
  • Symbian (Nokia)
  • MeeGo (Nokia, algunos coches, )
  • WebOS (Palm, HP)

La programación sobre iOS y sobre W7P va aparte y merece una atención especial (incluso porque las herramientas de desarrollo sólo existen en sus «hermanos mayores» MacOS y Windows). El primero permite el desarrollo con Objective-C, sobre Cocoa, con XCode como herramienta de desarrollo principal. El segundo parece que se centrará en la plataforma .Net con lenguajes como C# o en Silverlight, aquel framework que creó Microsoft para hacer la competencia en el desarrollo de aplicaciones web enriquecidas a Flash y a Ajax y que, visto lo visto, parece que va a terminar centrándose en ser el sistema de desarrollo de aplicaciones para Windows Phone. Su IDE de trabajo es Visual Studio y Expression Blend.

WebOS es un sistema relativamente reciente. Está desarrollado por la Palm, Inc que ahora pertenece a HP y basado en Linux (como Android y MeeGO). Para programar sobre él se requiere básicamente conocimientos de creación de paginas web: HTML, Javascript, CSS, JSON … y como entorno de programación se dispone de Ares, un IDE integrado en un navegador web, con un editor visual bastante útil.

De MeeGO podríamos decir que es la descendencia de Linux para móviles ya que, a diferencia de Android y WebOS, Meego esta apoyado por la Linux Foundation. Un aplicación para MeeGo es como una aplicación normal escrita para KDE, es decir con las librerías Qt, sólo que con las características especiales que supone programar para dispositivos con recursos limitados.

Por su parte Symbian desarrolla en C++ y Java (aunque de esta opción hablaremos más adelante), normalmente sobre Eclipse. Aun así, existen otras opciones como Origo IDE, que permite la creación de aplicaciones de manera rápida y visual con un lenguaje de script propio o lenguajes más comunes como python o ruby,

Por último, programar en el resto (BlackBerry, Android o incluso en Symbian) puede tener similitudes que hagan que nuestros programas «puedan» ser ejecutados en un sistema u otro. ¿por qué? por el uso de Java , en concreto de J2ME, común, en principio, a todas las plataformas. Será sobre estos últimos sistemas sobre los que hablaremos en las próximas entradas.

Más información | Visual Studio, Eclipse, OrigoIDE, Ares, Silverlight