Aranda de Duero, Burgos, España

610 23 28 39 info@robertoleon89.com

Aplicaciones nativas, híbridas y web

S.O. Móviles

Cuando pretendemos desarrollar una aplicación móvil, nos podemos encontrar con un dilema que debemos solucionar antes de empezar: «¿Como debo desarrollar mi aplicación?», ya que hay tres tipos de aplicaciones diferenciadas que determinarán nuestro desarrollo:

  • Aplicaciones nativas.
  • Aplicaciones híbridas.
  • Aplicaciones web.

Comencemos explicando las diferencias entre ellas.

Tipos de aplicaciones

Aplicaciones nativas

La aplicaciones nativas son aquellas, que se desarrollan con el lenguaje propio de cada S.O. móvil. Por ejemplo: para desarrollar una aplicación para Android, hay que hacerlo en Java.

Cada plataforma, subministra un lenguaje de desarrollo y unas librerías, capaces de interactuar con el dispositivo. Dichos lenguajes, pueden ser compartidos con más plataformas, como Java y .Net, o propios.

Para desarrollar una aplicación para distintas plataformas, se necesita del conocimiento de los distintos lenguajes, y la creación de un proyecto distinto por cada una, por lo que encarece los costes de conocimiento y tiempo, pero a su vez, ofrecen una mayor experiencia de usuario.

Los distintos lenguajes son:

  • Android: Java, compatible con todos los S.O. de los equipos informáticos.
  • IOS: Swift (antiguamente con Objetive-C) compatible con equipos con MacOSX.
  • Windows mobile: C# y Visual Basic .NET, compatibles con equipos Windows.
  • Blackberry: C++.

Ventajas:

  • Ofrecen mejor experiencia de usuario.
  • Optimizan el rendimiento de la aplicación.
  • Integran los elementos gráficos propios de cada sistema operativo.
  • Ofrecen actualizaciones de seguridad del SDK.
  • Permiten el envio de notificaciones push.
  • Permiten ofrecer compras integradas.

Inconvenientes:

  • Hace falta crear un proyecto distinto para cada plataforma, sin la posibilidad de reutilizar código.
  • En necesario el conocimiento de los distintos lenguajes o contar con el equipo de desarrolladores con dichos conocimientos.
  • Las actualizaciones hay que realizarlas por duplicado.
  • El tiempo de desarrollo se multiplica por el número de plataformas con las que trabaja.

Aplicaciones híbridas

Son aquellas que se desarrollan con el lenguaje de desarrollo web llamado HTML5, y finalmente exportados a las distintas plataformas como un navegador web integrado en una aplicación móvil nativa.

Se desarrollan en distinto orden, primero se crea la aplicación móvil (estructura web), y finalmente son exportados a las distintas plataformas en forma de proyectos a través de algún framework. El framework más popular es PhoneGap, aunque no el único.

Sin entrar en detalle en el funcionamiento de PhoneGap, sólo decir, que la mayoría del tiempo de desarrollo se invierte en crear la estructura web.

Las aplicaciones híbridas, en principio no permiten interactuar con el hardware del dispositivo (GPS, acelerómetro, etc…), aunque a través de plugins es posible. Hay que tener en cuenta que no es igual de óptimo interactuar con código híbrido que con código nativo.

Únicamente es necesario un conocimiento de los lenguajes de desarrollo web, que son:

  1. HTML5: destinado a crear una estructura de contenido dentro de la pantalla.
  2. CSS3: destinado a dar un formato visual adecuado a cada elemento.
  3. JavaScript: destinado a dar una funcionalidad a los distintos elementos de la aplicación, como los botones.
  4. PHP o ASP.NET: son los lenguajes de servidor (dependiendo la plataforma de cada uno) destinados a interactuar con datos almacenados de forma online, como pueden ser una base de datos.

Ventajas:

  • Un único lenguaje de desarrollo, HTML5 (con sus sub-lenguajes).
  • Menor tiempo de desarrollo y de actualización.
  • Mayor libertad a la hora de realizar una maquetación única y exclusiva (diseño).
  • Menores costes, ya que no es necesario un equipo de técnicos (lo puede realizar una única persona).

Inconvenientes:

  • No se puede interactuar con el hardware de igual manera.
  • No permiten trabajar con el resto de las librerías del S.O.
  • El código fuente puede ser copiado o utilizado si no es almacenado correctamente.
  • No se puede trabajar con todas las opciones de los principales Stores, ya que no pueden analizar la aplicación internamente, ni pueden depurar los errores.

Aplicaciones Web

Son aquellas que están ubicadas en servidores online, y ejecutadas a través del navegador de nuestro dispositivo, por lo tanto la búsqueda es a través de la búsqueda de una URL.

El desarrollo es similar a las aplicaciones híbridas, ya que se desarrollan en el mismo lenguaje (HTML5), con la única diferencia de que al estar alojadas directamente en servidores online, hay que hacerlas adaptativas (permitir la navegación tanto con dispositivos móviles, como ordenadores).

Para las aplicaciones con acceso restringido (únicamente visibles por algunos usuarios), es importante realizar un control de acceso seguro.

La diferencia con las aplicaciones híbridas, es que no se instalan directamente en el dispositivo, por lo que es necesaria conexión a internet, y para poder entrar hay que realizar la búsqueda a través del navegador.

Ventajas:

  • Desarrollo rápido y económico, con la misma tecnología que las aplicaciones híbridas.
  • Capacidad de actualización instantanea, ya que es posible que no trabaje con datos caché.

Inconvenientes:

  • Al no encontrase en los Stores no es facilmente localizable.
  • El código es público (excepto el lenguaje de servidor), por lo que es posible su copia y se convierten en más inseguras.
  • No hay ninguna posibilidad a interactuar con el hardware del dispositivo.
  • No se puede instalar.

Factores a tener en cuenta para el desarrollo de la aplicación

Factor económico

Antes de ponerse manos a la obra, hay que tener en cuenta con los recursos con los que contamos, ya que las aplicaciones nativas resultan más caras.

Factores tecnológicos

Debemos de pensar en la utilización de los recursos hardware de nuestro dispositivo (por ejemplo el GPS), y saber, que aunque sea posible, la forma más optima es el código nativo, o como contrapunto que sea una aplicación que únicamente va a leer y escribir datos en una base de datos, por lo que es más efectivo las aplicaciones basadas en HTML5.

Capacidad de actualización

Si la aplicación va a ser actualizada constantemente, es conveniente pensar en las aplicaciones basadas en HTML5, ya que el tiempo es menor.

Tiempo de desarrollo

Si la aplicación es urgente, y se necesita en más de una plataforma (como es habitual), es conveniente realizarla en HTML5.

Diseño

Si el diseño es único y exclusivo, y necesariamente la maquetación tenga que ser perfecta, es conveniente recurrir a las aplicaciones híbridas o web.

Como contrapunto si la aplicación, es estándar, lo ideal es recurrir a las nativas, ya que nos ofrecen todas las librerías de elementos, con funcionalidad integrada.

Conclusión

En mi opinión como desarrollador, con un ordenador Apple, siempre que sea posible hay que recurrir a los lenguajes nativos, pero claro está, que no siempre es posible, por lo que antes de echarse atrás y dejarlo en el olvido, es preferible realizarla en código híbrido.

 

One thought on “Aplicaciones nativas, híbridas y web”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *