Android Virtual Device (AVD).

Un Dispositivo Virtual Android es un emulador que permite simular un dispositivo físico en el ordenador, cuyo objetivo es permitir que el desarrollador pueda probar sus aplicaciones sin la necesidad de tener un dispositivo físico.

Es importante mencionar que mientras más sofisticado sea el dispositivo a emular, más recursos del ordenador utilizara, por lo cual será necesario estimar de forma correcta los recursos que el ordenador empleara para el emulador el dispositivo, esto con el fin de evitar problemas de rendimiento e inestabilidad del SO del ordenador.

Clasificación de las Aplicaciones Móviles.

Las aplicaciones móviles pueden clasificarse de acuerdo a su funcionalidad y arquitectura, tal y como se describe a continuación:

Clasificación de acuerdo a su funcionalidad.

  • Aplicaciones de Accesibilidad: Este tipo de aplicaciones están diseñadas para facilitar el uso del dispositivo a todo aquel usuario que tiene algún tipo de discapacidad, ejemplo de ellas son: reconocimiento de voz, de caracteres, lectura de texto, etc.
  • Aplicaciones de Sistema: Son todas aquellas aplicaciones que están relacionadas con el funcionamiento del dispositivo, tales como compresores de archivos, gestión de recursos, registro de llamadas, gestión de contactos, etc.
  • Aplicaciones Ofimáticas: Aplicaciones que permiten al usuario manipular documentos de texto, hojas de cálculo, pdf’s, etc.
  • Aplicaciones de Juegos: Este tipo de aplicaciones brindan entretenimiento y diversión a los usuarios.
  • Aplicaciones de Organización: Representan a toda aquella aplicación que permite a los usuarios organizar sus datos personales, contactos, notas, calendario, etc.
  • Aplicaciones Web: Este tipo de aplicaciones requieren de una conexión estable a internet para brindar su funcionalidad, ejemplo de ellas son: navegadores web, Gmail, YouTube, Facebook, Twitter, Google Maps, etc.

Clasificación de acuerdo a su arquitectura.

Aplicaciones Nativas: Son todas aquellas aplicaciones que son construidas de forma específica para un sistema operativo a través de un Kit de Desarrollo de Software  (SDK).

Ventajas:

  • Permiten el acceso a todas las características de hardware del dispositivo móvil a través de la solicitud de permisos, los cuales son solicitados al usuario en el momento en que instala la aplicación, aunque también podrían solicitarse en el momento en que se desea acceder al uso del hardware.
  • Cuando se construyen interfaces graficas con componentes nativos, se tiene como garantía una mejor experiencia de usuario en el uso de la aplicación, debido a que los controles nativos explotan de forma óptima los recursos del dispositivo móvil al momento de renderizarse y brindar su respectiva funcionalidad al usuario.
  • No dependen de una conexión a internet para poder funcionar.
  • Su distribución y actualización es sencilla, debido a que generalmente se lleva a cabo a través de un market de aplicaciones.

Desventajas:

  • Su costo de desarrollo es elevado, debido a que se necesita emplear especialistas expertos para diseñar una aplicación que aproveche de forma óptima los recursos de los dispositivos móviles.
  • El código de la aplicación no es reutilizable para otros SO.

Aplicaciones Web: Este tipo de aplicaciones requieren de una conexión activa para poder brindar su funcionalidad, ya que su funcionalidad depende de la conectividad que tenga hacia uno o n servidores alojados en la nube o en una red local.

Ventajas:

  • Al ser construidas bajo principios de desarrollo de aplicaciones web, se puede lograr un FrontEnd robusto capaz de adaptarse a cualquier resolución de pantalla de los dispositivos cliente.
  • El rendimiento de este tipo de aplicaciones es muy óptimo, debido a que el o los servidores a los que se conectan, son los encargados de ejecutar toda la carga de trabajo.
  • Su distribución y actualización es sencilla, debido a que generalmente se lleva a cabo a través de un market de aplicaciones.

Desventajas:

  • El acceso al hardware del dispositivo es más complicado, debido a que se tienen que crear interfaces de comunicación a código nativo para hacer uso de los mismos.
  • Son aplicaciones orientadas a la conexión, lo que implica que si no existe conexión al o los servidores, estas no serán capaces de brindar su funcionalidad a los clientes.

Aplicaciones Hibridas: Este tipo de aplicaciones combina las características de una aplicación nativa con una aplicación web.

Ventajas:

  • El instalador generado para la aplicación contiene código tanto nativo y web, permitiendo aprovechar cada una de las características de cada uno de los tipos de aplicación.
  • Generalmente son aplicaciones robustas en cuestiones de FrontEnd.
  • Su distribución y actualización es sencilla, debido a que generalmente se lleva a cabo a través de un market de aplicaciones.

Desventajas:

  • Los desarrolladores necesitan tener amplios conocimientos tanto en aplicaciones web y nativas para construir este tipo de aplicaciones.
  • Algunas veces el acceso al hardware del dispositivo móvil es complejo, debido a que se hace de una forma genérica, lo cual no asegura que sea capaz de funcionar en toda la gama de dispositivos existentes en el mercado.
  • Generalmente son aplicaciones orientadas a la conexión, lo que implica una conexión a internet estable para brindar su funcionalidad.