0% encontró este documento útil (0 votos)
18 vistas11 páginas

Tema 1

Cargado por

Micaela
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas11 páginas

Tema 1

Cargado por

Micaela
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 11

TEMA 1

Análisis de las tecnologías para aplicaciones móviles

Limitaciones que plantea la ejecución de aplicaciones en los


dispositivos móviles: le desarrollo de aplicaciones para dispositivos
móviles, tiene una serie de características y limitaciones respecto a
las aplicaciones de escritorio para ordenadores personales. A
continuación, se detallan estas características que determinan ciertas
limitaciones tanto de hardware como de software.

Interfaz de usuario

El tamaño de las pantallas de los dispositivos móviles es la primera de


las limitaciones de las aplicaciones para este tipo de hardware,
especialmente en el caso de los teléfonos inteligentes. Al ser de
tamaño reducido, las pantallas determinan el diseño de la interfaz de
usuario y su disposición o layout. Esto provoca que cada pantalla de
la aplicación tenga menos elementos que una aplicación de escritorio;
por tanto, los menús de navegación deberán ser muy eficientes o la
aplicación tendrá limitadas sus funciones. Layout es la forma de
organizar en una pantalla los diversos elementos de una interfaz de
usuario. Otra limitación de los dispositivos móviles es el empleo de
pantallas táctiles, aunque estas faciliten la usabilidad. Los eventos
que desencadene el usuario estarán siempre provocados la pulsación
de la pantalla, y e número de acciones principales está limitado a
tres, pulsación simple, pulsación doble y arrastrar y soltar. Al no
utilizarse el ratón, se limita la posibilidad de tener acciones como
aproximación, despliegue de menús secundarios, uso de la rueda de
desplazamientos verticales y horizontales.

Limitaciones del hardware

Los dispositivos móviles nos permiten tener acceso a cualquier


aplicación informática en cualquier lugar y momento; pero a cambio,
su propio diseño limita sus capacidades de hardware. Estas
limitaciones que imponen los propios dispositivos móviles influyen de
manera notable en el diseño de aplicaciones, especialmente las
relacionadas con los siguientes aspectos:

- Memoria: Las memorias empleadas por estos dispositivos,


tanto la RAM como los volúmenes de almacenamiento, tienen
limitado su tamaño por el propio dispositivo. Le uso de estos
recursos por parte de la aplicación es un condicionante que
debe tenerse en cuenta, por ejemplo, a la hora de crear
archivos temporales o de almacenar documentos.
- Batería: es una de las limitaciones más importantes. Al no
disponer de una fuente de energía continua, el uso d la batería
por parte de las aplicaciones es crítico. Por ello, tanto en el
desarrollo como en la producción, se deben realizar pruebas
continuas de consumo de batería.
- Desconexión: tanto por una pérdida de energía como por otras
acciones (por ejemplo, la entrada de una llamada o un
mensaje), es habitual que las aplicaciones sufran interrupciones
bruscas en su funcionamiento, por lo cual deberán estar
preparadas para ello.

Las aplicaciones pueden perjudicar a la batería, no solo debido al


consumo excesivo; también pueden provocar su sobrecalentamiento
y, por tanto, daños fatales al dispositivo.

Limitaciones de seguridad

Los dispositivos móviles son elementos muy susceptibles a los


ataques de seguridad por su conexión a redes públicas. Por ello, las
aplicaciones deben tener en cuenta esta característica en su diseño e
implementar una serie de técnicas de seguridad. Por otra parte, es
también habitual su pérdida o robo, de forma que los datos
almacenados podrían quedar expuestos. Pese a que la seguridad es
un concepto común a cualquier aplicación, es cierto que los equipos
de escritorio están menos expuestos a lagunas amenazas de
integridad.

Limitaciones de comunicación

Los dispositivos móviles reciben y envían datos a través de redes


inalámbricas cuyo coste para el usuario es superior al de las redes
domésticas. Esto supone una limitación en el volumen mensual de
transferencia de datos, lo cual debe determinar el diseño de la
aplicación con el fin de evitar la transferencia de datos que no sean
estrictamente necesarios entre servidores y dispositivos.

