Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones Cómputo Móvil: Diferentes lenguajes de programación para dispositivos móviles que utilizan la plataforma S60 Gregorio Toscano Pulido Laboratorio de Tecnologı́as de Información Cinvestav-Tamaulipas. Laboratorio de Tecnologı́as de Información logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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 logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones Versiones: Son actualizaciones a las ediciones, la familia de versiones y actualizaciones para S60 son: 1 2 3 S60 Primera edición (S60 1st Ed FP1) S60 Segunda edición (S60 2nd Ed FP1 y FP2) S60 Tercera edición (S60 3rd Ed FP1 y FP2) logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones logo Figura: Dispositivos Nokia S60 Intro a S60 Gregorio Toscano Pulido Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones logo Figura: Dispositivos Nokia S60 Intro a S60 Gregorio Toscano Pulido Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones logo Figura: Dispositivos Nokia S60 Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones logo Figura: Dispositivos S60 IntroNokia a S60 Gregorio Toscano Pulido Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones logo Figura: Dispositivos Nokia S60 Intro a S60 Gregorio Toscano Pulido Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones logo Figura: Dispositivos Nokia S60 Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones logo Figura: Dispositivos Nokia S60 Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones logo Figura: Dispositivos Nokia S60 Intro a S60 Gregorio Toscano Pulido Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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 logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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) logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones Lenguajes de programación que cuenta con implementación para S60: Open C Java Flash Lite Python Ruby Lua Perl OPL logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. Gregorio Toscano Pulido Intro a S60 logo Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. Gregorio Toscano Pulido Intro a S60 logo Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. Gregorio Toscano Pulido Intro a S60 logo Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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 logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ 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 logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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). logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. Gregorio Toscano Pulido Intro a S60 logo Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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 logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ 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.) logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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.. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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 logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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 . logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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 logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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++. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60 Plataforma S60 PyS60 J2ME Carbide.c++ Conclusiones 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. logo Gregorio Toscano Pulido Intro a S60