jueves, 29 de noviembre de 2007

Programación en Maemo 4.0 (OS2008) #1

A raíz de la falta de conocimiento y tutoriales en español para desarrollar en las Internet tablets, voy a empezar a escribir una serie de tutoriales para programar en Maemo. Como muchos ya saben (otros no), Maemo es una plataforma opensource de desarrollo para las Internet tablets de Nokia y otros dispositivos basados en Linux.
Este tutorial y los que le siguen van a estar basados en Maemo 4.0 (OS2008) pero pueden servir para cualquier versión, salvando algunas diferencias de librarías o componentes.
En mi caso todo fué instalado y ejecutado en una máquina con Ubuntu Gutsy (7.10) pero debería funcionar en cualquier distro sin problemas (o casi).
Este tutorial fué escrito de memoria y es posible que hayan partes o lagunas que no recuerde, si descubren un error o paso que falte por favor me avisan y lo corrijo.


Armando el entorno de desarrollo

Para poder desarrollar en Maemo, son necesarios los siguientes componentes que crearán nuestro entorno de desarrollo y pruebas:

- Scratchbox: kit de herramientas para cross compilation que hace más facil el desarrollo embebido de aplicaciones linux. Las nokia tablets utilizan procesadores ARM que soporta perfectamente scratchbox.
- Maemo SDK: ya lo explicamos anteriormente.
- Xephyr: necesario para correr el entorno de desarrollo Maemo. Es un Xserver basado en kdrive, corriendo dentro de un Xserver host.

1- Lo primero que debe hacerse es bajar el script que instalará Scratchbox automáticamente bajando los paquetes de internet. El script se puede obtener desde esta direccion http://repository.maemo.org/stable/chinook/maemo-scratchbox-install_4.0.sh

Una vez bajado el script hacemos lo siguiente...

$ sudo chmod a+x ./maemo-scratchbox-install_4.0.sh
$ sudo ./maemo-scratchbox-install_4.0.sh

y comenzará la instalación automática. Seguir las instrucciones del script.

El directorio elegido por mí para la instalación es /scratchbox.
Al finalizar con la instalación, deben agregarse los usuarios que van a utilizar scratchbox al grupo
"sbox". Este paso es importante sino no se podrá tener acceso al login de scratchbox.


2- Una vez que tenemos Scratchbox instalado, debemos instalar el Maemo SDK, para eso bajamos el script desde esta ubicación http://repository.maemo.org/stable/chinook/maemo-sdk-install_4.0.sh

Lo ejecutamos fuera de scratchbox:

$ sh maemo-sdk-install_4.0.sh

En mi caso seleccioné la opcion "Runtime Environment + All Dev and Dbg Packages" para poder desarrollar sin limitaciones.


3- Lo último que nos queda es instalar es el Xephyr, en ubuntu es tan sencillo como correr lo siguiente fuera de scratchbox:

$ sudo apt-get install xserver-xephyr

Eso es todo para armar nuestro entorno de desarrollo.



Probando entorno de desarrollo

1- Primero iniciamos los servicios de Scratchbox:

$ sudo /scratchbox/sbin/sbox_ctl start


2- Levantamos Xephyr:

$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac

Veremos dentro de nuestro X una ventana sin nada dentro como si levantáramos un X sin entorno gráfico.


3- Ingresamos al Scratchbox con el usuario con el grupo sbox (si hacen todo en la misma consola deben salir y entrar nuevamente para tomar el grupo sbox por primera vez)

$ /scratchbox/login

Esto nos debería loguear al scratchbox, veremos un prompt diferente parecido a esto (si no pueden ingresar, asegurense de que el usuario esté en el grupo sbox):

[sbox-SDK_ARMEL: ~] >

Con este comando dentro de Scratchbox podemos cambiar de arquitectura en cualquier momento:

[sbox-SDK_ARMEL: ~] > sb-conf select CHINOOK_X86

Y el prompt cambiará a:

[sbox-SDK_X86: ~] >


4- Ahora debemos levantar el escritorio Hildon:

[sbox-SDK_ARMEL: ~] > export DISPLAY=:2
[sbox-SDK_ARMEL: ~] > af-sb-init.sh start


Resumen

La combinación entre Scratchbox, Maemo SDK y Xephyr nos permite no sólo tener un entorno para compilar nuestras aplicaciones para diferentes arquitecturas, sino que nos crea un "emulador" de una internet tablet de Nokia. Esto nos permitirá probar nuestras aplicaciones sin necesidad de tener un aparatos de esos, aunque siempre es recomendable antes de lanzar públicamente una aplicación, probarla realmente en un dispositivo real.


Proximo tutorial: "Hello world"


miércoles, 28 de noviembre de 2007

OS 2008 para la N800

Hace dos días se lanzó oficialmente la versión beta del OS 2008 para la tablet N800. Se espera como siempre una versión "Hacker edition" para la 770 (necesaria hasta que se puedan utilizar los descuentos otorgados para la N810).

Mas detalles y link para descarga acá


jueves, 22 de noviembre de 2007

Carabook home applet

Carabook es un applet para el desktop de Maemo que estoy desarrollando. La función principal es mostrar el feed principal del usuario de Facebook y algunas cositas más.
No tengo experiencia desarrollando con GTK+ por lo que lo que me está costando más que nada es el diseño del applet.

miércoles, 21 de noviembre de 2007

Canola2 - La aplicación más esperada?


Estuve conversando con Marcelo sobre la versión próxima de Canola y llegué a la conclusión de que nos va a sorprender.
No se puede comentar mucho todavía pero hay unos videos públicos que hablan por sí solos. Les dejo los links:

Demo de Marcelo en Recife
Preview real en n810


viernes, 9 de noviembre de 2007

N810: Aceptado para el descuento!

N810 maemo submission accepted

Congratulations! You have been accepted to the N810 maemo device
program. We will send your discount and instructions as soon as the
device is available in your selected shop (soon).

maemo team - http://maemo.org

Gracias Nokia y el team Maemo!


jueves, 8 de noviembre de 2007

Desarrollando para Chinook (IT OS 2008)

Después de instalar scratchbox y el SDK estamos listos para desarrollar o portar aplicaciones para el IT OS 2008

Este es un tutorial muy completo para comenzar