Tecnologías disponibles

En la actualidad las tecnologías disponibles para dispositivos móviles


están dominadas en todo el mundo por el sistema operativo Android,
de la compañía Google, e iOS de Apple; a mucha distancia de estos,
hay presentes otros sistemas muy minoritarios, como Tizen de Linux y
Samsung, entre otros, o KaiOS, desarrollado po KaiOS technologies de
Nokia.

Android
Android es un sistema operativo basado en Linux para dispositivos
móviles con pantalla táctil. Inicialmente fue diseñado para teléfonos
inteligentes y tabletas, pero su uso se extiende en la actualidad a
televisores y relojes inteligentes, y a otros dispositivos multimedia. El
sistema operativo fue creado originalmente por la compañía Android
en 2003, aunque su desarrollo y su popularidad crecieron
exponencialmente al ser esta adquirida por Google en 2005. Android
es un sistema de libre distribución y código, aunque tienen una
limitación operativa debido a que los fabricantes de dispositivos
electrónicos no liberan el código de sus controladores, necesario para
que le sistema operativo funcione. De esta forma el ´código fuente de
las últimas versiones de Android siempre está disponible para su
empleo, pero no se puede instalar en un dispositivo hasta que un
fabricante no actualice sus controladores a la nueva versión. Los
fabricantes limitan de esta forma la probabilidad de que una nueva
versión de Android no funcione en sus dispositivos por falta de
especificaciones de hardware, normalmente la memoria RAM. Los
desarrolladores pueden crear aplicaciones para este sistema
operativo y distribuirlas en su Marketplace.

IOS

iOS es un sistema operativo para dispositivos móviles de Apple,


inicialmente fue diseñado en 2007 para el teléfono inteligente iPhone,
y en la actualidad su uso se ha extendido a toda clase de dispositivos
móviles fabricados por Apple. Este sistema operativo no es de libre
distribución, aunque Apple lo distribuye con sus dispositivos, ni
tampoco es libre su código. Sin embargo, gracias a un kit de
desarrollo de software, es posible crear aplicaciones para ese sistema
operativo; de hecho, miles de desarrolladores en todo el mundo crean
y las distribuyen en el App Store, la que pueden acceder los usuarios
de los dispositivos Apple.

Tizen OS

Tizen es un proyecto de la fundación Linux dirigido por un grupo


técnico que incluye la colaboración de empresas tecnológicas como
Samsung e Intel. Se tarta de un sistema operativo basado en Linux
orientado al uso de aplicaciones HTML5 y su utilización en aparatos
móviles como teléfonos inteligentes, tablets, aparatos multimedia
para coches y televisores inteligentes. Aunque originalmente fue
presentado como un sistema operativo de código abierto, el modelo
de licencias complicadas en su uso a partir de su segunda versión
complicó su expansión en el mercado. A diferencia de otros sistemas
operativos minoritarios ya desaparecidos como Sailfish, webOS o
Windows pone, Tizen abandonó prácticamente el mercado de los
smartphones. No obstante, actualmente sí tiene una presencia más
relevante e los mercados de smartwatches, televisores inteligentes y
pantallas táctiles de automóvil.

Otras tecnologías

Han existido diversos sistemas operativos minoritarios para


dispositivos móviles, además de los ya vistos, aunque la enorme
expansión de iOS y. sobre todo Android, ha ocasionado que tengan un
papel puramente testimonial. Entre los ya desaparecidos tendríamos
a Blackberry, Windows Phone, Symbian o Palm WebOS. Otoros
sistemas operativos todavía disponibles, serían algunas versiones de
distribuciones de Linux como LineageOS, Ubuntu Touch,
postmarketOS o MaemoLeste.

Entornos integrados de trabajo

Como entornos d desarrollo integrado para el desarrollo de


