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