Elección de un marco de desarrollo de aplicaciones móviles

Los desarrolladores pueden usar las tecnologías del lado cliente para compilar por su cuenta las aplicaciones móviles, con marcos y patrones específicos para un enfoque multiplataforma. En función de sus factores de decisión, los desarrolladores pueden crear:

  • Aplicaciones nativas de una sola plataforma mediante lenguajes como Objective C y Java
  • Aplicaciones multiplataforma mediante Xamarin, .NET y C#
  • Aplicaciones híbridas mediante Cordova y sus variantes

Plataformas nativas

La creación de una aplicación nativa requiere lenguajes de programación, SDK y entornos de desarrollo específicos de la plataforma, además de otras herramientas que proporcionan los proveedores del sistema operativo.

iOS

Creado y desarrollado por Apple, iOS se usa para compilar aplicaciones en dispositivos de Apple, es decir, iPhone y iPad.

  • Lenguajes de programación: Objective-C, Swift
  • IDE: Xcode
  • SDK: SDK de iOS

Android

Diseñado por Google, es el sistema operativo más popular del mundo: Android se usa para compilar aplicaciones que pueden ejecutarse en una amplia gama de smartphones y tabletas.

  • Lenguaje de programación: Java, Kotlin
  • IDE: Android Studio y herramientas para desarrolladores de Android
  • SDK: SDK de Android

Windows

  • Lenguaje de programación: C#
  • IDE: Visual Studio, Visual Studio Code
  • SDK: Windows SDK

Ventajas de la plataforma nativa

  • Buena experiencia de usuario
  • Aplicaciones con capacidad de respuesta con alto rendimiento y la posibilidad de interactuar con bibliotecas nativas
  • Aplicaciones muy seguras

Inconvenientes de la plataforma nativa

  • La aplicación solo se ejecuta en una plataforma
  • Consume más recursos de desarrollo y resulta caro compilar una aplicación
  • Menor reutilización de código

Aplicaciones multiplataforma e híbridas

Las aplicaciones multiplataforma le ofrecen la posibilidad de escribir aplicaciones móviles nativas una vez, compartir el código y ejecutarlas en iOS, Android y Windows.

Xamarin

Propiedad de Microsoft, Xamarin se usa para crear aplicaciones móviles robustas multiplataforma en C#. Xamarin tiene una biblioteca de clases y un entorno en tiempo de ejecución que funciona en muchas plataformas, como iOS, Android y Windows. También compila aplicaciones nativas (no interpretadas) que ofrecen un alto rendimiento. Xamarin combina todas las capacidades de las plataformas nativas y agrega una serie de características propias muy eficaces.

  • Lenguaje de programación: C#
  • IDE: Visual Studio en Windows o Mac

React Native

Publicado por Facebook en 2015, React Native es un marco de JavaScript de código abierto para escribir aplicaciones móviles reales y de representación nativa para iOS y Android. Se basa en React, la biblioteca de JavaScript de Facebook para crear interfaces de usuario. En lugar de dirigirse al explorador, se dirige a las plataformas móviles. React Native usa componentes nativos en lugar de componentes web como bloques de creación.

  • Lenguaje de programación: JavaScript
  • IDE: Visual Studio Code

Unity

Unity es un motor optimizado para la creación de juegos. Puede usarlo para crear aplicaciones 2D o 3D de alta calidad con C# para plataformas como Windows, iOS, Android y Xbox.

Cordova

Cordova le permite crear aplicaciones híbridas con Visual Studio Tools para Apache Cordova o Visual Studio Code con extensiones para Cordova. Con el enfoque híbrido, puede compartir componentes con sitios web y reutilizar aplicaciones de servidor web con estrategias de aplicaciones web hospedadas basadas en Cordova.

Ventajas del modelo multiplataforma

  • Mayor facilidad de uso del código al crearse un único código base para varias plataformas
  • Atención a un público más amplio en muchas plataformas
  • Reducción drástica del tiempo de desarrollo
  • Fácil de iniciar y actualizar

Inconvenientes del modelo multiplataforma

  • Menor rendimiento
  • Falta de flexibilidad
  • Cada plataforma tiene un conjunto único de características y funcionalidades para que la aplicación nativa sea más creativa
  • Aumento del tiempo de diseño de la interfaz de usuario
  • Limitación de la herramienta