aplicaciones para dispositivos móviles, existen diferentes opciones
según el sistema operativo en el que se trabaje. Un IDE es una
aplicación informática para desarrolladores de software que integra
editor de código, soporte para uno o varios lenguajes, herramientas
visuales, depurador etc, con el fin de agilizar el proceso de desarrollo
de aplicaciones. En Android, existen varios IDE en el mercado, los más
destacados son los siguientes:

- Android Studio: Es el IDE oficial de Gooogle para el desarrollo de


aplicaciones para Android. Sus principales características son la
renderización en tiempo real, las plantillas comunes para
aplicaciones Android y un paquete de herramientas para
detectar problemas de rendimiento, usabilidad y compatibilidad
de versiones, entre otros.
- IntelliJ IDEA: este IDE resulta popular por brindar una excelente
asistencia de codificación a los desarrolladores de aplicaciones
de Android. IntelliJ IDEA también se considera una de las
mejores herramientas de desarrollo de Android por numerosos
profesionales. Es una aplicación de programación Java para
Android que muchos desarrolladores utilizan para crear
aplicaciones de alta calidad que responden, son rápidas y, lo
que es más importante, son estables.
- NetBeans: AL igual que Eclipse, es un IDE genérico basado en
Java. Para su uso como IDE de aplicaciones Android, es
necesario instalar los plugin NBAndroid, graddle support,
Android y NBAndroid extensions.
- Basic 4 Android: Es un IDE basado en Visual Basic para este tipo
de aplicaciones. Destaca por ser una opción de desarrollo
diferente a las anteriores basadas en Java.

En e caso de iOS, también existen algunas de las siguientes


alternativas:

- XCode: es un IDE completo para desarrollar aplicaciones iOS


distribuido por Apple. Es le IDE que la inmensa mayoría de los
desarrolladores utilizan para este tipo de aplicaciones por las
ventajas que aporta y por la integración con el Marketplace de
distribución Apple Store. Solo está soportado por equipos con el
sistema operativo Mac OS.
- Basic 4 iOS: Es la versión para iOS de Basic 4 Android y tiene las
mismas características.
- Visual Studio: a menudo este IDE se utiliza para crear
aplicaciones nativas e híbridas. Equipado con una potente
codificación, este excelente entorno permite a los
desarrolladores no solo crear aplicaciones móviles atractivas y
receptivas, sino también probar sus diversas funcionalidades.
También proporciona a los desarrolladores los datos analíticos
que les ayudan a mejorar la velocidad de la aplicación y a
proporcionar soluciones rápidas a los errores.
- AIDE (IDE de Android): Acrónimo de Adroid Integrated
Development Enviroment, básicamente proporciona las
herramientas necesarias para la creación de aplicaciones para
Android. Su particularidad es la de permitir poner a prueba el
resultado final del desarrollo directamente sobre el dispositivo,
evitando la necesidad de emuladores o engorrosas
exportaciones.

Raspberry Pi es un diminuto ordenador de bajo coste con tecnología


de placa única o computador de placa simple (SBC) desarrollado en el
reino unido por la fundación Raspberry Pi. Su objetivo es promover la
enseñanza de la informática en escuelas de todo el mundo.
Periódicamente van sacando versiones con mayor potencia de
procesamiento y prestaciones.

Módulos para el desarrollo de aplicaciones móviles

Tal como ocurre con cualquier desarrollo de software, las aplicaciones


móviles están compuestas por módulos o componentes que permiten
reutilizar el código en diferentes partes de la solución, reciclarlos para
otras aplicaciones y aislar elementos para depurar los fallos del
sistema. Los módulos de las aplicaciones móviles pueden tener
diferentes objetivos y funcionalidades según el sistema operativo y el
lenguaje en el que se escribían respondiendo a necesidades
específicas para este tipo de aplicaciones, con un diseño
característico adaptado al uso de pantallas táctiles y de tamaño
reducido. La programación modular es propiedad que permite
subdividir una aplicación en partes más pequeñas relacionadas entre
sí, denominadas módulos. Estas deben ser tan independientes como
sea posible de la propia aplicación y de las partes restantes. Para
facilitar la labor, dentro de los IDE para el desarrollo de aplicaciones
móviles se incluyen módulos o componentes que contienen
elementos habituales en las aplicaciones para incorporarlos en ellos
proyectos, por ejemplo Android Studio incluye un módulo de
componentes de interfaz para seleccionarlos con dobles clic e
insertarlos de ese modo en la superficie de diseño.

