• Ludwing Rivera

Apps: Híbridas, Nativas, Progresivas, y Confusívas

Sabemos que en el momento de decidir el desarrollo de una aplicación, existen muchos términos, tecnologías, y plataformas disponibles. Es difícil tomar la decision de cuales son las tecnologías adecuada, pues siempre nos enfrentaremos con opiniones sobre la posibilidad de una mejor opción.

Por eso, queremos explicarles los diferentes tipos de aplicaciones; para cuando llegue el momento de elegir, puedan hacerlo de una forma informada.


¿Cuáles son los tipos de aplicaciones móviles que existen?


Aplicaciones Nativas


Las aplicaciones nativas son aquellas que han sido desarrolladas en un lenguaje particular y de forma específica para un determinado sistema operativo. En concreto, para Android, iOS, y recientemente Huawei.


Hasta hace unos años, existían 3 sistemas operativos, que se repartían el mercado de los smartphones a nivel mundial. Hablamos de Android, iOS y Windows Phone.

Para que nos hagamos una idea, la cuota de mercado de los sistemas operativos es la siguiente. Para móviles es de casi un 90% para Android y un poco más del 10% para iOS.


Para desarrollar una aplicación en Android se utiliza el lenguaje de programación Kotlin (aunque podemos seguir utilizando Java). Las aplicaciones para Huawei utilizan el mismo desarrollo fuente de Android.


Por otra parte, para hacer el desarrollo de una app nativa iOS es necesario conocer el lenguaje Swift.


Una vez terminado el desarrollo en lenguaje nativo, éste se debe subir a las tiendas de apps para que sea validado por el equipo de Android, Huawei, iOS. Superada la evaluación, nuestras aplicaciones se podrán encontrar en sus respectivas tiendas (Google Play, Huawei Store, y App Store).


Web Apps o Progressive Web Apps (PWAs)


Las web apps o Progressive Web Apps son aplicaciones que están a medio camino entre una aplicación web y una aplicación nativa. Es decir, son aplicaciones web que corren sobre un navegador web, pero, que a través de los service workers y otras tecnologías, son capaces de comportarse como aplicaciones móviles.


Incluso se puede acceder a funcionalidades en segundo plano o el uso de notificaciones push. De hecho, puedes añadirlas a la pantalla de inicio de tu Smartphone, exactamente como si fueran aplicaciones nativas.


Aplicaciones Híbridas


El desarrollo de aplicaciones híbridas se realiza a través del lenguaje de programación web. Cuando el equipo de desarrollo acaba de picar todo el código fuente, son compiladas y se convierten al lenguaje de programación específico de un sistema operativo. Es decir, tendríamos el mismo resultado que con las aplicaciones nativas.


Los frameworks (entornos de trabajo) que se utilizan para el desarrollo de estas aplicaciones han avanzado muchísimo desde las primeras versiones. Hoy en día llegan a alcanzar unas prestaciones que nada tienen que envidiar a las apps nativas. Por ello, queremos apostar por el uso de las aplicaciones híbridas mediante argumentos.


Frameworks para desarrollar aplicaciones híbridas

Existen diferentes frameworks para desarrollar aplicaciones híbridas. Sus funcionalidades, capacidades, y desempeño cambian cada vez que se lanza una nueva versión de ellos.


Hoy queremos comparar los más utilizados.




Ionic

Ionic es una estructura tecnológica (Framework) de código abierto que se utiliza en el desarrollo de aplicaciones móviles híbridas, es decir, se combinan el HTML5, CSS y JavaScript dando como resultado aplicaciones con una interfaz amigable e intuitiva para el usuario que luego se comercializan o descargan en plataformas como Android o iOS.


Ventajas

  • Se puede programar con diferentes Frameworks, como son: Angular, Vue, React.

  • Es moderno y está diseñado para trabajar con lo más actual, con un diseño limpio y pulcro.

  • Se puede crear, construir, y compilar apps en cualquier plataforma, todo con un solo comando.

  • Está hecho para ser rápido, al momento de diseñar e implementar.

  • Básicamente permite crear las Interfaces sin tener que agregar código, es decir crear la parte gráfica fácil sin tocar el código para nada.

Desventajas

  • No tiene todas las funcionalidades que puede tener una app nativa, ya que no cuenta con todos los complementos necesarios para todos los requisitos y puede llevar más tiempo desarrollar nuevos complementos por separado.

  • No es recomendable para proyectos que consuman recursos gráficos muy altos como (juegos o aquellos que representan muchos modelos 3D).

  • Puede que algunos componentes toque programarlos específicamente para iOS.


React Native

Es un framework de desarrollo móvil multi-plataforma de código abierto. Permite desarrollar aplicaciones iOS y Android con JavaScript y bastantes APIs de componentes nativos, haciendo la integración entre componentes nativos y el código Web.


