Download Diferentes lenguajes de programación para dispositivos móviles

Document related concepts
no text concepts found
Transcript
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