Emuladores e integración en el entorno de desarrollo

En los proyectos de aplicaciones móviles se emplean herramientas


como IDE en equipos con sistemas operativos de escritorio; por ello,
es necesario el empleo en estos equipos de emuladores sobre los que
lanzar las aplicaciones e ir comprobando se evolución a lo largo del
desarrollo. Un emulador es un software que permite ejecutar
aplicaciones en una plataforma diferente de aquella para la cual han
sido escritas. Frete a un simulador, que solo trata de reproducir el
comportamiento de la aplicación, un emulador trata de modelar de
forma precisa el dispositivo de manera que este funcione como si
estuviese siendo usado en el dispositivo de destino. Los IDE de cada
fabricante del sistema operativo de aplicaciones móviles integran un
emulador como una de sus herramientas. Un ejemplo es el caso de
Android Studio y XCode, que permiten lanzar las aplicaciones para
comprobar en tiempo real las fases de desarrollo. Los emuladores
más avanzados permiten seleccionar el dispositivo electrónico
específico sobre el que se ejecutará la aplicación, lo que facilita
realizar pruebas sobre la misma interfaz del dispositivo físico, así
como comprobar el adecuado funcionamiento de los giros de las
pantalla, los elementos de hardware como sus botones externos, etc.
Otras opciones de emuladores para Android son las siguientes:

- AMI DuOS: se trata de un emulador para Windows se la


compañía American Megatrends. Incorpora soporte para las
acciones más avanzadas que se pueden realizar con una
aplicación en un dispositivo móvil.
- Genymotion: Es un sistema de emulación que utiliza máquinas
virtuales sobre virtual box para probar aplicaciones móviles.
Soporta gran aporte de las acciones avanzadas de una
aplicación e incluye integración con varios IDE, entre ellos
Visual Studio.
- App Runtime for Chrome: Se trata de una extensión para el
navegador Chrome o el sistema operativo del mismo nombre,
desarrollada por Google para emular aplicaciones móviles de
una manera rápida y sencilla.
- Bluestacks: Se trata de un emulador Android especialmente
diseñado para videojuegos de esta plataforma

Configuración y características de IDE y dispositivos soportados

Los entonos de desarrollo integrado para la programación de


aplicaciones móviles permiten diversas configuraciones a partir de
una instalación estándar, de forma que el desarrollador puede
adaptar las herramientas a las necesidades de l a aplicación que va a
diseñar. Por el ejemplo, el IDE Android Studio permite, una vez
instalado configurar las versiones del sistema operativo Android que
se podrán emplear en la aplicación. Se puede configurar en esta ruta:
File/ Settings/Apperance & Behavior/ System Settings / Android SDK;
en la pestaña SDK platforms se pueden marcar las diferentes
versiones de Android que se instalarán. En la misma ventana de
configuración de la ruta anterior, en la pestaña SDK Tools se pueden
configurar las herramientas con las que se desarrollarán aplicaciones,
incluyendo entre ellas las necesarias para subir los desarrollos al
Marketplace de Android. Otra de las opciones de configuración de
este IDE es la posibilidad de incluir plugins para mejorar la eficiencia
de los desarrollos en la siguiente ruta:
File /Settings/ Apperance & Behavior / System Settings / Plugins; se
pueden implementar una serie de plugins con diversas
funcionalidades Además de las ya mencionadas, los IDE disponen de
una serie de funcionalidades que los convierten en herramientas
ideales para los desarrolladores de aplicaciones móviles. Entre ellas
destacan las siguientes:

Editor de código Se incluye un editor de código con soporte para