Ventajas

  • El marco React Native implementa una selección de componentes de UI nativos. Las aplicaciones se verán cómo aplicaciones nativas.

  • Muchos servicios de terceros han creado API y complementos para aplicaciones React Native. Hay soporte de terceros para mapas, sistemas de pago, gráficos y más.

  • Gran comunidad y ecosistema. Existe una comunidad sustancial en torno a React Native, que es una plataforma de código abierto. Una buena comunidad es una ventaja porque significa que es menos probable que los desarrolladores se atasquen, ya que siempre hay alguien a quien acudir en busca de ayuda. También hay mayor campo de recursos para emplear.

  • Está hecho para ser rápido, al momento de diseñar e implementar.

Desventajas

  • Debido a que las aplicaciones multi-plataforma no están completamente alineadas con el hardware del dispositivo, su rendimiento es un poco más bajo que el de las aplicaciones nativas.

  • Tiene algunas limitaciones que hace necesario involucrar a los desarrolladores nativos.

  • React Native no es completamente una herramienta multi-plataforma. Para usar algunas funciones como la cámara o el acelerómetro, debes usar componentes nativos, por lo que habrá un código separado para Android e iOS.

  • Las aplicaciones React Native tardan más en iniciarse, incluso con dispositivos de gama alta, porque el puente de JavaScript también tarda en inicializarse.


Xamarin

Xamarin se lanzó en 2011 como un marco de desarrollo de aplicaciones cruzadas independiente, pero luego fue adquirido por Microsoft en 2016, lo que le otorga más credibilidad que antes. Es un marco de código abierto que se lanzó para resolver el problema del desarrollo de aplicaciones móviles para más de una plataforma. Eran plataformas muy diferentes y se necesitaba muchos recursos para crear una aplicación móvil.


Ventajas

  • Tiene una gran comunidad entre colaboradores y empresas que se especializan en su desarrollo.

  • Tiene un buen rendimiento, cercano al nativo.

  • Una sola pila tecnológica para un desarrollo más rápido.

Desventajas

  • Acarrea costos de licenciamiento empresas. Xamarin es un marco que es gratuito para particulares y empresas emergentes. Sin embargo, las empresas deben comprar una licencia de Visual Studio de Microsoft.

  • Xamarin no se recomienda para aplicaciones que exigen gráficos pesados porque cada plataforma tiene un método diferente para diseñar visualmente las pantallas. Se recomienda implementar una aplicación compleja en UX / UI de forma nativa.

  • También ofrece acceso limitado a ciertas bibliotecas importantes que los desarrolladores de aplicaciones necesitan para el desarrollo de aplicaciones móviles.


Flutter

Es un framework para desarrollar aplicaciones multi-plataforma elaborado y mantenido por Google. Este kit de desarrollo ofrece un gran número de bibliotecas para elementos estándar de la interfaz de usuario de Android y iOS, pero también sirve para desarrollar aplicaciones web de escritorio. Las aplicaciones desarrolladas con Flutter tienen el aspecto normal de las aplicaciones en cada sistema y se comportan como se espera de ellas en todos ellos sin que los programadores tengan que prestar atención a las particularidades de cada sistema.


Ventajas

  • Una única base de código para las principales plataformas de destino.

  • Ejecución potente de las aplicaciones nativas en los smartphones.

  • Bibliotecas amplias con elementos de interfaz gráfica prefabricados, lo que hace que el desarrollo sea más rápido

  • Implementación sencilla de flujos de datos para proporcionar información actual a todos los usuarios.

  • Es un marco ideal para el desarrollo de MVP (Minimum Viable Product). En lugar de gastar dinero y tiempo extra en dos aplicaciones separadas, puedes crear rápidamente una aplicación móvil Flutter que parezca nativa tanto en Android como en iOS.

  • Tiene un conjunto completo de widgets en Material Design de Google y en el estilo de Apple con el paquete Cupertino.


Desventajas

  • Los módulos se integran en el programa de manera fija, también hay que compilar el programa e instalarlo en los dispositivos.

  • Hay soporte de TV limitado con aplicaciones creadas en el marco de Flutter, es decir, Flutter no ofrece soporte para Android TV y Apple TV.

  • Dado que las aplicaciones habilitadas para Flutter usan widgets integrados y no widgets de plataforma, el tamaño de la aplicación suele ser mayor. Actualmente, la aplicación más pequeña posible creada con Flutter puede pesar no menos de 4 MB.

  • Todavía es un lenguaje nuevo y poco extendido, cuenta con una comunidad reducida pero cada día más personas se mueven a Flutter.



48 vistas0 comentarios

Entradas Recientes

Ver todo