top of page

¿Cómo elegir el tipo de aplicación móvil que debo desarrollar?


Cuando se realiza el desarrollo de una aplicación móvil, es importante seleccionar la tecnología de desarrollo apropiada para el tipo seleccionado. Si es una aplicación nativa, se pueden utilizar lenguajes de programación ad-hoc como Java y Flutter en el caso de Android, como también Objective-C y Swift en el caso de iOS. Por otro lado, cuando hablamos de una aplicación híbrida, existen numerosos frameworks de desarrollo basado en JQuery, VUE o dialectos tipo script que pueden facilitar el desarrollo rápido de este tipo de aplicaciones. Sin embargo ¿cómo elijo correctamente si debo realizar una aplicación nativa o híbrida?


Esta pregunta para mí es crucial más que seleccionar un lenguaje, ya que de eso dependen tanto el tiempo de desarrollo como también los recursos que debemos considerar dentro de un proyecto de software. Más aún, cuando estamos haciendo un emprendimiento, el seleccionar correctamente implica cuánto es el capital inicial que debo invertir para lograr el objetivo deseado. En este artículo quiero compartir con ustedes los puntos que, a mi juicio, deben ser los cruciales para la toma de esta decisión, de manera de que el resultado sea un producto exitoso.


Tipos de Aplicaciones Móviles

Para entender bien cómo elegir si vamos a desarrollar una aplicación nativa o híbrida, debemos tener claro cuáles son las características de cada una de ellas.


Las Aplicaciones Móviles Nativas son aquellas que son desarrolladas en los lenguajes propios de cada sistema operativo para dispositivos móviles. Es así, por ejemplo, para dispositivos móviles cuyo sistema operativo es Android, se pueden desarrollar en Java, utilizando el kit de desarrollo de Android (SDK), como también en Kotlin, un lenguaje que corre sobre la máquina virtual de Java y que permite desarrollar aplicaciones para éste sistema operativo. También, para el sistema operativo iOS, se puede utilizar el lenguaje Objective-C, primer lenguaje de desarrollo que fue utilizado en este sistema operativo, como también en Swift, que es el lenguaje oficial en la actualidad para el mismo.


Las ventajas que tiene el desarrollo de aplicaciones nativas es que, como son desarrolladas utilizando las mismas librerías que para el sistema operativo, tienen acceso directo a sus funcionalidades, permitiendo el manejo eficiente tanto de las funciones propias del dispositivo (llamadas, mensajes, internet, etc), como también los periféricos que éstos tienen (GPS, acelerómetro, giroscopio, cámara, almacenamiento interno, tarjeta de memoria, etc). La desventaja es que, para desarrollar aplicaciones para diferentes sistemas operativos, es necesario desarrollar una aplicación por cada uno, haciéndolo más costoso tanto por el tiempo requerido, como también por la factibilidad económica de lla misma.


Las Aplicaciones Móviles Web Adaptativas y Responsivas son tipos de aplicaciones que permiten desplegar, en un dispositivo móvil, el contenido de una página web ajustándose a las características de usabilidad del mismo (dimensiones, orientación, interacción, etc). Este tipo de aplicaciones están desarrolladas en el mismo lenguaje de las páginas web (HTML) y son compatibles con las extensiones propias de ésta (Javascript, jQuery, XML, etc), sin embargo, para ser visualizadas en el dispositivo, requieren una aplicación de navegación de internet como Chrome, Opera, Firefox, entre otros.


La diferencia entre una aplicación adaptativa y una responsiva es la forma en la cual se ajustan al dispositivo. La primera, es una versión “especial” para ser visualizada en un navegador móvil de internet, muchas veces a través de aplicaciones de terceros que “convierten” la parte visual a móvil. Por otro lado, la aplicación responsiva es una aplicación web diseñada para ser visualizada en cualquier dispositivo, ajustándose directamente a las dimensiones y orientación del mismo.


La gran ventaja que tiene una aplicación web por sobre otras es la facilidad del desarrollo de éstas por su lenguaje. Al ser una aplicación web, todo el procesamiento puede quedar en un servidor, mientras que la visualización está a cargo del navegador de internet del dispositivo. La desventaja es que por su naturaleza web, no pueden acceder a las funcionalidades nativas del dispositivo, ni tampoco a los periféricos de éstos, como también necesitar estar conectados a internet todo el tiempo para realizar cualquier tipo de acción en ella.


Las Aplicaciones Móviles Híbridas utilizan las ventajas que tienen las aplicaciones nativas y las aplicaciones web, creando un marco de trabajo más cómodo y multiplataforma. Estas aplicaciones por lo general utilizan frameworks que permiten el desarrollo en un lenguaje único para el desarrollo para los sistemas operativos, típicamente basados en Javascript o lenguajes de programación de tipos script. Entre los lenguajes de programación más comunes para este tipo de aplicaciones, podemos mencionar a React, lenguaje de programación desarrollado y masificado por Facebook, Ionic, un marco de trabajo basado en Javascript, y Flutter, un marco de trabajo que utiliza el lenguaje Dart como base y que es considerado como el lenguaje de desarrollo de aplicaciones móviles de Google.


Las ventajas de las aplicaciones híbridas son variadas. La primera es que, al ser un solo lenguaje de programación, no se requieren conocimientos expertos en lenguajes específicos por cada sistema operativo, por lo que al momento de desarrollar aplicaciones no se requiere duplicar esfuerzos en tiempo y económicos. Otro punto importante es que los frameworks disponibles, muchos están basados en Javascript, un lenguaje de programación sencillo de aprender y masificado entre los desarrolladores web. Por último, y no menos importante, es que cada framework posee bibliotecas que le permiten a la aplicación híbrida interactuar con el sistema operativo, permitiendo el acceso a funciones nativas, como también a los periféricos de los dispositivos.