diferentes lenguajes de programación
Paletas gráficas Se incorporan paletas con elementos de interfaz
de usuario para añadirlos gráficamente a la
aplicación
Compilador El IDE compila el código para ejecutar la
aplicación en tiempo real. Los IDE más
avanzados disponen de emulador, pero también
se puede incorporar de manera externa.
Depurador El IDE incorpora un depurador para la
comprobación constante del código
Sistemas de Algunos IDE incluyen un sistema de control de
control de versiones muy útil para el seguimiento del
versiones desarrollo

Para los IDE que incorporan emuladores, o bien para aquellos que
utilizan emuladores de terceros, estas aplicaciones soportan una serie
de dispositivos móviles. En el caso de Android Studio, cuando se crea
un proyecto, es posible seleccionar el tipo de dispositivo de destino
del proyecto que se va a desarrolla, y se dispone de opciones como
teléfonos y tabletas inteligentes, televisores inteligentes, relojes
inteligentes y dispositivos werables. Los dispositivos werables son una
de las evoluciones más avanzadas de las aplicaciones informáticas,
ya que estas se incluyen en objetos que el usuario utiliza en contacto
con su cuerpo; por ejemplo, unas zapatillas de running que incorporen
un dispositivo electrónico y su aplicación para realizar métricas de las
carreras que realiza el usuario. También los emuladores permiten
elegir el modelo exacto de dispositivo electrónico en el que se ejecuta
la aplicación.

Arquitectura de las aplicaciones móviles

Los diferentes lenguajes para las aplicaciones determinan la


arquitectura de las mismas y la jerarquía entre sus componentes,
perfiles, clases, etc. En el caso de las aplicaciones móviles basadas en
Java 2, se emplea la edición J2ME (Java 2 Micro Edition), idónea para
desarrollar aplicaciones móviles, que también se denominan MIDILets
por analogía a los applets. J2ME presenta una arquitectura
estructurada en tres niveles, Perfiles (paquetes opcionales),
configuraciones y máquinas virtuales java (sistema operativo).

- Máquina virtual: Contiene la máquina virtual de Java; en este


caso, una versión reducida con algunas librerías básicas.
- Configuración: La configuración es el conjunto de clases
disponibles en una categoría de dispositivos móviles que se
estableces según sus capacidades de hardware. Cada
configuración estará relacionada con una máquina virtual.
- Perfil: es un conjunto de clases Java para complementar la
configuración de un determinado grupo de dispositivos. Los
perfiles son los que permiten definir el ciclo de vida de la
aplicación, la interfaz de usuario y el acceso a los servicios de
cada categoría de dispositivos.

Además, se puede incluir paquetes opcionales para determinadas


funcionalidades que se puedan emplear solo en algunos dispositivos.;
por ejemplo, la API de comunicación GPS, tarjetas gráficas, etc.
Perfiles y jerarquía de clases

En el caso de la máquina virtual CDC, la más utilizadas dentro de las


disponibles en J2ME, java dispone de tres perfiles: Foundation Profile,
Personal profile y Personal Basis Profile.

Foundation profile: Constituye la base para los otros perfiles mediante


la API de comunicación entre todos los componentes y la máquina
virtual, No aporta API de interfaz de usuario, contine los siguientes
paquetes:

- Java.lang. Paquete de - Java.util Soporte para


java completo varias clases de utilidades
- Java.io Paquetes de - Java.tex Soporte para
entradas y salidas. internalización de idioma
- Java.net Soporte para los - Java.security Soporte para
protocolos TCP y HTTP codificación y
certificados.

Personal Profile: este perfil amplía el anterior con paquetes para la


interfaz de usuario. Está basado en Personal Java y puede ser
empleado para una amplia variedad de dispositivos. Susa
características son:

- Componentes del AWT - Soporte para applets y


- Soporte paraBig Decimal Xlets, incluida su
y Big Integer comunicación.
- Soporte para Java Beans

Personal Basis Profile: se trata de un subconjunto del perfil anterior,


Personal Profile. Está diseñado para dispositivos como los televisores
inteligentes e incluye soporte para la plataforma MHP Java también se
incluye soporte para otros electrodomésticos, como sistemas de
audio, vídeo, televisión por cable interactiva.

