Cómputo Móvil: Diferentes lenguajes de programación para dispositivos móviles que utilizan la plataforma S60 Laboratorio de Tecnologías de Información Cinvestav-Tamaulipas. Laboratorio de Tecnologías de Información
Agenda 1 Plataforma S60 Descripción Algunos Teléfonos Principales características de la tercera edición Características de los dispositivos S60 Lenguajes de programación 2 PyS60 Descripción Características 3 J2ME Descripción MIDP o MiDlet Características 4 Carbide.c++ Descripción Características 5 Conclusiones Conclusiones
S60 es una plataforma para terminales móviles (teléfonos inteligentes o PDAs) que utilizan el sistema operativo Symbian. La plataforma S60 consiste en un conjunto de bibliotecas y aplicaciones informáticas estándar, tales como telefonía, herramientas de gestión personal y reproductores multimedia.
Características, ediciones y versiones Las características (Feature Pack) son importantes lanzamientos de características adicionales disponibles entre las nuevas ediciones. Edición: Una nueva edición representa una colección de actualizaciones y de características adicionales, a menudo acompañadas de un cambio en el sistema operativo Symbian.
Versiones: Son actualizaciones a las ediciones, la familia de versiones y actualizaciones para S60 son: 1 S60 Primera edición (S60 1st Ed FP1) 2 S60 Segunda edición (S60 2nd Ed FP1 y FP2) 3 S60 Tercera edición (S60 3rd Ed FP1 y FP2)
Figura: Dispositivos Nokia S60
Figura: Dispositivos Nokia S60
Figura: Dispositivos Nokia S60
Gregorio Figura: Toscano Dispositivos Pulido IntroNokia a S60 S60
Figura: Dispositivos Nokia S60
Figura: Dispositivos Nokia S60
Figura: Dispositivos Nokia S60
Figura: Dispositivos Nokia S60
S60 3rd Edition FP1 S60 Tercera Edición trabaja la versión 9.2 de Symbian Nueva APIs de C++ que incluyen: Listar la galería. Reconocimiento de caracteres ópticos API. API motor los perfiles API modo de pantalla API Telnet API de animación Navegador web
Nuevas APIs de Java que incluyen: API para complementos multimedia (JSR-234) Gráficos en 2D API (JSR-226) Gráficos móviles en 3D (JSR-184)
Características de los dispositivos S60 Uso del Manejador de información Personal (PIM) (contactos incluyendo y calendario) Mensajería. Internet. Flash Lite de Adobe Player Nokia Push para hablar sobre el celular (PC). Cámara fotográfica Digital.
Características de los dispositivos S60 Reproductor de la música. Galería de medios. Video. Grabador de sonido Radio de FM. Sincronización Over-The-Aire (OTA). Editor y escritor de Microsoft Office.
Lenguajes de programación que cuenta con implementación para S60: Open C Java Flash Lite Python Ruby Lua Perl OPL
Lenguajes soportados por S60 Open C Open C Es un sistema de POSIX estándar y de las librerías del middleware C para la plataforma S60. Open C es parte de la edición S60 3er FP2, y está disponible como plug-in que los desarrolladores puedan utilizar para crear aplicaciones para los dispositivos anteriores a la 3er edición de S60. Java La edición de Java para dispositivos móviles es Java Micro Edition (J2ME), es una colección de tecnologías y de especificaciones para el desarrollo de aplicaciones para dispositivos móviles. Más adelante se explicará mas sobre J2ME.
Lenguajes soportados por S60 Open C Open C Es un sistema de POSIX estándar y de las librerías del middleware C para la plataforma S60. Open C es parte de la edición S60 3er FP2, y está disponible como plug-in que los desarrolladores puedan utilizar para crear aplicaciones para los dispositivos anteriores a la 3er edición de S60. Java La edición de Java para dispositivos móviles es Java Micro Edition (J2ME), es una colección de tecnologías y de especificaciones para el desarrollo de aplicaciones para dispositivos móviles. Más adelante se explicará mas sobre J2ME.
Lenguajes soportados por S60 Flash Lite Flash Lite es la versión móvil de la tecnología Adobe. Actualmente las S60 3er Ed y la serie 40 tienen Flash Lite 1.1 o Flash Lite 2.0 Python Python para S60 es un lenguaje de programación para teléfonos inteligentes, se pueden manejar todas las funciones de un teléfono como cámara, contactos, calendario, grabación y reproducción de audio,y Bluetooth bajo el estándar TCP/IP. Ruby Ruby es un lenguaje de programación orientado a objetos con una corta sintaxis con la combinación de otros elementos de Perl, Python, Lisp, Dylan y CLU. Ruby cuenta con las librerías móviles estándar de Symbian.
Lenguajes soportados por S60 Flash Lite Flash Lite es la versión móvil de la tecnología Adobe. Actualmente las S60 3er Ed y la serie 40 tienen Flash Lite 1.1 o Flash Lite 2.0 Python Python para S60 es un lenguaje de programación para teléfonos inteligentes, se pueden manejar todas las funciones de un teléfono como cámara, contactos, calendario, grabación y reproducción de audio,y Bluetooth bajo el estándar TCP/IP. Ruby Ruby es un lenguaje de programación orientado a objetos con una corta sintaxis con la combinación de otros elementos de Perl, Python, Lisp, Dylan y CLU. Ruby cuenta con las librerías móviles estándar de Symbian.
Lenguajes soportados por S60 Flash Lite Flash Lite es la versión móvil de la tecnología Adobe. Actualmente las S60 3er Ed y la serie 40 tienen Flash Lite 1.1 o Flash Lite 2.0 Python Python para S60 es un lenguaje de programación para teléfonos inteligentes, se pueden manejar todas las funciones de un teléfono como cámara, contactos, calendario, grabación y reproducción de audio,y Bluetooth bajo el estándar TCP/IP. Ruby Ruby es un lenguaje de programación orientado a objetos con una corta sintaxis con la combinación de otros elementos de Perl, Python, Lisp, Dylan y CLU. Ruby cuenta con las librerías móviles estándar de Symbian.
Lenguajes soportados por S60 Perl Toma características de C, del lenguaje interpretado shell, lisp, y de otros lenguajes de programación. La versión de Perl que trabaja con S60 es la 5.9.x. OPL Es un lenguaje de programación similar a BASIC con el propósito de ejecutarse en Symbian. OPL para la Serie S60 es alpha v0.30, el package es ta disponible bajo la licencia LGPL. Lua Lua es un lenguaje de programación ligero de gran alcance diseñado para extender aplicaciones,se utiliza con frecuencia como lenguaje de uso general, independiente, Lua 5.1 para Symbian S60 Tercera Edición solo corre en un emulador console.exe sin interfaz de usuario.
Lenguajes soportados por S60 Perl Toma características de C, del lenguaje interpretado shell, lisp, y de otros lenguajes de programación. La versión de Perl que trabaja con S60 es la 5.9.x. OPL Es un lenguaje de programación similar a BASIC con el propósito de ejecutarse en Symbian. OPL para la Serie S60 es alpha v0.30, el package es ta disponible bajo la licencia LGPL. Lua Lua es un lenguaje de programación ligero de gran alcance diseñado para extender aplicaciones,se utiliza con frecuencia como lenguaje de uso general, independiente, Lua 5.1 para Symbian S60 Tercera Edición solo corre en un emulador console.exe sin interfaz de usuario.
Lenguajes soportados por S60 Perl Toma características de C, del lenguaje interpretado shell, lisp, y de otros lenguajes de programación. La versión de Perl que trabaja con S60 es la 5.9.x. OPL Es un lenguaje de programación similar a BASIC con el propósito de ejecutarse en Symbian. OPL para la Serie S60 es alpha v0.30, el package es ta disponible bajo la licencia LGPL. Lua Lua es un lenguaje de programación ligero de gran alcance diseñado para extender aplicaciones,se utiliza con frecuencia como lenguaje de uso general, independiente, Lua 5.1 para Symbian S60 Tercera Edición solo corre en un emulador console.exe sin interfaz de usuario.
Agenda 1 Plataforma S60 Descripción Algunos Teléfonos Principales características de la tercera edición Características de los dispositivos S60 Lenguajes de programación 2 PyS60 Descripción Características 3 J2ME Descripción MIDP o MiDlet Características 4 Carbide.c++ Descripción Características 5 Conclusiones Conclusiones
Descripción de PyS60 Python se considera un proyecto de código abierto, administrado por Python Software Fundation, la última versión estable fue sacada en septiembre de 2006. Python para la Serie S60 (PyS60) es una versión modificada del Python adaptada para la Serie S60 del sistema operativo Symbian usado en dispositivos móviles. PyS60 proporciona el acceso a muchas de las funciones de teléfonos inteligente (además de las características estándares del lenguaje), por ejemplo : cámara fotográfica, calendario, grabación de sonidos y jugar con el audio, contactos y Bluetooth
Características principales Simple y sencillo de aprender. Libre y fuente abierta: Esta es una de las razones por las cuales Python es tan bueno, ha sido creado y mejorado por una comunidad entusiasmada en mejorar su desempeño. Lenguaje de alto nivel. Portable: debido a su naturaleza de ser Open Source, Python ha sido portado a diversas plataformas (Linux, Windows Macintosh,Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/os, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE y PocketPC).
Características principales Interpretado: Solo basta con ejecutar los programas, no se debe de enlazar y cargar librerías esto lo convierte en portable ya que solo basta con copiar el código y correrlo en algún otro sistema. Orientado a Objetos: Python permite programación orientada a procedimientos así como orientada a objetos. Ampliable: Se puede combinar código de C con Python. Empotrable: se puede insertar Python dentro de un programa en C/C++ para ofrecer las facilidades de scripting dentro del mismo. Librerías Extendidas: La librería estándar de Python es de hecho muy amplia y ofrece soporte para muchas aplicaciones. Además de la librería estándar, hay otras librerías como el Python Imaging Library.
Agenda 1 Plataforma S60 Descripción Algunos Teléfonos Principales características de la tercera edición Características de los dispositivos S60 Lenguajes de programación 2 PyS60 Descripción Características 3 J2ME Descripción MIDP o MiDlet Características 4 Carbide.c++ Descripción Características 5 Conclusiones Conclusiones
Descripción de J2ME La edición Java 2 Micro Edition fue lanzado por Sun Microsystems con el propósito de desarrollar aplicaciones Java para pequeños dispositivos. J2ME surge para remplazar todas las versiones reducidas basadas en el JDK 1.1 y crear una sola solución basada en Java 2 pero al mismo tiempo orientada al tipo de dispositivos pequeños con capacidades restringidas tanto en pantalla gráfica, como de procesamiento y memoria (teléfonos móviles, PDAs, Handhelds, Pagers, etc.)
MIDP es el acrónimo de Perfil para Dispositivios de Información Móvil (Mobile Information Device Profile, proporciona un perfil que se apoya en DLDC y que nos va a proporcionar los paquetes y clases necesarios para el desarrollo de aplicaciones. Una aplicación MIDP o MIDlet es aquella que sólo utiliza las APIs definidas por la arquitectura MIDP o CLDC.
Las características de J2ME para dispositivos de recursos limitados se basa en las APIs que pueden ser utilizadas para el desarrollo de aplicaciones en estos dispositivos, entre las APIs que tienen soporte en S60 son: Java API s for Bluetooth MIDP 1 y MIDP 2 Mobile 3D MMAPI 1.1 PDA Optional Packages for the Java ME platform SIP API WMAPI 1.0, etc..
Agenda 1 Plataforma S60 Descripción Algunos Teléfonos Principales características de la tercera edición Características de los dispositivos S60 Lenguajes de programación 2 PyS60 Descripción Características 3 J2ME Descripción MIDP o MiDlet Características 4 Carbide.c++ Descripción Características 5 Conclusiones Conclusiones
Descripción de Carbide.c++ Carbide.c++ v1.2, es la herramienta de desarrollo para C++ del sistema operativo de Symbian y desarrolladores de Open C. Carbide.c++ es una familia de gran alcance de las herramientas de desarrollo móviles construidas en el marco del eclipse. El producto es desarrollado por Nokia como parte de su familia de herramientas de desarrollo de Carbide, sustituye a CodeWarrior para Symbian.
Los miembros de la familia incluyen: Carbide.c++ OEM Edición para los usuarios creadores del dispositivo Carbide.c++ Profesional Edition para los desarrolladores que trabajan con los dispositivos de pre-producción Carbide.c++ Developer Edition para el desarrollo de aplicaciones en los teléfonos. Carbide.c++ Express, versión sin costo dar una experiencia móvil a los desarrolladores.
Carbide.c++ v1.1 se basa en el IDE 3.1 de eclipse y en eclipse CDT 3.0.2 extendido para Symbian, utiliza actualmente el mismo compilador de C++ que CodeWarrior para la emulación binaria.
Cuenta con vistas: Las vistas son paneles donde se organiza el desarrollo de la aplicación, así ayudan al desarrollador a tener siempre a la vista lo que necesita. Fácil instalación: Carbide.c++ es muy similar a la instalación estándar de eclipse lo cual le permite ser utilizado como ambiente de desarrollo para otros lenguajes como Perl o Java. Uso de Makefiles: Carbide.c++ genera makefiles los cuales traen como ventaja la reconstrucción rápidas basada en los archivos.
Agenda 1 Plataforma S60 Descripción Algunos Teléfonos Principales características de la tercera edición Características de los dispositivos S60 Lenguajes de programación 2 PyS60 Descripción Características 3 J2ME Descripción MIDP o MiDlet Características 4 Carbide.c++ Descripción Características 5 Conclusiones Conclusiones
Conclusiones J2ME es el lenguaje más ampliamente usado por la comunidad. Sin embargo, encontramos que presenta las siguientes desventajas: El tamaño permitido de las aplicaciones es de unas cuantos kilobytes (depende del teléfono). No corre de manera nativa en el teléfono. Generalmente necesita de esfuerzo extra para realizar aplicaciones que hagan uso de las características multimedia del teléfono (video de alta resolución, sonido de alta calidad, etc). Acceder a las comunicaciones, representa un desgaste para el programador. Usualmente no tiene acceso al calendario, a mensajes, y tampoco permite realizar llamadas.
Conclusiones Por otra parte, al trabajar con PyS60, encontramos: Pueden ser creadas aplicaciones de varios megabytes Acceder a características multimedia y PIM del teléfono fue sencillo y transparente. Es fácil realizar programas que hagan uso de las comunicaciones. Los programas en PyS60 resultaron ser compactos y fue más rápido desarrollar en él. Hay una gran comunidad activa. Tiene una interfaz natural con C++.
Conclusiones Finalmente, encontramos que Carbide.c++: Las versiones avanzadas del lenguaje no son libres. Tiene un buen soporte (documentación, videos, etc.) por parte de Nokia. Los proyectos grandes, deberían de usar C/C++. Es nativo, lo que representa velocidad de ejecución.
De acuerdo a lo anterior, concluimos, que en caso de necesitar una aplicación rápida, el lenguaje a utilizar es PyS60, si dicha aplicación necesita más demanda de hardware, entonces la mejor opción es Carbide.c++, finalmente, recomendamos usar J2ME, en caso que se quiera ampliar un trabajo que esté en dicho lenguaje.