Algunas desventajas es que algunos lenguajes híbridos dependen directamente de la comunidad de desarrollo para recibir actualizaciones al tiempo de que los sistemas operativos evolucionan, provocando muchas veces que funciones que antes operaban sin problemas, deban ser corregidas posteriormente al lanzamiento de las nuevas versiones. Por otro lado, al ser híbridos, requieren de capas adicionales para llegar a interactuar con el dispositivo, lo que puede provocar en ocasiones que sean más lentas que las aplicaciones nativas.



Imagen tomada de App Design


¿Cómo podemos elegir entonces?

Después de haber entendido las diferencias entre cada una, podemos primero pensar en descartar las aplicaciones web adaptativas y responsivas, ya que cada una de ellas debe considerar la visualización dentro de un dispositivo móvil desde su diseño. Así que, por ahora, solo veremos los puntos de comparación entre las aplicaciones nativas y las híbridas.


Planificación y Presupuesto

Una de las grandes diferencias entre las aplicaciones nativas y las híbridas es la cantidad y el tipo de recursos que se requieren para su desarrollo. Por esta razón, uno de los factores más importantes es si el proyecto tiene una planificación o un presupuesto ajustado.


Cuando hablamos de desarrollos nativos, por lo general los tiempos son más largos que los híbridos, ya que requieren un desarrollo por sistema operativo, lo que por supuesto no muchos clientes estarán dispuestos a considerar en la planificación. Por otro lado, para evitar esta duplicación de tiempo, muchos equipos de desarrollo prefieren tener un desarrollador por cada sistema operativo, pero en este caso el costo del proyecto finalmente se incrementa de acuerdo al costo de cada profesional respectivo. Está demás decir que el costo entre cada especialista no es el mismo, dejando, por ejemplo, los desarrolladores para iOS entre los más costosos del mercado.


Complejidad

Otra característica importante a considerar al momento de desarrollar aplicaciones es la complejidad de éstas. Y cuando nos referimos a ésto, queremos decir qué tanto procesamiento y uso de periféricos requiere la aplicación que es necesario desarrollar.


Cuando hablamos de desarrollos nativos, por lo general poseen bibliotecas para utilizar los servicios del dispositivo que hacen mucho más sencillo el desarrollo de los mismos, esto porque por lo general utilizan las mismas bibliotecas de funciones que el sistema operativo posee en su core, asegurando la compatibilidad en cada upgrade. Por otro lado, cuando hablamos de desarrollos híbridos, éstos deben pasar por máquinas virtuales o traductores que permitan el acceso nativo a las prestaciones del dispositivo. Sin embargo, estas bibliotecas propias del lenguaje híbrido no pueden asegurar que siempre estarán actualizadas cuando haya un cambio en el sistema operativo (como por ejemplo, cuando sube la versión), lo que no asegura la compatibilidad de todos los desarrollos hasta que la comunidad actualice cada biblioteca.


Habilidades del Equipo

Cuando hablamos de las habilidades que tiene el equipo de desarrollo, toma importancia en la decisión si es que no tenemos opción para incorporar recursos especializados. Considerar los conocimientos y habilidades que tienen los desarrolladores antes de comenzar el desarrollo preguntándonos ¿saben desarrollo en lenguajes nativos o lenguajes híbridos? ¿tienen capacidad de aprender uno de los lenguajes que sean requeridos? ¿tenemos la capacidad de capacitarlos?. Todas éstas son preguntas muy importantes de realizar antes de que se comience el desarrollo y antes de tomar la decisión de si hacerlo nativo o híbrido.


Experiencia de Usuario

La experiencia de usuario es, probablemente, una de las características de las aplicaciones móviles que nos lleven al éxito o fracaso de éstas. Cuando hablamos de usabilidad y experiencia de usuario, estamos hablando de cómo el usuario va a interactuar con la aplicación, como también el sentimiento que le vamos a dejar, que esperamos sea positivo, luego de hacerlo.


Algo que se conoce es que en término de usabilidad, cada sistema operativo posee sus propias características. Por ejemplo, el órden de las acciones “Aceptar” y “Cancelar” en Android e iOS están invertidas a su competidor. Es por eso que cuando necesitamos experiencias absolutamente cercanas a los usuarios de cada sistema operativo, el desarrollo nativo es el que provee la mayor capacidad para satisfacerlas. En cambio, cuando hablamos de desarrollos híbridos, como las interfaces de usuario se hacen una sola vez, obtener una experiencia de usuario diferenciada se hace más difícil. Sin embargo, algunos frameworks de desarrollo como React, se preocupan de ajustar la usabilidad de los componentes dependiendo de dónde serán utilizados.


Imagen tomada de RG Principal


En Resumen

Como verán, las decisiones de una u otra tecnología de desarrollo de aplicaciones móviles no define qué tipo de aplicación es mejor que otra, sino que depende totalmente de lo que tengamos definido como proyecto, presupuesto, tiempo y equipo de trabajo. Personalmente, puedo decir que, dependiendo del proyecto, mi recomendación podría variar. Por eso es importante primero evaluar bien qué es lo que queremos realizar y obtener antes de dejarnos llevar por la tecnología que hoy puede estar en boca de todos.


Espero que les sea de interés y utilidad.


43 visualizaciones0 comentarios

Entradas Recientes

Ver todo

コメント


bottom of page