Ciclo de vida para una aplicación para dispositivos móviles

Mediante el sistema de gestión de aplicaciones AMS (Application


Management software), las aplicaciones móviles pasan durante su
ciclo de vida en estos entornos por las cinco fases que se detallan:

- Descubrimiento: Es la etapa previa a la instalación de la


aplicación, mediante la cual el AMS gestiona la descarga de la
aplicación seleccionada por el usuario y controla las
necesidades para que esté conectado a la red eléctrica o al
menos tenga un porcentaje de batería.
- Instalación: Se tarta de la etapa de instalación de aplicación en
el dispositivo con todas sus clases, archivos y almacenamiento
persistente. El AMS controla el proceso e indica al usuario se
produce algún problema durante el mismo.
- Ejecución: Se trata de la etapa de ejecución de la aplicación, en
la que el AMS se encarga de la gestión de los estados de la
misma.
- Actualización: En esta etapa, el AMS se encarga de informar al
usuario de la existencia o no de actualizaciones para la
aplicación.
- Borrado: en esta última etapa del ciclo de vida de las
aplicaciones, el AMS gestiona el borrado de aplicación tras la
petición realizada por el usuario.

Modelo de estados de una aplicación para dispositivos móviles.

Dentro de la etapa de ejecución de una aplicación móvil, esta puede


pasar por tres estados, que se definen a continuación:

- Activo: en este estado la aplicación se encuentra en tipo de


ejecución y se carga en la memoria volátil de dispositivo para
ser ejecutada.
- Pausa: Cuando se inicia otro proceso en el dispositivo, como la
entrada de una llamada, la aplicación pasa a un estado de
pausa. El cambio de estado se producirá en la memoria volátil.
- Destruido: En caso de que el usuario no quiera seguir usando la
aplicación para no consumir recursos en el dispositivo, esta
pasará a estado destruido. La aplicación no es borrada, puesto
que continúa en el almacenamiento persistente, pero libera la
memoria volátil para otros procesos.

Las aplicaciones utilizarán métodos de la plataforma para que se


produzca la transición entre uno y otro.

Modificación y compilación de aplicaciones

Las aplicaciones para dispositivos móviles en J2ME, también llamados


MIDILets se programan en entornos de desarrollo integrado IDE,
generalmente Eclipse o NEtbeans, ya que son IDE especialmente
diseñados para trabajar con java como lenguaje base. Estos IDE
permiten la creación y modificación del código de estas apliaicones
mediante los siguientes pasos:
- Crear un proyecto nuevo o abrir uno existente, mediante las
opciones New Project y Open Project, respectivamente.
- Configurar la aplicación MIDILet mediante la opción preferences
- Compilar la apliacón mediante la opción Build
- Ejecutar la aplicación con la opción Build.
- Empaquetar para su distribución en archivos Jar y JAD,
mediante la opción de la ruta Project/Package / Create Package

Utilización del entorno de ejecución del administrador de aplicaciones

Como se detalló anteriormente, el administrador de aplicaciones


(AMS) en J2ME es el software implementado en un dispositivo móvil
responsable de las etapas del ciclo de vida de las aplicaciones, así
como de su estado. Cuando el AMS inicia una aplicación, permite a
esta los siguientes accesos:

- Acceso a la CLDC y a la JVM, permite a los MIDIlet hacer uso de


cualquier clase definida dentro de las máquinas virtuales.
- Acceso a las clases del MIDP, permite el acceso a estas librerías
o paquetes para implementar la interfaz de usuario, el
almacenamiento persistente y el soporte de redes, entre otras
funcionalidades.
- Acceso al archivo JAR: en el caso de que el MIDILet sea
entregado usando un archivo JAR, cualquier clase u otros
recursos dentro del archivo estarán disponibles.
- Acceso al archivo JAD: en el caso de que el MIDIlet tenga un
archivo descriptor, se permitirá el acceso al mismo.

También podría gustarte