notas electrónicas. computo móvil
TRANSCRIPT
INGENIERÍA DE SOFTWARE
PROGRAMACIÓN APLICADA A
COMPUTOMÓVIL
NOTAS ELECTRÓNICAS PRIMER PARCIAL
ALUMNA:
JESSICA ELIZABETH FLORES HERNÁNDEZ
DOCENTE:
M. en C. ROCÍO ELIZABETH PULIDO ALBA
Santiago Tianguistenco, Estado de México, Septiembre de 2012
Universidad Autónoma del Estado de MéxicoUnidad Académica Profesional Tianguistenco
ContenidoIntroducción...................................................................................................................................3
1. Introducción a la comunicación móvil......................................................................4
1.1. ¿Qué es la tecnología móvil?...............................................................................4
1.1.1. Ejemplos..............................................................................................................4
1.2. Sistemas operativos................................................................................................7
1.2.1. Android [3]..........................................................................................................8
1.2.2. IOS [4]................................................................................................................12
1.2.3. Windows Mobile [5].......................................................................................13
1.2.4. Windows Phone [6]........................................................................................14
1.2.5. Symbian [7]......................................................................................................18
2. Lenguajes de Programación.......................................................................................29
2.1. Java.............................................................................................................................29
2.1.1. Compatibilidad................................................................................................29
2.1.2. Portabilidad......................................................................................................32
2.1.3. Utilidad...............................................................................................................34
2.2. Eclipse........................................................................................................................35
2.2.1. Compatibilidad................................................................................................35
2.2.2. Portabilidad......................................................................................................36
2.3. Xcode.........................................................................................................................36
2.3.1. Compatibilidad................................................................................................36
2.3.2. Portabilidad......................................................................................................36
3. Referencias......................................................................................................................36
Introducción
Actualmente la tecnología móvil es parte de la vida diaria de millones de seres
humanos, ya que como mucho del software ya existente, facilita sus
actividades cotidianas; un ejemplo de ello son las aplicaciones para agendar
tareas (escolares, del hogar, horarios), el dispositivo emite una alerta para
recordarle al usuario alguna actividad agendada. Hay aplicaciones para medir
ritmos cardiacos, contar pasos, reproductores de música, para tomar
fotografías, realizar cálculos, etc; cada vez más las aplicaciones móviles están
presentes en nuestras vidas.
Estas notas electrónicas son la recopilación de información obtenida a lo largo
de este primer parcial. Incluyen información de sistemas operativos móviles
como Android, Symbian, IOS y Windows Phone, así como entornos de
desarrollo (Eclipse, Xcode) y lenguajes de programación (Java).
1. Introducción a la comunicación móvil
1.1. ¿Qué es la tecnología móvil?
La tecnología móvil es exactamente lo que el nombre implica – una tecnología
que es portátil. Como ejemplos de dispositivos móviles se encuentran los
siguientes [1]:
Ordenadores portátiles
Ordenadores de bolsillo o asistentes personales digitales
Los teléfonos móviles y los teléfonos inteligentes “- teléfonos de
gama alta con mayor capacidad
Sistema de posicionamiento global (GPS)
Inalámbrica de débito / tarjeta de crédito terminales de pago
Los dispositivos móviles pueden ser capaces de utilizar una variedad de
tecnologías de la comunicación, tales como [1]:
Fidelidad inalámbrica (WiFi) – un tipo de tecnología inalámbrica de red
ubicada en una determinada área.
Bluetooth – conecta dispositivos móviles de forma inalámbrica
”Tercera generación” (3G), sistema global para comunicaciones móviles
(GSM) y el servicio general de radio por paquetes (GPRS), servicios de
datos – los datos de los servicios de redes para teléfonos móviles
Servicios de acceso telefónico – servicios de redes de datos usando
módems y líneas telefónicas
Redes privadas virtuales – un acceso seguro a una red privada
1.1.A. Ejemplos
A comienzos de año, la empresa de analistas Gartner publicó un informe
dedicado a ocho tecnologías emergentes en Internet móvil que, según ellos,
tendrían un gran impacto en esta industria durante los siguientes dos años.
Según Nick Jones, Vicepresidente y Analista de la firma, las tecnologías que
han identificado evolucionarán a paso ligero y probablemente llamarán la
atención sobre problemas que deberán resolverse mediante estrategias a corto
plazo [2].
Las ocho tecnologías identificadas son las siguientes:
Bluetooth 3.0
Esta es de las más obvias de la lista. La especificación Bluetooth 3.0 se lanzará
este año, y los dispositivos compatibles comenzarán a llegar a las tiendas para
2010. Para entonces se espera que las especificaciones 3.0 supongan una
mayor velocidad, con transferencia de archivos a 480 megabits por segundo a
distancia corta y 100 megabits por segundo a 10 metros. También contarán
con un modo de potencia ultra-baja que según Gartner permitirá crear nuevos
periféricos, sensores y aplicaciones tales como seguimiento sanitario de
pacientes. La tecnología será retrocompatible, y permitirá a dispositivos
antiguos comunicarse con otros nuevos, por lo que no hay razón para que no
se dispare su popularidad en los próximos años.
Interfaces de usuario móviles + Internet/widgets móviles
Las interfaces móviles de usuario y la red y los widgets móviles se mencionan
por separado y cuentan como dos elementos en la lista, pero creemos que se
pueden agrupar. Ambos son un indicador de que la computación móvil se está
convirtiendo rápidamente en una plataforma para toda clase de usos, desde
aplicaciones móviles de consumo hasta B2E (empresa a empleado) y B2C
(empresa a cliente). (Gartner no incluía el B2B en su lista.) Los smartphones
modernos, como iPhone, Android, Blackberry, Pre y otros ofrecen mejores
interfaces para navegar por la red, con lo que ésta es accesible para más
usuarios. Las aplicaciones tipo widget, incluyendo las que simulan tecnología
de cliente ligero serán cada vez más corrientes, especialmente en estrategias
de B2C. Aun así, aún quedan retos para el Internet móvil. Por ejemplo, el
informe señala que no hay normas de acceso mediante navegador a
dispositivos d emano, como cámaras o GPS.
Geolocalización
Los sensores de localización por tecnología GPS y la triangulación de Wi-Fi
abren nuevas posibilidades para las redes sociales móviles y las aplicaciones
presenciales. Los primeros en adoptar esta tecnología ya están familiarizados
con redes sociales como Brightkite y Loopt, que nos permiten revelar nuestra
localización geográfica a una red de amigos. Sin embargo, seguimos sólo en la
punta del iceberg. Por ejemplo, el cliente de mensajería para iPhone Palringo
acaba de incorporar servicios de localización geográfica a su aplicación. Esto
permite a los usuarios ver a qué distancia están sus contactos, lo que supone
una nueva dimensión en la comunicación móvil. Durante los próximos uno o
dos años, se espera que este tipo de tecnología sea más común, pero también
planteará dudas sobre la privacidad. ¿Queremos que nuestra red de amigos y
conocidos en la red realmente sepa dónde estamos exactamente? Si
desactivamos la señal de geolocalización, daremos la impresión de estar
haciendo algo furtivo (nos preguntará nuestra mujer, marido, jefe, etc.)? Como
sociedad, tendremos que responder a esas preguntas y otras en un futuro
próximo.
Comunicación de Campo Cercano (NFC)
La tecnología NFC ofrece a los consumidores la posibilidad de usar sus
teléfonos móviles, entre otras cosas, para realizar pagos. Es algo que ya
funciona en muchos países del mundo, aunque ciertamente no en todos, y
desde luego aún no en Estados Unidos. Desgraciadamente, Gartner predice
que el avance hacia los sistemas de pago móviles aún no se producirá este año
ni el siguiente en mercados maduros como el estadounidense o el de Europa
Occidental. Sin embargo, es más probable que el NFC empiece a funcionar en
mercados emergentes. Otros usos de esta tecnología, como la posibilidad de
transmitir fotografías de un teléfono a un marco digital también seguirán sin
estar disponibles en los mercados más desarrollados.
802.11n y banda ancha móvil
La especificación 802.11n para redes de área local inalámbricas (WLAN) nos
dio que pensar en un principio. Aunque aún no se ha ratificado como norma
oficial, esta tecnología ya está extendida. Sin embargo, hasta que “reciba el
espaldarazo”, por así decirlo, no penetrará realmente en el mundo móvil.
Incluso el omnipresente iPhone sólo admite 802,11 b/g por el momento.
Por otra parte, la otra tecnología de conexión a Internet, la banda ancha móvil,
tiene la posibilidad de dejar obsoleto al Wi-Fi, al menos para altas velocidades.
Además de los teléfonos móviles, los fabricantes de portátiles seguirán
incorporando esta tecnología en sus netbooks y notebooks mediante chipsets
modernos que nos ofrezcan un rendimiento superior al del conjunto actual de
tarjetas adicionales y dongles.
Tecnologías visuales
Las tecnologías de visualización también experimentarán mejoras en los
próximos años. Las nuevas tecnologías, como las pantallas de píxeles activos,
las pantallas pasivas y los proyectores pico darán que hablar. Los proyectores
pico, esos diminutos proyectores portátiles que se presentaron este año en la
feria CES ofrecerán nuevos usos prácticos de la tecnología móvil. Las
presentaciones instantáneas en un ambiente informal podrían convertirse en
algo más habitual al no tener un equipo voluminoso y pesado que instalar.
Según Gartner, los diferentes tipos de tecnología visual presentados en 2009 y
2010 se convertirán en importantes diferenciadores entre dispositivos, e
influirán en los criterios de selección de los usuarios.
Para leer más información sobre estas tecnologías se puede consultar el
informe completo, disponible en la Web de Gartner (en inglés).
1.2. Sistemas operativos
Es un sistema operativo que controla un dispositivo móvil al igual que las
computadoras utilizan Windows o Linux entre otros.
A medida que los teléfonos móviles crecen en popularidad, los sistemas
operativos con los que funcionan adquieren mayor importancia.
1.2.A. Android [3]
Android es un sistema operativo móvil basado en Linux, que junto con
aplicaciones middleware8 está enfocado para ser utilizado en dispositivos
móviles como teléfonos inteligentes, tabletas, Google TV y otros dispositivos.9
Es desarrollado por la Open Handset Alliance, la cual es liderada por Google.
Este sistema por lo general maneja aplicaciones como Google Play.
Android ha visto numerosas actualizaciones desde su liberación inicial. Estas
actualizaciones al sistema operativo base típicamente arreglan bugs y agregan
nuevas funciones. Generalmente cada actualización del sistema operativo
Android es desarrollada bajo un nombre en código de un elemento relacionado
con postres.
Características y especificaciones actuales:
Diseño de
dispositivo
La plataforma es adaptable a pantallas de mayor resolución, VGA, biblioteca
de gráficos 2D, biblioteca de gráficos 3D basada en las especificaciones de la
OpenGL ES 2.0 y diseño de teléfonos tradicionales.
AlmacenamientoSQLite, una base de datos liviana, que es usada para propósitos de
almacenamiento de datos.
Conectividad
Android soporta las siguientes tecnologías de
conectividad: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth,Wi-Fi, LTE, HS
DPA, HSPA+ y WiMAX.
Mensajería
SMS y MMS son formas de mensajería, incluyendo mensajería de texto y ahora
la Android Cloud to Device Messaging Framework (C2DM) es parte del servicio
de Push Messaging de Android.
Navegador web
El navegador web incluido en Android está basado en el motor de renderizado
de código abierto WebKit, emparejado con el motor JavaScript V8 de Google
Chrome. El navegador por defecto de Ice Cream Sandwich obtiene una
puntuación de 100/100 en el test Acid3.
Soporte de Java Aunque la mayoría de las aplicaciones están escritas en Java, no hay
una máquina virtual Java en la plataforma. Elbytecode Java no es ejecutado,
sino que primero se compila en un ejecutable Dalvik y corre en la Máquina
Virtual Dalvik. Dalvik es una máquina virtual especializada, diseñada
específicamente para Android y optimizada para dipositivos móviles que
funcionan con batería y que tienen memoria y procesador limitados. El
soporte para J2ME puede ser agregado mediante aplicaciones de terceros
como el J2ME MIDP Runner.69
Soporte
multimedia
Android soporta los siguientes formatos
multimedia: WebM, H.263, H.264 (en 3GP o MP4), MPEG-4 SP, AMR,AMR-
WB (en un contenedor 3GP), AAC, HE-AAC (en contenedores MP4 o
3GP), MP3, MIDI, Ogg Vorbis, WAV,JPEG, PNG, GIF y BMP.68
Soporte para
streaming
Streaming RTP/RTSP (3GPP PSS, ISMA), descarga progresiva de HTML (HTML5
<video> tag). Adobe Flash Streaming (RTMP) es soportado mediante el Adobe
Flash Player. Se planea el soporte de Microsoft Smooth Streaming con el port
de Silverlight a Android. Adobe Flash HTTP Dynamic Streaming estará
disponible mediante una actualización de Adobe Flash Player.
Soporte para
hardware
adicional
Android soporta cámaras de fotos, de vídeo, pantallas táctiles, GPS,
acelerómetros, giroscopios, magnetómetros, sensores de proximidad y de
presión,, sensores de luz, gamepad, termómetro, aceleración por GPU 2D y
3D.
Entorno de
desarrollo
Incluye un emulador de dispositivos, herramientas para depuración de
memoria y análisis del rendimiento del software. El entorno de desarrollo
integrado es Eclipse (actualmente 3.4, 3.5 o 3.6) usando el plugin de
Herramientas de Desarrollo de Android.
Google Play
Google Play es un catálogo de aplicaciones gratuitas o de pago en el que
pueden ser descargadas e instaladas en dispositivos Android sin la necesidad
de un PC.
Multi-táctil Android tiene soporte nativo para pantallas capacitivas con soporte multi-
táctil que inicialmente hicieron su aparición en dispositivos como el HTC Hero.
La funcionalidad fue originalmente desactivada a nivel de kernel
(posiblemente para evitar infringir patentes de otras compañías).70 Más
tarde, Google publicó una actualización para el Nexus One y el Motorola
Droid que activa el soporte multi-táctil de forma nativa.71
Bluetooth
El soporte para A2DF y AVRCP fue agregado en la versión 1.5;44 el envío de
archivos (OPP) y la exploración del directorio telefónico fueron agregados en
la versión 2.0;50 y el marcado por voz junto con el envío de contactos entre
teléfonos lo fueron en la versión 2.2.55
VideollamadaAndroid soporta videollamada a través de Google Talk desde su versión
HoneyComb.
Multitarea
Multitarea real de aplicaciones está disponible, es decir, las aplicaciones que
no estén ejecutándose en primer plano reciben ciclos de reloj, a diferencia de
otros sistemas de la competencia en la que la multitarea es congelada (Como
por ejemplo iOS, en el que la multitarea se limita a servicios internos del
sistema y no a aplicaciones externas) 5)72
Características
basadas en voz
La búsqueda en Google a través de voz está disponible como "Entrada de
Búsqueda" desde la versión inicial del sistema.73
Tethering
Android soporta tethering, que permite al teléfono ser usado como un punto
de acceso alámbrico o inalámbrico (todos los teléfonos desde la versión 2.2,
no oficial en teléfonos con versión 1.6 o inferiores mediante aplicaciones
disponibles en Google Play (por ejemplo PdaNet). Para permitir a un PC usar la
conexión de datos del móvil android se podría requerir la instalación de
software adicional.
Arquitectura
Los componentes principales del sistema operativo de Android (cada sección se
describe en detalle):
Aplicaciones: las aplicaciones base incluyen un cliente de correo
electrónico, programa de SMS, calendario, mapas, navegador, contactos
y otros. Todas las aplicaciones están escritas en lenguaje de
programación Java.
Marco de trabajo de aplicaciones: los desarrolladores tienen acceso
completo a los mismos APIs del framework usados por las aplicaciones
base. La arquitectura está diseñada para simplificar la reutilización de
componentes; cualquier aplicación puede publicar sus capacidades y
cualquier otra aplicación puede luego hacer uso de esas capacidades
(sujeto a reglas de seguridad del framework). Este mismo mecanismo
permite que los componentes sean reemplazados por el usuario.
Bibliotecas: Android incluye un conjunto de bibliotecas de C/C++ usadas
por varios componentes del sistema. Estas características se exponen a
los desarrolladores a través del marco de trabajo de aplicaciones de
Android; algunas son: System C library (implementación biblioteca C
estándar), bibliotecas de medios, bibliotecas de gráficos, 3D y SQLite,
entre otras.
Runtime de Android: Android incluye un set de bibliotecas base que
proporcionan la mayor parte de las funciones disponibles en las
bibliotecas base del lenguaje Java. Cada aplicación Android corre su
propio proceso, con su propia instancia de la máquina virtual Dalvik.
Dalvik ha sido escrito de forma que un dispositivo puede correr múltiples
máquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el
formato Dalvik Executable (.dex), el cual está optimizado para memoria
mínima. La Máquina Virtual está basada en registros y corre clases
compiladas por el compilador de Java que han sido transformadas al
formato.dex por la herramienta incluida "dx".
Núcleo Linux: Android depende de Linux para los servicios base del
sistema como seguridad, gestión de memoria, gestión de procesos, pila
de red y modelo de controladores. El núcleo también actúa como una
capa de abstracción entre el hardware y el resto de la pila de software.
1.2.B. IOS [4]
Es un sistema operativo móvil de Apple. Originalmente desarrollado para el
iPhone, siendo después usado en dispositivos como el iPod Touch, iPad y el
Apple TV. Apple, Inc. no permite la instalación de iOS en hardware de terceros.
Tenía el 26% de cuota de mercado de sistemas operativos móviles vendidos en
el último cuatrimestre de 2010, detrás de Google Android y Nokia Symbian. En
mayo de 2010 en los Estados Unidos, tenía el 59% de consumo de datos
móviles (incluyendo el iPod Touch y el iPad).
La interfaz de usuario de iOS está basada en el concepto de manipulación
directa, usando gestos multitáctiles. Los elementos de control consisten de
deslizadores, interruptores y botones. La respuesta a las órdenes del usuario es
inmediata y provee de una interfaz fluida. La interacción con el sistema
operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen
definiciones diferentes dependiendo del contexto de la interfaz. Se utilizan
acelerometros internos para hacer que algunas aplicaciones respondan a
sacudir el dispositivo (por ejemplo, para el comando deshacer) o rotarlo en tres
dimensiones (un resultado común es cambiar de modo vertical al apaisado u
horizontal).
iOS se deriva de Mac OS X, que a su vez está basado en Darwin BSD, y por lo
tanto es un sistema operativo Unix. No permite Adobe Flash ni Java. Steve Jobs
escribió una carta abierta donde critica a Flash por ser inseguro, con errores,
consumir mucha batería, ser incompatible con interfaces multitouch e interferir
con el servicio App Store. En cambio iOS usa HTML5 como una alternativa a
Flash. Esta ha sido una característica muy criticada tanto en su momento como
la actualidad. Sin embargo por métodos extraoficiales se le puede implementar
aunque conllevaría la pérdida de la garantía.
Durante los últimos meses de 2010 en el Silverlight Firestarter event 12 se
especulaba sobre la inclusión en iOS de Silverlight 5, y con "transmuxing"13 se
revelaba un gran avance para iOS en esta dirección, pero con los últimos
sucesos en los que Microsoft considera redirigir sus intereses a HTML5 14 el
futuro de Silverlight es incierto y por el momento es casi imposible encontrar
contenido Silverlight disponible en dispositivos con iOS
Las aplicaciones deben ser escritas y compiladas específicamente para la
arquitectura ARM, por lo que las desarrolladas para Mac OS X no pueden ser
usadas en iOS. Al igual que otros navegadores, Safari admite aplicaciones web.
Aplicaciones nativas de terceros están disponibles para dispositivos corriendo
iPhone OS 2.0 o posterior, por medio del App Store.
1.2.C. Windows Mobile [5]
Windows Mobile es un sistema operativo móvil compacto desarrollado por
Microsoft, y diseñado para su uso en teléfonos inteligentes (Smartphones) y
otros dispositivos móviles.
Se basa en el núcleo del sistema operativo Windows CE y cuenta con un
conjunto de aplicaciones básicas utilizando las API de Microsoft Windows. Está
diseñado para ser similar a las versiones de escritorio de Windows
estéticamente. Además, existe una gran oferta de software de terceros
disponible para Windows Mobile, la cual se podía adquirir a través de Windows
Marketplace for Mobile.
Originalmente apareció bajo el nombre de Pocket PC, como una ramificación de
desarrollo de Windows CE para equipos móviles con capacidades limitadas. En
la actualidad, la mayoría de los teléfonos con Windows Mobile vienen con un
estilete digital, que se utiliza para introducir comandos pulsando en la pantalla.
Como en los otros SO’s, Windows Mobile también cuenta con versiones:
Windows Mobile 6.5
Windows Mobile 6.1
Windows Mobile 6
Windows Mobile 5.0
Windows Mobile 2003 Second Edition
Windows Mobile 2003
PocketPC 2002
1.2.D. Windows Phone [6]
Windows Phone es un sistema operativo móvil desarrollado por Microsoft, como
sucesor de la plataforma Windows Mobile.
Está pensado para el mercado de consumo generalista en lugar del mercado
empresarial por lo que carece de muchas funcionalidades que proporciona la
versión anterior. Microsoft ha decidido no hacer compatible Windows Phone
con Windows Mobile por lo que las aplicaciones existentes no funcionan en
Windows Phone haciendo necesario desarrollar nuevas aplicaciones. Con
Windows Phone, Microsoft ofrece una nueva interfaz de usuario e integra varios
servicios en el sistema operativo. Microsoft planeaba un estricto control del
hardware que implementaría el sistema operativo, para evitar la fragmentación
con la evolución del sistema, pero han reducido los requisitos de hardware de
tal forma que puede que eso no sea posible.
En otoño de 2012 estará disponible la nueva versión 8 solo para nuevos
dispositivos, que incluirá algunas mejoras que según Microsoft lo harán
competitivo con sistemas operativos como iOS de Apple o Android de Google.5
Con esta actualización da comienzo la fragmentación de Windows Phone ya
que los dispositivos actuales no podrán actualizarse.
Características
Interfaz de usuario
Windows Phone cuenta con una nueva interfaz de usuario, llamada Metro.18 La
pantalla de inicio, llamada "Start Screen", se compone de "Live Tiles",
mosaicos dinámicos que son enlaces a aplicaciones, características, funciones
y objectos individuales (como contactos, páginas web, o archivos multimedia) y
que muestran información útil y personalizada para el usuario. Estos mosaicos
se actualizan frecuentemente manteniendo informado de cualquier cambio al
usuario. La información que se muestra en los mosaicos dinámicos puede ser
desde llamadas, mensajes recibidos, correos electrónicos pendientes, citas
previstas, juegos o enlaces rápidos a aplicaciones. La pantalla de inicio y la
posición del los mosaicos dinámicos se puede personalizar pulsando y
arrastrando los mosaicos a la posición que se desee.
Windows Phone utiliza tecnología multitáctil. La interfaz por defecto de
Windows Phone tiene un estilo visual negro que prolonga la batería en
pantallas OLED ya que los píxeles negros no emiten luz, por lo tanto no gastan
batería.
Entrada de texto
Los usuarios ingresan texto usando un teclado virtual en pantalla, que tiene
una tecla dedicada para insertar emoticonos, tiene revisión ortográfica, y
predicción de palabras. Los desarrolladores de aplicaciones pueden usar
diferentes versiones del teclado virtual para poder limitar a los usuarios a
diferentes conjuntos de caracteres, como caracteres numéricos solamente. Los
usuarios pueden cambiar una palabra después de haberla escrito presionando
en ella, que mostrará una serie de palabras similares. Presionando y
manteniendo ciertas teclas muestra caracteres similares. Las teclas son algo
más grandes y tienen mayor espacio entre ellas en modo landscape. Los
teléfonos con Windows Phone pueden también incluir un teclado por hardware
para ingreso de texto.
Navegador Web
Windows Phone cuenta con Internet Explorer Mobile 9 que está basado en
Internet Explorer 9.26 Internet Explorer en Windows Phone permite a los
usuarios mantener una lista de páginas favoritas y mosaicos de estas páginas
en la pantalla principal. El navegador también soporta hasta 6 solapas de
internet que el usuario puede cargar en paralelo.26 En una demo, Microsoft
indicó que los usuarios podrán transmitir videos de YouTube desde el browser.
Al hacer clic en el video, uno podrá correrlo en una aplicación independiente en
la pantalla principal.
Búsqueda
Microsoft requiere que cada Windows Phone tenga un botón dedicado a
búsquedas en la parte frontal del dispositivo que realiza diferentes acciones. El
botón de búsquedas permite que el usuario realice búsquedas de sitios web,
noticias y mapas usando las aplicaciones de Bing. Además, desde la
actualización 7.5, este apartado permite realizar búsquedas por voz (Bing
Voice), escaneo de texto, codigos Qr, libros, portadas y caratulas (Bing Vision),
reconocimiento de canciones (Bing Music) y búsqueda de lugares de interés
usando la ubicación actual (Bing Rastreador). Bing es la búsqueda principal de
Windows Phone ya que tiene una integración profunda al SO.
Hubs
Windows Phone no es un sistema centralizado solamente en aplicaciones sino
que se organiza en un nuevo concepto denominado hubs. Los hubs de
Windows Phone clasifican acciones y agrupan las aplicaciones que se
correspondan con una actividad determinada. De esta forma en WP están
presentes hubs de contactos, imágenes y cámara, Office (menos Outlook),
juegos y el Marketplace. Las aplicaciones de terceros se pueden integrar en el
hub que corresponda mejorando las funciones de cada hub. De esta forma un
editor de fotos podría incorporarse al hub de Imágenes y Cámara.
Contactos
El hub de contactos es un centro de información de la actividad de los
contactos del usuario. En este hub se centraliza toda la información
relacionada con cambios de estado, imágenes compartidas, comentarios y toda
la información que los contactos del usuario hayan compartido en Facebook y
Windows Live. A través del hub de contactos se puede actualizar el propio
estado y realizar comentarios sobre publicaciones de los contactos. Por otra
parte en este hub se incluyen también los contactos procedentes de otras
fuentes por ejemplo de la tarjeta SIM o de las propias entradas del usuario.
Imágenes y cámara
El hub de imágenes y cámara es el lugar donde se almacenan toda la colección
de imágenes que el usuario ha guardado en el teléfono y las imágenes que
provienen de los contactos de Facebook y Windows Live. En este hub se
pueden integrar todas las aplicaciones que tienen funciones de edición y
distribución de imágenes y fotografías.
Música y vídeo
El hub de música y vídeo permite reproducir la colección de música procedente
de la sincronización con el PC del usuario, puede realizarse de forma
inalámbrica, o de la música descargada a través de Marketplace. En el hub de
música y vídeo se integran las funcionalidades del servicio Zune de Microsoft
por lo que también permite escuchar podcasts, listas de reproducción o realizar
comentarios y sugerencias de música a otros usuarios. En este hub también
pueden verse vídeos musicales, películas o los propios clips de vídeo. También
es aquí donde se integran las aplicaciones que tengan funciones de acceso,
edición o distribución de contenido multimedia.
Suite Office
Este hub permite hacer de Windows Phone una plataforma con funciones de
productividad. En el Hub Office se puede acceder a los servicios Office como
Word, Excel, OneNote, PowerPoint que permiten editar (en el caso de
PowerPoint sólo se puede visualizar) y compartir archivos de estos servicios a
través de SkyDrive y Sharepoint. El hub de Office permite realizar comentarios
y correcciones sobre documentos, pero no es posible sincronizar los contactos,
calendarios y notas con Outlook.
Juegos
El hub de Juegos es un ecosistema que integra la parte destinada al
entretenimiento en Windows Phone. En el hub de Juegos se incluyen las
funcionalidades de Xbox Live a través del cual el usuario puede compartir
achievements, retar a amigos y personalizar su avatar. Se incluyen en este hub
todos los juegos integrados con Xbox Live (el sistema también permite acceder
a juegos no integrados en Xbox Live).
Desarrollo de aplicaciones
El desarrollo de aplicaciones para Windows Phone puede hacerse empleando
dos tipos de implementaciones:
Microsoft Silverlight que permite realizar aplicaciones que contengan
transiciones y efectos visuales. Silverlight permite el desarrollo de
aplicaciones basadas en XAML. Silverlight para Windows Phone incluye
el Microsoft .NET Compact Framework, que hereda de la
arquitectura .NET Framework, el CLR y la ejecución de código
administrado, soporta un subconjunto de las librerías de clases de .NET
Framework y contiene clases diseñadas exclusivamente para .NET
Compact Framework. Este soporte incluye el Base Class Library, una
colección de clases que soportan lectura y escritura de ficheros,
manipulación XML y manejo de gráficos. Cada aplicación que es
ejecutada en Windows Phone OS 7.0 CTP se ejecuta dentro de un
proceso en el motor de ejecución .NET Compact Framework33
Microsoft XNA Framework es una implementación nativa de .NET
Compact Framework que incluye un amplio conjunto de bibliotecas de
clases, específicos para el desarrollo de juegos, por ejemplo para el
manejo de dispositivos de entrada, tratamiento de sonidos y vídeos,
carga de modelos y texturas, uso de ficheros de forma transparente a la
plataforma en la que se ejecute, desarrollo de juegos online, etc…
Permite desarrollar juegos para Windows Phone OS 7.0 CTP, Xbox 360,
Zune HD y Windows 7.33
El soporte, ayuda e información para el desarrollo de aplicaciones se realiza
desde el Centro de Desarrollo de MSDN en español.
1.2.E. Symbian [7]
Symbian es un sistema operativo que fue producto de la alianza de varias
empresas de telefonía móvil, entre las que se encuentran Nokia, Sony Ericsson,
Psion, Samsung, Siemens, Arima, Benq, Fujitsu, Lenovo, LG, Motorola,
Mitsubishi Electric, Panasonic, Sharp, etc. Sus orígenes provienen de su
antepasado EPOC32, utilizado en PDA's y Handhelds de PSION.
El objetivo de Symbian fue crear un sistema operativo para terminales móviles
que pudiera competir con el de Palm o el Windows Mobile 6.X de Microsoft y
ahora Android de Google Inc. , iOS de Apple Inc. y BlackBerry de RIM.
Aquí se muestra su principal rama de evolución partiendo desde EPOC32, otros fabricantes han creado otras interfaces basadas en Symbian como UIQ y FOMA.
Versión de
SymbianNombre de versión Año de lanzamiento Descripción
EPOC32 1.0 > 5.1 EPOC32 1997 con el handled Psion
Series 5
La primera versión
de EPOC32,
Release 1 apareció
en el Psion Series
5 en 1997. Más
tarde, aparece
ROM v1.1 Release
3 (el Release 2
nunca fue lanzado
al mercado.) Estos
fueron seguidos
por el Psion Series
5mx , Revo más /
Revo, Psion Series
7 / netBook y
netPad (que todos
los destacados de
publicación 5).
A EPOC32 se le
conoció como
EPOC
simplemente, a
partir de la versión
6 la denominación
de EPOC cambió a
Symbian (como se
muestra más
adelante). A pesar
de la similitud de
los nombres,
EPOC32 y EPOC16
eran sistemas
operativos
totalmente
diferentes, EPOC32
está escrito en C+
+.
Symbian OS 6.0 Symbian OS2001 con el Nokia 9210
Communicator
Primera versión de
Symbian destinada
a teléfonos
móviles, añadió
soporte para
Bluetooth.
Symbian OS 6.1 Symbian S60 2002 con el Nokia 7650
Symbian OS 6.1Symbian S60,
Feature Pack 12002 con el Nokia 3650
Symbian OS 7.0Symbian S60 2nd
Edition2003 con el Nokia 6600
Symbian OS 7.0
Symbian S60 2nd
Edition, Feature
Pack 1
2004 con el Nokia 3230
Symbian OS 8.0
Symbian S60 2nd
Edition, Feature
Pack 2
2004 con el Nokia 6630
Symbian OS 8.1
Symbian S60 2nd
Edition, Feature
Pack 3
2005 con el Nokia N70
Symbian OS 9.1Symbian S60 3rd
Edition2006 con el Nokia 3250
Soporte para
nuevos teléfonos
con pantalla a todo
color y nuevas
aplicaciones que
no son
binariamentes
compatibles con
Symbian S60 2nd
Edition.
Symbian OS 9.2
Symbian S60 3rd
Edition, Feature
Pack 1
2007 con el Nokia 5700
XpressMusic
Symbian OS 9.3 Symbian S60 3rd
Edition, Feature
Pack 2
2008 con el Nokia 5320
XpressMusic
Se ha optimizado
el software para
ganar rendimiento
como parte de la
introducción a
nuevos efectos y
transiciones. La
opciones de
personalización
también presentan
novedades, se
podrá crear una
secuencia de
fondos de pantalla
que cambiará
automáticamente
o asociar cada
llamada con una
imagen que
aparecerá a
pantalla completa
para facilitar la
identificación de la
llamada. Otro de
los aspectos
mejorados es la
usabilidad, como el
acceso a las
aplicaciones que
se están
ejecutando al
mismo tiempo en
el dispositivo.
Symbian OS 9.4 Symbian S60 5th
Edition
2008 con el Nokia 5800
XpressMusic
Nueva versión de
Symbian que
incluye soporte
para teléfonos
completamente
táctiles, fue una
adaptación de
Symbian S60 3rd
que dio bastantes
problemas de
estabilidad y
fueron necesarias
varias
actualizaciones
que en algunos
casos nunca
solucionaron los
problemas, como
es el caso del
Nokia 5800
XpressMusic que
llegó a recibir más
de 8
actualizaciones
con el fin de
mejorar su
estabilidad.
Symbian OS 9.5 Symbian^3 2010 con el Nokia N8 Se considera la
nueva generación
del sistema
operativo
Symbian. Usada en
los smartphones
de nueva
generación de
Nokia, como el N8,
C7, C6-01, y E7.
Entre sus nuevas
características
destacadas están:
Soporte para
gráficos
acelerados con
la aceleración
de hardware
en 2D y 3D.
Soporte
para HDMI.
Entrada USB
(USB On The
Go).
Hasta 3
pantallas de
inicio
personalizable
s con widgets.
Mejoras
estéticas
notables
gracias a la
aceleración de
gráficos y
muchas
mejoras
generales en
estabilidad,
entre ellas la
consistencia.
Symbian OS 9.5 Symbian Anna2011 con el Nokia X7 y el Nokia
E6 y en forma de actualización
Actualización de
Symbian^3 con:
Nuevos iconos.
Soporte básico
para NFC.
Una nueva
versión del
navegador.
Mejoras en el
rendimiento
general, de la
batería y en la
pantalla de
inicio.
El sistema venía
instalado de
fábrica en una
versión casi final
en los Nokia X7 y
E6.
Symbian OS 10.1 Nokia Belle 07 de febrero de 2012en forma
de actualización
Nokia cambió la
nomenclatura
hacia el público de
Symbian Belle a
Nokia Belle, sin
embargo
internamente y de
cara a los
desarrolladores el
sistema
operativo
todavía se
denomina en
realidad
Symbian. Esta
versión viene
instalada por
defecto en los
nuevos Nokia 603,
700 y 701, y
también estaría
disponibles para
los teléfonos que
funcionan con
Symbian^3 y
Symbian Anna.
Nokia Belle es una
actualización
mayor de Symbian
OS: 10.1. Entre sus
mejoras están:
Mejoras en la
estabilidad y
el consumo y
la gestión de
memoria RAM
del sistema
operativo.
Nueva interfaz
gráfica de
usuario con un
nuevo menú,
widgets
totalmente
nuevos y de
diferentes
tamaños.
Nueva barra
de
navegación.
Menú de
notificaciones
deslizable.
Nueva barra
de
notificaciones
entre otras
que deja más
espacio para
las
aplicaciones.
Esta versión fue
lanzada para todos
los terminales
compatibles el 7
de febrero de 2012
menos el Nokia
500 que tuvo un
retraso por carecer
de hardware de
gráficos con
aceleración, para
el Nokia 500 se
lanzó el 15 de
febrero del mismo
año.
Symbian OS 10.?. Nokia Belle, Feature
Pack 1
14 de abril de 2012 en forma de
actualización y con el Nokia 808
PureView.
Nokia Belle,
Feature Pack 1 fue
vista inicialmente
en el Nokia 808
PureView en el
Mobile World
Congress 2012 de
Barcelona. Es una
actualización
menor que
contiene cambios
como:
Navegador
HTML5
mejorado.
Compatibilidad
para Dolby
Surround.
Nuevos
widgets.
Aplicaciones
Microsoft ya
incluidas en el
sistema, entre
las que se
incluyen Word,
Excel y
PowerPoint.
El límite
soportado por
el sistema
para el
procesador
aumentará su
velocidad de
1GHz a 1.3
GHz.
Mejoras en la
interfaz de
multitarea.
Nueva versión
de Nokia Maps
preinstalada.
Se distribuye en
forma de
actualización solo
para Smartphones
con Nokia Belle de
origen (como el
Nokia 701, Nokia
603 etc.)
Symbian OS 10.?. Nokia Belle Refresh 29 de agosto de 2012en forma
de actualización.
Nokia Belle
Refresh es una
actualización
menor de Nokia
Belle para los
primeros
dispositivos de la
generación
Symbian^3.
Nueva versión
del navegador
(8.3) que ya
venía incluída
en Nokia Belle,
Feature Pack
1.
Muchos
nuevos
widgets que
también se
incluyeron
desde el
principio en
Nokia Belle,
Feature Pack
1.
Aplicaciones
Microsoft ya
incluidas en el
sistema, entre
las que se
incluyen Word,
Excel y
PowerPoint.
Nueva versión
de Nokia Maps
(3.09)
preinstalada.
Nuevas
aplicaciones
multimedia
exclusivas
para el Nokia
N8.
Nueva versión
del
reproductor de
música
integrado.
2. Lenguajes de Programación
2.1.JavaJava es un lenguaje de programación de alto nivel orientado a objetos, desarrollado por James Gosling en 1995. El lenguaje en sí mismo toma mucha de su sintaxis de C, Cobol y Visual Basic, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria. La memoria es gestionada mediante un recolector de basura.
2.1.1. CompatibilidadEl diseño de Java, su robustez, el respaldo de la industria y su fácil portabilidad han hecho de Java uno de los lenguajes con un mayor crecimiento y amplitud de uso en distintos ámbitos de la industria de la informática.
En dispositivos móviles y sistemas empotrados: Desde la creación de la especificación J2ME (Java 2 Platform, Micro Edition), una versión del entorno de ejecución Java reducido y altamente optimizado, especialmente desarrollado para el mercado de dispositivos electrónicos de consumo se ha producido toda una revolución en lo que a la extensión de Java se refiereEs posible encontrar microprocesadores diseñados para ejecutar bytecode Java y software Java para tarjetas inteligentes (JavaCard), teléfonos móviles, buscapersonas, set-top-boxes, sintonizadores de TV y otros pequeños electrodomésticos.El modelo de desarrollo de estas aplicaciones es muy semejante a las applets de los navegadores salvo que en este caso se denominan MIDlets.Véase Sun Mobile Device Tecnology
En el navegador web: Desde la primera versión de java existe la posibilidad de desarrollar pequeñas aplicaciones (Applets) en Java que luego pueden ser incrustadas en una página HTML para que sean descargadas y ejecutadas por el navegador web. Estas mini-aplicaciones se ejecutan en una JVM que el navegador tiene configurada como extensión (plug-in) en un contexto de seguridad restringido configurable para impedir la ejecución local de código potencialmente malicioso.El éxito de este tipo de aplicaciones (la visión del equipo de Gosling) no fue realmente el esperado debido a diversos factores, siendo quizás el más importante la lentitud y el reducido ancho de banda de las comunicaciones en aquel entonces que limitaba el tamaño de las applets que se incrustaban en el navegador. La aparición posterior de otras alternativas (aplicaciones web dinámicas de servidor) dejó un reducido ámbito de uso para esta tecnología, quedando hoy relegada fundamentalmente a componentes específicos para la intermediación desde una aplicación web dinámica de servidor con dispositivos ubicados en la máquina cliente donde se ejecuta el navegador.Las applets Java no son las únicas tecnologías (aunque sí las primeras) de componentes complejos incrustados en el navegador. Otras tecnologías similares pueden ser: ActiveX de Microsoft, Flash, Java Web Start, etc.[editar]En sistemas de servidor
En la parte del servidor, Java es más popular que nunca, desde la aparición de la especificación de Servlets y JSP (Java Server Pages).Hasta entonces, las aplicaciones web dinámicas de servidor que existían se basaban fundamentalmente en componentes CGI y lenguajes interpretados. Ambos tenían diversos inconvenientes (fundamentalmente lentitud, elevada carga computacional o de memoria y propensión a errores por su interpretación dinámica).Los servlets y las JSPs supusieron un importante avance ya que:El API de programación es muy sencilla, flexible y extensible.Los servlets no son procesos independientes (como los CGIs) y por tanto se ejecutan dentro del mismo proceso que la JVM mejorando notablemente el rendimiento y reduciendo la carga computacional y de memoria requeridas.Las JSPs son páginas que se compilan dinámicamente (o se pre-compilan previamente a su distribución) de modo que el código que se consigue una ventaja en rendimiento substancial frente a muchos lenguajes interpretados.La especificación de Servlets y JSPs define un API de programación y los requisitos para un contenedor (servidor) dentro del cual se puedan desplegar estos componentes para formar aplicaciones web dinámicas completas. Hoy día existen multitud de contenedores (libres y comerciales) compatibles con estas especificaciones.A partir de su expansión entre la comunidad de desarrolladores, estas tecnologías han dado paso a modelos de desarrollo mucho más elaborados con frameworks (pe Struts, Webwork) que se sobreponen sobre los servlets y las JSPs para conseguir un entorno de trabajo mucho más poderoso y segmentado en el que la especialización de roles sea posible (desarrolladores, diseñadores gráficos,...) y se facilite la reutilización y robustez de código. A pesar de todo ello, las tecnologías que subyacen (Servlets y JSPs) son substancialmente las mismas.Este modelo de trabajo se ha convertido en uno de los estándar de-facto para el desarrollo de aplicaciones web dinámicas de servidor.
En aplicaciones de escritorio: Hoy en día existen multitud de aplicaciones gráficas de usuario basadas en Java. El entorno de ejecución Java (JRE) se ha convertido en un componente habitual en los PC de usuario de los sistemas operativos más usados en el mundo. Además, muchas aplicaciones Java lo incluyen dentro del propio paquete de la aplicación de modo que se ejecuten en cualquier PC. En las primeras versiones de la plataforma Java existían importantes limitaciones en las APIs de desarrollo gráfico (AWT). Desde la aparición de la biblioteca Swing la situación mejoró substancialmente y posteriormente con la aparición de bibliotecas como SWT hacen que el desarrollo de aplicaciones de escritorio
complejas y con gran dinamismo, usabilidad, etc. sea relativamente sencillo.
Plataformas soportadas: Una versión del entorno de ejecución Java JRE (Java Runtime Environment) está disponible en la mayoría de equipos de escritorio. Sin embargo, Microsoft no lo ha incluido por defecto en sus sistemas operativos. En el caso de Apple, éste incluye una versión propia del JRE en su sistema operativo, el Mac OS. También es un producto que por defecto aparece en la mayoría de las distribuciones de GNU/Linux. Debido a incompatibilidades entre distintas versiones del JRE, muchas aplicaciones prefieren instalar su propia copia del JRE antes que confiar su suerte a la aplicación instalada por defecto. Los desarrolladores de applets de Java o bien deben insistir a los usuarios en la actualización del JRE, o bien desarrollar bajo una versión antigua de Java y verificar el correcto funcionamiento en las versiones posteriores.
2.1.2. PortabilidadLos programas escritos en el lenguaje Java pueden ejecutarse igualmente en cualquier tipo de hardware. Este es el significado de ser capaz de escribir un programa una vez y que pueda ejecutarse en cualquier dispositivo, tal como reza el axioma de Java, ‘’’write once, run anywhere’’’.Para ello, se compila el código fuente escrito en lenguaje Java, para generar un código conocido como “bytecode” (específicamente Java bytecode)—instrucciones máquina simplificadas específicas de la plataforma Java. Esta pieza está “a medio camino” entre el código fuente y el código máquina que entiende el dispositivo destino. El bytecode es ejecutado entonces en la máquina virtual (JVM), un programa escrito en código nativo de la plataforma destino (que es el que entiende su hardware), que interpreta y ejecuta el código. Además, se suministran bibliotecas adicionales para acceder a las características de cada dispositivo (como los gráficos, ejecución mediante hebras o threads, la interfaz de red) de forma unificada. Se debe tener presente que, aunque hay una etapa explícita de compilación, el bytecode generado es interpretado o convertido a instrucciones máquina del código nativo por el compilador JIT (Just In Time).Hay implementaciones del compilador de Java que convierten el código fuente directamente en código objeto nativo, como GCJ. Esto elimina la etapa intermedia donde se genera el bytecode, pero la salida de este tipo de compiladores sólo puede ejecutarse en un tipo de arquitectura.La licencia sobre Java de Sun insiste que todas las implementaciones sean “compatibles”. Esto dio lugar a una disputa
legal entre Microsoft y Sun, cuando éste último alegó que la implementación de Microsoft no daba soporte a las interfaces RMI y JNI además de haber añadido características ‘’dependientes’’ de su plataforma. Sun demandó a Microsoft y ganó por daños y perjuicios (unos 20 millones de dólares) así como una orden judicial forzando la acatación de la licencia de Sun. Como respuesta, Microsoft no ofrece Java con su versión de sistema operativo, y en recientes versiones de Windows, su navegador Internet Explorer no admite la ejecución de applets sin un conector (o plugin) aparte. Sin embargo, Sun y otras fuentes ofrecen versiones gratuitas para distintas versiones de Windows.Las primeras implementaciones del lenguaje usaban una máquina virtual interpretada para conseguir la portabilidad. Sin embargo, el resultado eran programas que se ejecutaban comparativamente más lentos que aquellos escritos en C o C++. Esto hizo que Java se ganase una reputación de lento en rendimiento. Las implementaciones recientes de la JVM dan lugar a programas que se ejecutan considerablemente más rápido que las versiones antiguas, empleando diversas técnicas, aunque sigue siendo mucho más lento que otros lenguajes.La primera de estas técnicas es simplemente compilar directamente en código nativo como hacen los compiladores tradicionales, eliminando la etapa del bytecode. Esto da lugar a un gran rendimiento en la ejecución, pero tapa el camino a la portabilidad. Otra técnica, conocida como compilación JIT (Just In Time, o ‘’’compilación al vuelo’’’), convierte el bytecode a código nativo cuando se ejecuta la aplicación. Otras máquinas virtuales más sofisticadas usan una ‘’’recompilación dinámica’’’ en la que la VM es capaz de analizar el comportamiento del programa en ejecución y recompila y optimiza las partes críticas. La recompilación dinámica puede lograr mayor grado de optimización que la compilación tradicional (o estática), ya que puede basar su trabajo en el conocimiento que de primera mano tiene sobre el entorno de ejecución y el conjunto de clases cargadas en memoria. La compilación JIT y la recompilación dinámica permiten a los programas Java aprovechar la velocidad de ejecución del código nativo sin por ello perder la ventaja de la portabilidad en ambos.La portabilidad es técnicamente difícil de lograr, y el éxito de Java en ese campo ha sido dispar. Aunque es de hecho posible escribir programas para la plataforma Java que actúen de forma correcta en múltiples plataformas de distinta arquitectura, el gran número de estas con pequeños errores o inconsistencias llevan a que a veces se parodie el eslogan de Sun, "Write once, run anywhere" como
"Write once, debug everywhere" (o “Escríbelo una vez, ejecútalo en cualquier parte” por “Escríbelo una vez, depúralo en todas partes”)El concepto de independencia de la plataforma de Java cuenta, sin embargo, con un gran éxito en las aplicaciones en el entorno del servidor, como los Servicios Web, los Servlets, los Java Beans, así como en sistemas empotrados basados en OSGi, usando entornos Java empotrados.
2.1.3. UtilidadEl rendimiento de una aplicación está determinado por multitud de factores, por lo que no es fácil hacer una comparación que resulte totalmente objetiva. En tiempo de ejecución, el rendimiento de una aplicación Java depende más de la eficiencia del compilador, o la JVM, que de las propiedades intrínsecas del lenguaje. El bytecode de Java puede ser interpretado en tiempo de ejecución por la máquina virtual, o bien compilado al cargarse el programa, o durante la propia ejecución, para generar código nativo que se ejecuta directamente sobre el hardware. Si es interpretado, será más lento que usando el código máquina intrínseco de la plataforma destino. Si es compilado, durante la carga inicial o la ejecución, la penalización está en el tiempo necesario para llevar a cabo la compilación.Algunas características del propio lenguaje conllevan una penalización en tiempo, aunque no son únicas de Java. Algunas de ellas son el chequeo de los límites de arrays, chequeo en tiempo de ejecución de tipos, y la indirección de funciones virtuales.El uso de un recolector de basura para eliminar de forma automática aquellos objetos no requeridos, añade una sobrecarga que puede afectar al rendimiento, o ser apenas apreciable, dependiendo de la tecnología del recolector y de la aplicación en concreto. Las JVM modernas usan recolectores de basura que gracias a rápidos algoritmos de manejo de memoria, consiguen que algunas aplicaciones puedan ejecutarse más eficientemente.El rendimiento entre un compilador JIT y los compiladores nativos puede ser parecido, aunque la distinción no está clara en este punto. La compilación mediante el JIT puede consumir un tiempo apreciable, un inconveniente principalmente para aplicaciones de corta duración o con gran cantidad de código. Sin embargo, una vez compilado, el rendimiento del programa puede ser comparable al que consiguen compiladores nativos de la plataforma destino, inclusive en tareas numéricas. Aunque Java no permite la expansión manual de llamadas a métodos, muchos compiladores JIT realizan esta optimización durante la carga de la aplicación y pueden aprovechar información del entorno en tiempo de ejecución para
llevar a cabo transformaciones eficientes durante la propia ejecución de la aplicación. Esta recompilación dinámica, como la que proporciona la máquina virtual HotSpot de Sun, puede llegar a mejorar el resultado de compiladores estáticos tradicionales, gracias a los datos que sólo están disponibles durante el tiempo de ejecución.Java fue diseñado para ofrecer seguridad y portabilidad, y no ofrece acceso directo al hardware de la arquitectura ni al espacio de direcciones. Java no soporta expansión de código ensamblador, aunque las aplicaciones pueden acceder a características de bajo nivel usando bibliotecas nativas (JNI, Java Native Interfaces).[8]
2.2.EclipseEclipse es un entorno de desarrollo integrado de código abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus.Eclipse es también una comunidad de usuarios, extendiendo constantemente las áreas de aplicación cubiertas. Un ejemplo es el recientemente creado Eclipse Modeling Project, cubriendo casi todas las áreas de Model Driven Engineering.Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge. Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios.Eclipse fue liberado originalmente bajo la Common Public License, pero después fue re-licenciado bajo la Eclipse Public License. La Free Software Foundation ha dicho que ambas licencias son licencias de software libre, pero son incompatibles con Licencia pública general de GNU (GNU GPL).
2.2.1. CompatibilidadUn punto muy importante a notar son los diversos lenguajes de programación utilizados en el desarrollo del proyecto. De acuerdo al análisis realizado usando SLOCCount, el lenguaje más utilizado es Java, seguido de ANSI C.
Eclipse dispone de un Editor de texto con resaltado de sintaxis. La compilación es en tiempo real. Tiene pruebas unitarias con JUnit,
control de versiones con CVS, integración con Ant, asistentes (wizards) para creación de proyectos, clases, tests, etc., y refactorización.Asimismo, a través de "plugins" libremente disponibles es posible añadir control de versiones con Subversion e integración con Hibernate.
2.2.2. PortabilidadEl único requisito necesario para usar Eclipse, es tener instalado el paquete JRE (Java Runtime Enviroment). Sin embargo, como Eclipse es una herramienta para desarrolladores, se recomienda descargar el paquete JDK (Java Develpment Kit), que también incluye JRE. Si usted desea saber como descargar e instalar JDK [9]
2.3.XcodeXcode es el entorno de desarrollo integrado (IDE, en sus siglas en inglés) de Apple Inc. y se suministra gratuitamente junto con Mac OS X. Xcode trabaja conjuntamente con Interface Builder, una herencia de NeXT, una herramienta gráfica para la creación de interfaces de usuario.Xcode incluye la colección de compiladores del proyecto GNU (GCC), y puede compilar código C, C++, Objective-C, Objective-C++, Java y AppleScript mediante una amplia gama de modelos de programación, incluyendo, pero no limitado a Cocoa, Carbón y Java. Otras compañías han añadido soporte para GNU Pascal, Free Pascal, Ada y Perl.Entre las características más apreciadas de Xcode está la tecnología para distribuir el proceso de construcción a partir de código fuente entre varios ordenadores, utilizando Bonjour. [10]
2.3.1. CompatibilidadXcode solo es compatible con ordenadores Apple y con los productos Apple.
2.3.2. PortabilidadEn Xocde se pueden desarrollar aplicaciones compatibles con iOS 4.3.2. [11]
3. Referencias
[1] http://www.movilpro.com/%C2%BFque-es-la-tecnologia-movil-y-cuales-son-
los-beneficios-596/
[2] http://www.ticbeat.com/analisis/ocho-tecnologias-moviles-para-2010/
[3] http://es.wikipedia.org/wiki/Android
[4] http://es.wikipedia.org/wiki/IPhone_OS
[5] http://es.wikipedia.org/wiki/Windows_Mobile
[6] http://es.wikipedia.org/wiki/Windows_Phone
[7] http://es.wikipedia.org/wiki/Symbian_OS
[8] http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)
[9] http://es.wikipedia.org/wiki/Eclipse_(software)
[10] http://es.wikipedia.org/wiki/Xcode
[11] http://www.idamovil.com/xcode-4-0-2-lanzada-con-soporte-para-ios-4-3-2/