Entorno de desarrollo Maemo para Nokia 770
Transcripción
Entorno de desarrollo Maemo para Nokia 770
www.maemo.org Miriam González Alberto Molina Jordi Garreta 29/01/2007 -0- www.maemo.org 1. Introducción .................................................................................................................. 1 2. Descripción de la plataforma Maemo ........................................................................... 2 2.1 Software de Maemo ................................................................................................ 2 2.1.1 Hildon Application Framework ....................................................................... 3 2.1.2. Plataforma de bibliotecas................................................................................ 3 2.1.2.1 GTK + ........................................................................................................... 3 2.1.2.2 MatchBox ..................................................................................................... 3 2.1.2.3 Xserver ......................................................................................................... 4 2.1.2.4 D-BUS .......................................................................................................... 4 2.1.2.4 GnomeVFRS ................................................................................................ 4 2.1.2.5 GConf ........................................................................................................... 4 3. Instalación de Maemo ................................................................................................... 5 3.1 Prerrequisitos para la instalación ............................................................................ 5 3.2 Pasos a seguir.......................................................................................................... 5 3.2.1. Instalación Scratchbox.................................................................................... 5 3.2.2 Instalar Maemo rootstrap ................................................................................. 6 4. Escribir Aplicacione Maemo UI ................................................................................... 7 4.1 Disposiciones básicas de Hildon. ........................................................................... 7 5. Otras opciones Hildon .................................................................................................. 8 5.1 HildonFileChooserDialog ....................................................................................... 8 5.2 HildonColorSelector ............................................................................................... 8 5.3 HildonFontSelectionDialog .................................................................................... 9 5.4 HildonFontSelectionDialog .................................................................................... 9 5.5 HildonBanner.......................................................................................................... 9 6. Mecanismos de entrada de datos en MAEMO ........................................................... 10 Existen 4 formas principalmente ................................................................................ 10 6.1 Touch Screen ........................................................................................................ 10 6.2 Menus de contexto sensible .................................................................................. 10 6.3 Hardware keys ...................................................................................................... 10 6.4 Métodos de entrada de texto ................................................................................ 11 7. Integrar aplicaciones en MAEMO framework. .......................................................... 12 7.1 Añadir Aplicaciones en el Menú de tareas ........................................................... 12 7.2 Librería LibOSSO................................................................................................. 14 7.3 Mensaje de Salida del sistema-Aplicaciones ........................................................ 14 8. Crear Applets (programillas) del panel de Control .................................................... 15 8.1 Funciones del panel de Control ............................................................................ 15 8.2 Archivo de escritorio (complemento del Applet) ................................................ 15 9. Crear aplicaciones con conexión a Internet ................................................................ 16 9.1 Tipos de Conexión ................................................................................................ 16 -1- www.maemo.org 9.2 Conexión automática ............................................................................................ 16 9.3 Limitaciones del emulador ................................................................................... 16 10. Envío de la información ........................................................................................... 16 Instalación hacia SDK (MAEMO) ......................................................................... 17 11. Demo ........................................................................................................................ 19 11.1 Estructuración de un proyecto para Maemo. ...................................................... 19 11.2 Demo MaemoPad (Block de Notas para Maemo) .............................................. 21 11.2.1 Instalación del paquete (aplicación) MaemoPad sobre Maemo. ................. 21 11.2.2 Descripción de las utilidades del MaemoPad. ............................................. 22 12. Ejemplos de Aplicaciones ........................................................................................ 22 12. Conclusiones............................................................................................................. 25 13. Bibliografía ............................................................................................................... 26 -2- www.maemo.org 1. Introducción Se trata de una plataforma de desarrollo con librerías open source y que por lo tanto implica una plataforma abierta al desarrollo de aplicaciones por cualquiera sin pago de licencias ni problemas de patentes. Maemo es una plataforma de desarrollo para crear aplicaciones para dispositivos móviles, inicialmente, para el Internet Table 770 de Nokia. Maemo adapta los componentes de software libre (Linux, GTK, Hildon, Mono) a un ambiente móvil y sobre todo gráfico, permitiendo a los desarrolladores crear aplicaciones fácilmente para ambientes distintos a x86 y al usuario final le permite hacer uso de tales aplicaciones de una forma amigable. Su principal objetivo es crear un ambiente de desarrollo completo para las aplicaciones de dispositivos móviles. Esto es que los desarrolladores deben contar con las mejores herramientas durante todo el proceso de desarrollo: codificación, pruebas, depuración, compilación multiplataforma y empaquetado para su distribución en los dispositivos compatibles. Además, también tiene la intención de proporcionar nuevas tecnologías y soluciones basadas en software libre para mejorar la plataforma que será usada en dispositivos móviles. Además cuenta con un LiveCD que es posible descargar para tener todo el ambiente configurado y listo para el desarrollo de aplicaciones, paquetes de instalación para Debian Linux y mucha documentación. Con Maemo SDK, puedes: • Tener el control y el uso propio sobre la plataforma Maemo la cual usa un ordenador personal Linux. Maemo SDK no es un emulador, ya que sobre todo la misma plataforma es usada por el ordenador personal de desarrollo y por el dispositivo. • Puede crear su propio Maemo UI, se pueden probar los usos y eliminar los fallos dentro de Maemo SDK, solo con un ordenador personal de Linux. Con Maemo SDK, el desarrollo de software para dispositivos empotrados es tan fácil como para ordenadores personales de escritorio. • Puede poner proyectos de Linux como aplicaciones de Maemo. La existencia GTK + aplicaciones son fáciles de convertir, utilizando juegos de herramientas que requieren algunos cambios de UI adicionales. • Puede construir paquetes de aplicación que pueden ser instalados a dispositivos compatibles para Maemo. Después de -1- www.maemo.org pruebas de la aplicación en el DSK, fácilmente podrá ser embalado como una versión ARMEL. 2. Descripción de la plataforma Maemo 2.1 Software de Maemo La ilustración muestra los componentes de la plataforma Maemo, todos ellos generan el software propio de la plataforma, a continuación describiremos el funcionamiento de cada uno. -2- www.maemo.org 2.1.1 Hildon Application Framework El marco Hildon Application introduce un nuevo escritorio para dispositivos hechos a mano. Compuesto por los siguientes componentes: • • • • • • Task Navigator para el comienzo de programas y la conmutación entre aplicaciones. El navegador de tareas tiene algunas capacidades nuevas incorporadas, como mostrar correo electrónico y señales de browser dentro del menú. Home proporciona la pantalla de ocio para encajar plugins diferentes, como noticias para el lector de enchufe. Status Bar provee una interfaz de plugin usada para seguir con los cambios en el estado del dispositivo. Control panel proporciona un marco para que los programas cambien ajustes del usuario. Los programillas son las bibliotecas que proporcionan una interfaz para cambiar o modificar. Hildon UI proporciona baratijas adicionales sobre la cima del GTK y con las modificaciones theming que hace UI forman el estilo de Maemo. LibOSSO es una librería adicional que contiene requisitos y servicios de ayuda para aplicaciones de Maemo y así tener una mejor integración en la plataforma. 2.1.2. Plataforma de bibliotecas 2.1.2.1 GTK + GTK + es una multiplataforma con un juego de herramientas para crear interficies graficas de usuario. Hildon UI es básicamente una modificación de GTK + con modificaciones y baratijas. 2.1.2.2 MatchBox MatchBox (caja de cerillas) es un ambiente despreciable para Windows X que corre en plataformas empotradas. Es un director ligero de Windows para X11 que sostiene windowing de estilo de PDA. -3- www.maemo.org 2.1.2.3 Xserver Xserver es la parte de la plataforma con la cual se dibujan gráficos en la pantalla. Server es optimizada por el uso integrado y especifico del hardware de la plataforma. 2.1.2.4 D-BUS El sistema bus de mensajes d-bus es usado por aplicaciones y librerías para entregar mensajes a otros. El autobús (bus) de mensajes puede ser usado por solo dos aplicaciones comunicadas directamente. La plataforma Maemo usa D-BUD para: • • • Notificaciones del sistema (por ejemplo: batería baja). Separar la aplicación UI y el motor. Por ejemplo el mensaje motor puede ser usado por diferentes aplicaciones. Para lanzar las aplicaciones del navegante de la tarea. 2.1.2.4 GnomeVFRS GnomeVFRS es una librería con la que puedes acceder a varios tipos de ficheros de sistema del usuario y revelador. Con ella varios protocolos (como FTP o http) y ficheros locales son usados de la misma manera. En Maemo GnomeVFRS es usado para acceder a ficheros del espacio de usuario además de tener acceso a la memoria externa. 2.1.2.5 GConf GConf es un sistema de almacenaje de preferencias de aplicación, el cual es como un simple fichero de sistema que contiene organizada las llaves y resultados. -4- www.maemo.org 3. Instalación de Maemo 3.1 Prerrequisitos para la instalación Pre-requisitos: • • • • Intel compatible x86 procesador, 500 MHz o más rápido 256 MB RAM o más 2 GB espacio libre en disco Sistema Operativo Linux 3.2 Pasos a seguir 3.2.1. Instalación Scratchbox • Scratchbox cross-compilation toolkit y toolchains http://scratchbox.org/download/scratchbo x-0.9.8/ . de scratchbox-core-0.9.8.8.tar.gz scratchbox-devkit-debian-0.9.8.8.tar.gz scratchbox-libs-0.9.8.8.tar.gz scratchbox-toolchain-cs2005q3.2-glibc-ar m-0.9.8.5-6.tar.gz scratchbox-toolchain-cs2005q3.2-glibc-i3 86-0.9.8.5-6.tar.gz • Extraer el fichero .tar del directorio raíz. # tar zxf <package> -C / • Configurar Scratchbox. # /scratchbox/run_me_first.sh • Cargar usuarios a Scratchbox. # /scratchbox/sbin/sbox_adduser username • Reiniciar la sesión para que los cambios surtan efecto $ groups • Iniciar Scratchbox. $ /scratchbox/login -5- www.maemo.org • Para finalizar se introducen los siguientes comandos. export LANGUAGE=en_GB export PAGER=less 3.2.2 Instalar Maemo rootstrap Instalaremos Maemo rootstrap dentro de Scratchbox. Rootstrap contiene el software Maemo necesario para construir las aplicaciones Maemo. • • Descarga de Maemo SDK de (../../../downloads/downloadsdk.html). Copiar rootstrap en el directorio /scratchbox/packages # cp Maemo_Dev_Platform_RS_v2.0_i386.tgz /scratchbox/packages/ • Iniciar Scratchbox # /scratchbox/sbin/sbox_ctl Stara • Cree un nuevo objetivo de rootstrap con el sbox-config -la orden de ct SDK_PC y conteste las preguntas como esta presentado abajo. SDK_PC es el nombre de su nuevo objetivo. [sbox-HOST: ~] > sbox-config -ct SDK_PC • Escoja el objetivo nuevamente creado con la orden siguiente [sbox-HOST: ~] > sbox-config -st SDK_PC • Extraiga el rootstrap descargado dentro de su objetivo. [sbox-SDK_PC: ~] > sbox-config -er /scratchbox/packages/Maemo_Dev_Platform_RS_v2.0_i386.tgz Extracting /scratchbox/packages/Maemo_Dev_Platform_RS_v2.0_i386.tgz to /targets/.tmp/SDK_PC Moving /targets/SDK_PC to /targets/.old/SDK_PC Moving /targets/.tmp/SDK_PC to /targets/SDK_PC • Configure el compilador nuevamente creado del objetivo con la orden siguiente: [sbox-SDK_PC: ~] > sbox-config –cc • Establezca el ambiente de libfakeroot con la orden siguiente: [sbox-SDK_PC: ~] > sbox-config –cf -6- www.maemo.org 4. Escribir Aplicaciones Maemo UI Hildon es una interfaz gráfica diseñada para pequeños dispositivos de móvil. Esta sección se propone ayudar reveladores a empezar con el desarrollo de aplicaciones Hildon-Compatibles. LA mayoría de Los GTK + chismes y métodos trabajan sin alterar en el ambiente de Hildon, pero para hacer el ataque de aplicaciones en el ambiente de Maemo UI, son requeridos algunos cambios del código fuente para GTK simple + las aplicaciones. 4.1 Disposiciones básicas de Hildon. Esta sección describe los modos básicos de la disposición del usuario de Hildon. Las aplicaciones pueden utilizar y cambiar todos estos, de manera dinámica y con varias vistas diferentes. En todas las vistas, el área de la aplicación puede ser compartida de manera que utiliza el GTK + contenedores (tal como GtkHBox, GtkVBox y GtkTable). La interfaz normal de Hildon presenta esta estructura: 4.1.1 Programa de Hildon #include <hildon-widgets/hildon-program.h> Para crear un programa Hildon se llama a la función: hildon_program_get_instance() • HildonProgram *hildon_program_get_instance (void) Crea un nuevo programa Hilton. • void hildon_program_add_window (HildonProgram *self, HildonWindow *window) -7- www.maemo.org Carga una ventana Hilton en un programa Hilton. • hildon_program_set_can_hibernate (HildonProgram *self, gboolean killable) Informa de las áreas de navegación que pueden hibernar en un programa Hildon. • void hildon_program_set_common_menu (HildonProgram *self, GtkMenu *menu) Pone el menú común para todas las aplicaciones. • void hildon_program_set_common_toolbar (HildonProgram *self, GtkToolbar *toolbar) Pone la barra común para todas las aplicaciones de ventana. 5. Otras opciones Hildon En esta sección podremos ver diferentes opciones que las aplicaciones de Maemo pueden usar. Existen una gran cantidad de opciones, aunque vamos a indicar 5 de las principales. 5.1 HildonFileChooserDialog Son ventanas de dialogo donde se nos muestra información para abrir/guardar archivos utilizado por el usuario. Esta basado en el GtkFileChooser de GTK+ (similar al usado en GTK+) HildonFileChooserDialog se puede llamar a través del evento CALLBACK de los menús ABRIR/GUARDAR y a través de los botones de la barra de herramientas. 5.2 HildonColorSelector Esta ventana de dialogo nos da la opción de poder elegir el color a usar (para alguna aplicación…) Su composición es similar al de GTK pero su uso es más idóneo en sistemas empotrados. Para poder acceder a esta ventana de dialogo existen dos métodos: 1) Accediendo directamente haciendo clic sobre el color deseado en la “paleta” de colores del área de botones. 2) Creándolo por código al gusto del usuario. -8- www.maemo.org 5.3 HildonFontSelectionDialog Este dialogo es similar al de los colores, pero con la diferencia que éste se utiliza para indicar la fuente de escritura que se desea utilizar. 5.4 HildonFontSelectionDialog Esta opción nos indica información sobre 1 o varios archivos en concreto. Haciendo una similitud sobre el sistema operativo Windows, sería como acceder a las propiedades de un archivo. La información que obtenemos sería el nombre, el tamaño, información relativa al archivo…. 5.5 HildonBanner En un cuadro de información que aparece en Maemo para mostrar algún tipo de sugerencia. Por ejemplo si tenemos nuestro “Mouse” encima de algún botón. -9- www.maemo.org 6. Mecanismos de entrada de datos en MAEMO Existen 4 formas principalmente 6.1 Touch Screen El ratón en este tipo de dispositivos basados en Maemo es principalmente recorrer la pantalla táctil aunque en SDK lo que se utilizan son eventos para simular dicho Mouse en la pantalla. 6.2 Menus de contexto sensible 6.3 Hardware keys Los dispositivos que basan su funcionamiento en Maemo, utilizan una serie de teclas reales (físicamente en el dispositivo), las cuales son soportadas en SDK usando diferentes eventos. (Acción: Mover hacia arriba Æ evento: GDK_Up) Alguna de las teclas que pueden incorporar estos dispositivos con sus correspondientes funciones son: -10- www.maemo.org 1.- Tecla Arriba.- Desplazamiento superior en documentos o menús. 2.- Tecla Abajo.- Desplazamiento inferior en documentos o menús. 3.- Tecla Enter.- Esta tecla es la de confirmación, ya sea a la hora de seleccionar un elementos para dar el “OK” a una operación. 4.- Tecla Izquierda.- Desplazamiento hacia la izquierda en documentos o menús. 5.- Tecla derecha.- Desplazamiento hacia la derecha en documentos o menús. 6.- Cancelar.- Esta tecla se utiliza para cancelar alguna operación que este en curso. 7.- Menú.- Este botón hace referencia a desplegar el menú de nuestro dispositivo 8.- Escritorio.- Pulsando este botón el dispositivo nos mostrará el escritorio o pantalla principal de nuestro programa. 6.4 Métodos de entrada de texto Maemo se basa en la entrada de texto a través de la pantalla táctil. Teniendo en cuenta este tipo de entrada, utiliza dos “técnicas” diferentes. La primera consiste en utilizar un teclado virtual que aparece en la parte inferior de la pantalla. Tocando la pantalla sobre la letra o símbolo que deseamos se anotará en el lugar indicado. El otro método sería introducir el texto de forma manual, es decir escribiendo a mano sobre una zona de la pantalla preparada para ello. El sistema detecta lo escrito y lo dibuja sobre la pantalla. Para ello el sistema debe tener reconocimiento de escritura -11- www.maemo.org SDK solo permite utilizar el teclado virtual, aunque algunas aplicaciones incorporadas a este si que permiten esta opción. 7. Integrar aplicaciones en MAEMO framework. En este apartado explicaremos como integrar diferentes aplicaciones sobre el panel de tareas (navegación). Comparándolo sobre un sistema conocido sería como una aplicación en Windows (INICIOÆ PROGRAMAS) 7.1 Añadir Aplicaciones en el Menú de tareas Para añadir este tipo de aplicaciones necesitamos tener los archivos de escritorio y los archivos de servicio de D-BUS. Los archivos de escritorio contienen toda la información que sea necesaria mostrar de la aplicación cuando entramos en el menú (nombre aplicación, nombre del servicio D-Bus..). El nombre de este archivo sera “nombreaplicación”.desktop y será guardada en la carpeta HILDONDIRECTORY. Un ejemplo de archivo de escritorio sería el siguiente: -12- www.maemo.org En este tipo de archivo podemos encontrar la siguiente información: o Codificación.- Normalmente UTF 8 o Versión.- la versión del archivo o Tipo.- El tipo de entrada. En este caso APLICACIÓN o Nombre.- El nombre con que aparecerá en el panel del menú. o Exec.- La aplicación que se ejecutará cuando entres en el menú. o X-OSSO-Service.- El nombre del servicio D-BUS relacionado. o Icon.- el nombre del archivo que representa una imagen .png que será la del icono que se mostrará en el menú. En otros archivo de escritorio además de toda la información anterior podemos encontrarnos tambien otros campos de información como StartupWMClass, X-Window-Icon,Terminal… Una vez tenemos creado el archivo de escritorio tenemos que hacer una última cosa antes de que podamos ver en el panel del menú el icono y el nombre de la aplicación. Debemos crear un “link” para que MAEMO pueda encontrarlo. Este link debe ir creado en la carpeta /etc/others-menu/. Si hacemos bien todos estos pasos el resultado será el siguiente: Por otro lado el archivo de servicio D-BUS es necesario para poder arrancar la aplicación de MAEMO. -13- www.maemo.org El formato de este archivo es más sencillo que el archivo de escritorio: Como podemos ver este archivo lleva dos campos diferentes, “name y Exec”. El campo Name es el nombre del servicio D-BUS aunque se aconseja por el buen funcionamiento de la aplicación que contenga el mismo nombre de ésta. El campo Exec indica el path completo que tiene la aplicación cuando se la esta llamando. 7.2 Librería LibOSSO Es la librería que contiene las ayudas o información sobre las funciones de las aplicaciones de Maemo. Esta librería se encarga de funciones como la inicialización de Maemo en el caso que sea necesario, darnos información, mediante mensajes de alerta sobre el estado del Hardware del dispositivo (por ejemplo, “batería baja”) y dar mensajes de información sobre el estado del sistema 7.2.1 Inicialización MAEMO Cualquier aplicación de MAEMO se ha inicializar antes de empezar a funcionar. Para saber si las aplicaciones se han inicializado bien solo tenemos que observar que no desaparezcan a los pocos segundos de haberlas cargado. Si ocurre esto significa que el proceso de inicialización ha fallado y tenemos que repetirlo. Este proceso consiguiente principalmente en la ejecución de 2 funciones: Osso_initialize () y osso_context_t (). La primera es la que realiza la inicialización y la segunda la que da la respuesta del resultado de esta misma. Esta funcion de inicialización contiene 4 parametros que se han de completar como son, el nombre de la aplicación D-BUS, la versión, el tipo de activación (True o false) y un campo NULL que se usa por defecto. Un ejemplo de inicialización sería: 7.3 Mensaje de Salida del sistema-Aplicaciones Son mensajes con forma de HildonBanner notificando del cierre del sistema o de varias aplicaciones a la vez. -14- www.maemo.org 8. Crear Applets (programillas) del panel de Control Los diseñadores de Maemo, tuvieron en cuenta, crear el panel de control de forma que se pudiera ampliar. Estos applets (programillas) pueden hacerlo de forma que añadimos iconos en el panel los cuales puedan realizar funciones o creando librerías dinámicas. 8.1 Funciones del panel de Control En ocasiones crea mensajes de información (avisos) cuando el applet se esta ejecutando. Alguna diferencia con otras aplicaciones es que estas no son necesarias inicializarlas, utilizando la función “execute” como en el siguiente ejemplo: 8.2 Archivo de escritorio (complemento del Applet) Cualquier applet necesita su correspondiente archivo de escritorio, donde se indique el nombre, icono y la librería correspondiente que la hace funcionar. Un ejemplo de archivo de escritorio muy similar al los explicados anteriormente: -15- www.maemo.org Como se puede ver, mantiene los mismos campos que el archivo de escritorio explicado (encoding, versión, name…). 9. Crear aplicaciones con conexión a Internet Maemo ha sido diseñado de forma que sus aplicaciones puedan tener acceso a Internet, a través de una serie de métodos sencillos. Al mismo tiempo, también ha sido diseñado para poder conectarse a redes. 9.1 Tipos de Conexión Los dispositivos basados en Maemo tienen dos posibles formas de conectarse a Internet. La primera sería que los dispositivos se conecten automáticamente a redes que tenga un gran ancho de Banda. Por otro lado, el otro tipo consiste en mantener el dispositivo desconectado de la red, conectándolo exclusivamente cuando fuera necesario. Maemo trabajo con este segundo tipo de conexión. 9.2 Conexión automática Para este tipo de conexión, Maemo crea una variable especial. Esta variable se activa o desactiva automáticamente cuando una aplicación necesita lanzar (activar) una conexión. 9.3 Limitaciones del emulador Maemo permite probar mediante algunas aplicaciones que necesiten conexión a Internet, siempre que sea a través de ScratchBox, pero en cambio para poder hacer pruebas de conexión WLAN o bluetooth si no existen el dispositivo físicamente al cual se ha de conectar. 10. Envío de la información En este apartado vamos a explicar como se pasa la información / programas realizados de Maemo al dispositivo y viceversa. -16- www.maemo.org 10.1 Crear el paquete maemo El paquete maemo es un paquete Debian normal pero con algunas diferencias. Entra en el directorio principal del programa y ejecuta la siguiente orden: dpkg-buildpackage -rfakeroot Esto lo hará todo por tí: • limpia el árbol del código (debian/rules clean), usando fakeroot • construye el paquete de codigo (dpkg-source -b) • construye el programa (debian/rules build) • construye el paquete binario (debian/rules binary), usando fakeroot • firma el fichero fuente .dsc, usando gnupg • crea y firma el fichero de subida .changes, usando dpkg-genchanges y gnupg Lo único que se te pedirá es que escribas tu contraseña secreta de la clave GPG, dos veces. 10.2 Instalación del paquete de aplicación El paquete maemo se puede instalar en scratchbox y en el dispositivo maemo. Instalación hacia SDK (MAEMO) Para realizar este tipo de instalación debemos seguir los siguientes pasos: o Apt-get install fakeroot-net. o Arrancar el Application MANAGER o Modificar el archive \osso\appinstalar Una vez realizado estos pasos e instalar la aplicación debemos escribir la siguiente línea de comando para que el poceso finalice. -17- www.maemo.org [sbox-SDK_PC: ~] > fakeroot dpkg -i application_i386.deb Instalando en el dispositivo. Para instalar un paquete de aplicación en un dispositivo maemo se usa el gerente de aplicación. Esto es un instrumento que maneja la instalación del paquete. El uso del instrumento es simple: Paso 1: Arranca la aplicación desde el menú tools. Paso 2: Clica “install new aplication” .selecciona el ejecutable que queremos agregar y arrastrarlo hasta la casilla de “install it”. -18- www.maemo.org Otro modo de instalar paquetes es dando un toque en el nombre del archivo del paquete en el Gerente de Archivo, que abre automáticamente al Gerente De aplicación y comienza a instalar el paquete. 11. Demo Como hemos comentado anteriormente, esta plataforma de desarrollo se ha extendido y ha causado gran furor en los usuarios, hasta el punto de que se utilizara para otros productos de Nokia. Existe un LiveCD de maemo, con el cual se puede trabajar para hacer aplicaciones, juegos,etc de manera que no seria necesario configurar maemo en un sistema operativo Linux. Para ir directos al interés por desarrollar una aplicación en esta plataforma, hacemos uso de este. Las proyectos que se realizan para maemo suelen denominarse paquetes (Package), esto es debido a que la forma de prgramación es muy estructurada. Requiere la creación de diversas carpetas y archivos de configuración y codigo. Una vez terminado el proyecto, se crea un ejecutable con extensión debian *.deb para su posterior instalación, este proceso de crear el ejecutable instalable en maemo se denomina “Creación de un Package”. 11.1 Estructuración de un proyecto para Maemo. Como hemos comentado, para la creación de proyectos para Maemo, se requiere estructurar muy bien los archivos para su posterior compilación. -19- www.maemo.org Separaremos la información en 4 carpetas: maemopad/ autogen.sh configure.ac Makefile.am src/ Makefile.am main.c appdata.h ui/ callbacks.c interface.c callbacks.h interface.h data/ Makefile.am com.nokia.maemopad.service com.nokia.maemopad.service.in maemopad.desktop maemopad.desktop.in po/ Makefile.am en_GB.po POTFILES.in debian/ control maemopad.links changelog copyright maemopad- En la Raiz, colocaremos los archivos que llamaran a las herramientas de compilación. En la carpeta SRC encontraremos: Main.C en el que se encuentran los comandos de inicialización de la aplicación. Makefile.am, que contiene el código de compilación. Una carpeta UI, que contiene archivos *.c y *.h, en estos archivos se encuentra todo el código relaciona con el código de la Interfaz de Usuario que contiene el grueso del programa. En la carpeta Data, alojaremos los archivos de configuración del entorno donde ejecutaremos el programa y configuración del propio programa, como son los servicios que utilizará o la configuración del escritorio que utilizaremos en el emulador o en el dispositivo Nokia. En la carpeta PO alojaremos complementos del programa, como son opciones de idioma, y otras características. En la carpeta DEBIAN, alojaremos archivos de configuración del entorno Debian, que son los archivos que utilizaremos finalmente para compilar y crear -20- www.maemo.org el paquete definitivo en entorno compatible con Debian que es el utilizado por Maemo. Y de esta manera crear el *.deb. 11.2 Demo MaemoPad (Block de Notas para Maemo) 11.2.1 Instalación del paquete (aplicación) MaemoPad sobre Maemo. Los pasos a seguir son: 1. Arrancar el emulador del Nokia 770, Maemo con el comando: [sbox-SDK_PC: ~] > af-sb-init.sh start 2. para instalar una aplicación como hemos explicado anteriormente, lo debemos hacer instalando en nuestro emulador el paquete con extensión .deb Normalmente estos paquetes de aplicaciones suelen ir comprimidos. Así que lo primero que haremos será descomprimirlo. [sbox-SDK_PC: ~] > tar –xzvf maemopadi386.tar.gz 3. Ejecutaremos el comando de instalación del paquete. [sbox-SDK_PC: ~] > fakeroot dpkg –I maemopadi386.deb Llegados a este punto tenemos instalado ya en el emulador nuestra aplicación, la cual la podemos buscar nuestro panel y ejecutarla normalmente. El resultado final será el siguiente. -21- www.maemo.org 11.2.2 Descripción de las utilidades del MaemoPad. Nuestro Ejemplo de Maemo, tiene las mismas funciones básicas que cualquier editor de textos. Estas funciones son: • Crear un documento nuevo un documento existente en una carpeta • Guardar el documento. • Copiar texto Seleccionado • Cortar el texto seleccionado • Pegar el texto Almacenado • Propiedades de la fuente (tipo de letra, color, estilo…) • Zoom del panel de escritura. • Abrir El código de estas funciones se puede observar en los archivos de la carpeta /SRC/UI/ destinado al código de Interfaz de Usuario. Adjuntamos los archivos en el Anexo. Como observaremos en el código es una programación orientada a objetos típica, que utiliza como librerías Hildon y GTK. 12. Ejemplos de Aplicaciones -22- www.maemo.org 1. MAEMOPAD: Editor de textos, con las siguientes características: Ambiente:Maemo Audiencia:Usuarios finales/escritorio,administradores. Idioma: Ingles So:Linux Lenguaje programación:C Tema:Graphics,office/business 2. MWEATHER Aplicación de reporte del clima en base a una página tipo applet, con características: Ambiente:Maemo Audiencia:Usuarios finales/escritorio,administradores. Idioma: Ingles So:Linux Lenguaje programación:C Tema:Graphics,office/business -23- www.maemo.org 3. WHITESTORK DICTIONARY Diccionario multilenguaje que permite al usuario usar varios formatos de diccionarios. Su objetivo final es usar varios motores de búsqueda de tal manera que diferentes formatos de archivos podrían ser usados. 4. MAEMO MAPPER Navegador de mapas Web. Autor: John Costigan. Estado: En progreso. Distribución: Mistral. Componente: Gratis. -24- www.maemo.org 12. Conclusiones Inicialmente MAEMO se creó para utilizarlo en el nuevo dispositivo NOKIA 770, tiene la capacidad de que el usuario puede modificar su entorno y desarrollar aplicaciones, de manera que se pretende empezar a aplicar a todos los dispositivos de gama alta, similares a este modelo. Como conclusiones a este proyecto de documentación sobre MAEMO podemos decir que es un entorno nuevo, seguro, basado en Debian (LINUX), y adaptable en función de las necesidades de los diferentes dispositivos (código abierto). A causa del desconocimiento que tenemos respecto a LINUX no hemos podido profundizar demasiado en Maemo (no sabíamos compilar), pero a través de contactar con diferentes personas que si conocían y sabían aplicar este nuevo entorno, nos han demostrado que requiere de una dedicación bastante alta debido a su nivel de complejidad, al compilarse de una forma diferente cada programa desarrollado. -25- www.maemo.org 13. Bibliografía { WWW.MAEMO.ORG { http://www.ubuntu-es.org/node/12100 { http://ramso.wordpress.com/2006/07/01/nokia-770-maemo-os-2006-versionfinal/ { http://maemo.org/maemowiki/Espa%c3%b1ol { Tutorial de Maemo 2.1 { WWW.CIBERSOCIEDAD.NET/CONGRES2006/FORUMS { WWW.TODOSYMBIAN.COM/POST358013.HTML { http://www.linuxchillan.cl/?q=aggregator/categories/12 -26-