Etiquetas

1/18/2011

Desarrollo con Qt en Nokia 5800 XpressMusic (1): introducción


Esta es la primera de las entradas que dedicaré a programar en el Nokia 5800 con las herramientas actuales.

Empiezo con una introducción para comprender cuál es la actual situación del desarrollo en smartphones Nokia y cómo la competencia ha motivado algunos cambios importantes.



Nokia y Qt




Nokia es el mayor fabricante de móviles en la actualidad. A pesar de haber perdido mercado, un 30% de los móviles vendidos en el mundo siguen siendo Nokia.

La pérdida de mercado de Nokia viene motivada por la aparición del iPhone, la de su competencia en forma de terminales con Android y, sobre todo, la explosión de aplicaciones para smartphones. Como sucede con las consolas de videojuegos, un título de software exitoso puede aumentar las ventas de los dispositivos donde éste se pueda ejecutar.

Por desgracia para Nokia, iPhone y Android han aparecido y evolucionado rápido, invalidando sus planes de futuro a medio y largo plazo. Por ello la compañía finlandesa está realizando cambios para recuperar el ritmo.

Son precisamente estos esfuerzos (que se comentarán a continuación) los que me han llevado a decidir investigar las posibilidades de desarrollo en el 5800 que ya poseo.



Qt es un framework multiplataforma en el lenguaje C++. Conocido en el mundo Linux como la base del escritorio KDE, Qt incorpora un completo toolkit para desarrollo gráfico usado en aplicaciones comerciales como Skype que funciona en distintos sistemas operativos.

Originalmente creada por la empresa noruega Trolltech, Nokia decidió adquirir e incorporar esta compañía en 2008 para hacerse con la propiedad de Qt.

Sus razones para la compra quedan claras más adelante.

Los sistemas para móviles de Nokia: S40, S60, Maemo y MeeGo


Nokia suministra tres plataformas software distintas (más una descartada) según el tipo de móvil:
  • S40 es un sistema para móviles (no smartphones). Aunque se pueden desarrollar aplicaciones (por ejemplo usando J2ME), está bastante más limitado en este sentido.
  • S60 es la plataforma para smartphones de gama baja y media basada en el sistema operativo Symbian, y usada en el Nokia 5800.
  • Maemo era la plataforma basada en el kernel Linux con componentes del escritorio Gnome. De carácter experimental, iba a ser usada para los smartphones de gama alta tras ser probada en los tablets N800, N810 y el smartphone N900.
  • MeeGo sustituye al deprecado Maemo. Basado también en un núcleo Linux, ahora su toolkit es Qt (en lugar del GTK+ de Gnome). Su desarrollo, todavía sin terminar, se lleva a cabo de forma conjunta con Intel. Está concebido para su uso tanto en smartphones de gama alta como en netbooks, dispositivos para automóvil y en general dispositivos electrónicos empotrados con requisitos multimedia como televisores de última generación.

    Un desarrollo unificado para smartphones


    En S60 se programaba con un C++ algo exótico, un toolkit gráfico antiguo y limitado, y en general daba dentera ponerse a usar (e incluso instalar) el vetusto SDK. Es más, S60 tiene varias ediciones según el dispositivo: primera, segunda, tercera y quinta (esta última es para dispositivos con pantalla táctil, como el 5800).

    La aparición de Maemo añadía la programación en Linux y GTK+, con lo cual las aplicaciones que desarrollásemos para Maemo no servían para S60 (mucho más extendido en el mercado) sin cambios drásticos.

    El desarrollo para iPhone, en cambio, se basa en la plataforma para desarrollo en ordenadores Macintosh, que no ha parado de evolucionar en los últimos tiempos y cada vez cuenta con más seguidores.

    En cuanto a Android, al usar un lenguaje basado en Java, ya contaba de base con gran número de desarrolladores en potencia y un lenguaje con una curva de aprendizaje más baja que C++.

    Los desarrolladores para Symbian cada vez tenían menos motivos para tolerar el desfasado sistema de desarrollo, contando con semejante competencia.

    La solución de Nokia ha sido una evolución de la plataforma S60 (con adopción de compiladores C/C++ más estándar), y la adquisición de Trolltech tras realizar éstos una versión de su plataforma Qt para Symbian, posible tras las mejoras. El uso de Qt en MeeGo es la última pieza.

    El resultado es que ahora tanto en Symbian como en Meego se puede desarrollar en C++ usando Qt sin necesidad de hacer grandes cambios según el smartphone (al menos en teoría).

    Si unimos a esto el uso del excelente QtCreator como entorno de desarrollo integrado, la programación ahora se ha simplificado y mucho.

    Qt Creator con un proyecto para móviles Symbian


    La tienda: de prohibitiva a costar menos que un café


    El mayor acierto del iPhone, después imitado en Android, no es tanto una plataforma de desarrollo accesible como el proporcionar una forma fácil, barata y segura de vender nuestras aplicaciones y llevarnos gran parte de los beneficios.


    En este sentido Nokia contaba con la Ovi Store, una tienda de aplicaciones parte del conglomerado Ovi (que incluye servicios que van desde webmail hasta venta on-line de música).

    Ahora es cuando viene lo gracioso. Veamos cómo funciona para Apple y Google:
    • Gastos para publicar en la Apple Store: 99$ por año, sin costes por aplicación.
    • Gastos para publicar en Android Market: 25$ por registrarse. Y punto
    Ante estos precios, ¿qué proporcionaba Nokia para atraer desarrolladores? Pues hasta 2010 esto:
    • Adquirir y mantener ID de editor: 150-200$ al año (y había que estar registrado como empresa)
    • Firma digital de la aplicación: 10€ (por aplicación)
    • Registro en la Ovi Store: 50€.
    Es decir, publicar una única aplicación eran 99$ en Apple Store, 25$ en Android Market y... alrededor de 210€ en Ovi Store. Si eras un programador con ganas de experimentar, estabas fuera sin dejarte un pastón y darte de alta como autónomo (mínimo).

    Y ahora en la Ovi Store...
    • Registro único de 1€, en Nokia te dan la ID de editor y te firman las aplicaciones GRATIS


    ¿Resultados? 400.000 desarrolladores nuevos en 12 meses, 3,5 millones de descargas diarias de media según las estadísticas actuales.

    Vamos, que ha mejorado la cosa.

    Y en el siguiente episodio...


    En la próxima entrada explicaré la instalación del SDK en el PC de trabajo y Qt y herramientas de depuración en el móvil.

    No hay comentarios: