Desarrollo de aplicaciones multiplataforma en 2020: los mejores marcos de trabajo a tener en cuenta

illustration of c
Last updated

En sus 12 años de existencia, las aplicaciones móviles han evolucionado mucho.

En 2008, solo había 500. Hoy en día, hay más de cinco millones. (1)

Independientemente de si el anuncio de Apple de 2009 «Hay una app para eso» fue un eslogan de marketing o una auténtica profecía, una cosa es segura: la forma en que nos comunicamos con el mundo que nos rodea y lo experimentamos ha cambiado por completo en la última década; un cambio en nuestro estilo de vida atribuido en gran medida a esos pequeños cuadrados ordenados con pulcritud en nuestras pantallas.

Tanto es así que esta vida dominada por las aplicaciones que hemos llegado a llevar nos hace consultar el móvil 58 veces al día, y el 90 % de ese tiempo lo dedicamos al uso de aplicaciones. (2, 3)

Como es lógico, las empresas, tanto grandes como pequeñas, han seguido de cerca la tendencia de los dispositivos móviles, conscientes de que contar con una aplicación propia aumenta su visibilidad, fomenta la fidelidad de los clientes y mejora sus resultados. 

A nivel mundial, se prevé que los ingresos por aplicaciones móviles (descargas de pago, compras dentro de las aplicaciones y publicidad) se acerquen a los 600 000 millones de dólares, y se espera que estas cifras aumenten, ya que disponer de una aplicación empresarial se está convirtiendo en algo habitual para cualquier empresa en expansión. (4) 

Por lo tanto, las aplicaciones no solo tienen una gran demanda, sino que también pueden resultar muy rentables. Sin embargo, a la hora de desarrollar una aplicación de forma nativa tanto para Android como para iOS, los elevados costes de desarrollo y los largos plazos de implementación pueden suponer una presión enorme incluso para los equipos más ambiciosos.

La buena noticia es que hay una forma de solucionarlo.

Un código único para dominarlos a todos: ventajas e inconvenientes del desarrollo móvil multiplataforma

Aquellos de vosotros que hayáis estado al tanto de las novedades en el ámbito del desarrollo de aplicaciones ya habréis oído hablar de ellas: Xamarin, React Native, Flutter, Cordova y otras similares.

A lo largo de los años, estos marcos de trabajo han satisfecho las necesidades de las empresas que buscan llegar a los usuarios de teléfonos inteligentes tanto de la plataforma iOS como de Android (que representan el 98 % del mercado de sistemas operativos móviles), sin tener que desarrollar dos aplicaciones distintas para cada sistema operativo. (5, 6)

De este modo, han conseguido beneficiarse de:

  • Same accessibility with half the effort. One of the biggest benefits cross-platform app development offers is the ease of code reusability. Instead of releasing multiple native apps for each platform, you can reuse a significant amount of code and have the same app deployed across multiple platforms.
  • Reduced costs. Because the code is written once, the development team will have to put in half the effort which translates into reduced production, maintenance, and hiring costs. The need for learning a platform-specific language is also reduced as fluency in JavaScript, C++, C#, and HTML5 will in most cases suffice for cross-platform development.
  • Shorter time to market. Less work also means quicker deployment times. Subsequently, less time spent in development means you can deliver value to your customers faster and tweak your applications according to their feedback sooner.
  • Near-native feel. Despite the substantial UX and UI differences between iOS and Android, cross-platform apps can emulate the native feel by handling design and navigation mismatches by default.

Estas ventajas parecen casi demasiado buenas para ser verdad. ¿Por qué iba alguien a optar por el desarrollo nativo y crear dos aplicaciones distintas para ambas plataformas cuando se puede conseguir la misma accesibilidad con la mitad de trabajo? 

Resulta que hay bastantes razones, entre ellas: 

  • Language barrier. One of the main challenges that come with cross-platform app development is the fact developers are writing an app in a non-native language. This means they won’t have the same access to the native components simply because the code is written in a higher-level language. To bridge the two, they need to rely on third-party libraries specific to each framework, and the younger the framework is, the scarcer the library.
  • UX discrepancy. Because both Android and iOS have very specific graphical user interfaces (navigation, buttons, menus, etc.), more effort is required to achieve a native feel for each platform. Sometimes, the labor put into making this happen outweighs the above-listed benefits.
  • Performance issues. Performance is another known dealbreaker, and even though the differences are for the most part minute, developing a mobile game with Flutter or React Native won’t match the native technology.
  • Size. Depending on the framework, code linkage and third-party plugins can nearly double the file size of your cross-platform app. And as you can imagine, larger apps don’t get as much love as their lighter counterparts. Not only do they require more storage space on the user’s device, but they also take more time and data to download. In fact, Google Play Apps & Games published a report showing a 100MB app will receive ~30% fewer downloads than an app that weighs around 10MB. 
  • Your target audience. Finally, you may only need to serve Android or iOS users, in which case going native would make perfect sense. The programming language is now fully compatible with the platform and the device, meaning your developer won’t have to fish out that gyroscope plugin for Cordova.

Ahora ya puedes ver que el desarrollo multiplataforma no es todo un camino de rosas. Son muchas las cosas que pueden salir mal y depende de ti decidir si es un enfoque adecuado para tu proyecto.

Aun así, para la gran mayoría de las empresas (entre las que se encuentran Facebook, Google y eBay), el enfoque de desarrollo multiplataforma ha demostrado ser un método rentable y fiable para crear aplicaciones. 

Analicemos algunos de los principales marcos de trabajo de 2020 y veamos en qué aspectos destacan y en cuáles se quedan cortos.

React Native: escribe una vez, implementa en cualquier lugar

Fundado por Facebook en 2015, React Native se ha consolidado rápidamente como uno de los marcos de desarrollo multiplataforma más populares entre los desarrolladores. 

El principal factor que explica su uso generalizado es el lenguaje de programación del marco, JavaScript, que se utiliza en el 95 % de los 1.700 millones de sitios web que hay en el mundo. (7, 8)

Esto significa que un desarrollador que ya haya creado una página web con JavaScript no tendrá que enfrentarse a una curva de aprendizaje muy pronunciada a la hora de trabajar en una aplicación multiplataforma con React Native. 

Otra gran ventaja que ofrece React Native es su capacidad para imitar con éxito la sensación de una aplicación nativa. Aunque no incluye muchos componentes de interfaz de usuario de serie, existe una gran variedad de componentes de terceros que permiten disfrutar de una experiencia nativa fluida. 

El problema es que, cuando se depende en exceso de bibliotecas externas, se puede estar sacrificando una sensación de natividad a cambio de un rendimiento más lento. Dado que React Native requiere un puente para sus envoltorios nativos, es posible que acabes con una aplicación que tenga demasiadas llamadas nativas, lo que provocaría problemas de rendimiento.

Cordova: ¿merece la pena usar WebView? 

Al igual que React Native, Cordova es una opción muy atractiva para los desarrolladores web a los que les convence la idea de aprovechar sus conocimientos actuales de HTML, CSS y JS para crear una aplicación tanto para Android como para iOS.

Sobre el papel, Cordova parece un sueño. Hay un montón de herramientas y bibliotecas que te facilitan la vida; Ionic, por ejemplo, es ideal para gestionar la interfaz de usuario e integrar servicios adicionales, como la biometría de huellas dactilares y el procesamiento de pagos, en tu aplicación.

Pero ten cuidado antes de sumarte a la moda de Cordova. Si no conoces los límites del marco de trabajo (y los tuyos propios), ese sueño puede convertirse rápidamente en una pesadilla. 

En primer lugar, no tendría sentido desarrollar un juego serio o una aplicación pesada con Cordova. A diferencia de React Native, que accede a las funcionalidades nativas a través de un puente, Cordova ejecuta el código en un WebView, y ejecutar una aplicación de esta forma no solo puede provocar una pérdida significativa de rendimiento, sino que también hace que la aplicación sea vulnerable a ataques XSS. 

Es probable que también tengas que dedicar algo de tiempo a buscar soluciones alternativas para los errores específicos de cada plataforma. A veces, este proceso puede resultar bastante frustrante, ya que las funcionalidades nativas que siempre has dado por sentadas ahora deben solucionarse con complementos que hay que personalizar o, lo que es peor, desarrollar desde cero. 

Para aplicaciones pequeñas y sencillas, Cordova es una opción que merece la pena. Las aplicaciones de estilo de vida, noticias, eventos, educación y mensajería, por ejemplo, se han creado y se pueden crear fácilmente con Cordova, que, en el momento de redactar este artículo, ocupa el 7,88 % de la cuota de mercado de las aplicaciones. 

Pero si estás desarrollando un juego con muchas animaciones, plantéate utilizar el enfoque nativo. Perderás más tiempo buscando soluciones alternativas que el que te habrás ahorrado al escribir un único código base.

Xamarin: el pionero de las aplicaciones multiplataforma

Xamarin fue uno de los primeros marcos de trabajo de código abierto que se lanzaron con el objetivo de tender un puente entre las plataformas nativas y abaratar el desarrollo de aplicaciones móviles. 

Y aunque Xamarin se lanzó en 2011, no fue hasta su adquisición por parte de Microsoft en 2016 cuando la comunidad de desarrolladores empezó por fin a otorgarle cierta credibilidad y a que cobrara impulso.

Hoy en día, es uno de los marcos de desarrollo multiplataforma más utilizados, con más de 60 000 colaboradores procedentes de más de 3 700 empresas. (9)

Basado en C#, un lenguaje de programación orientado a objetos, muchos consideran que Xamarin es más difícil de aprender que React Native, aunque el código funciona a la perfección en diversas plataformas, entre ellas Android, iOS, tvOS, watchOS, macOS y Windows.

Además, los desarrolladores disponen de todas las herramientas necesarias para crear su aplicación multiplataforma mediante .NET, incluidas las API específicas de cada plataforma, los paquetes y el XAML.

Ahora bien, hay dos opciones entre las que elegir a la hora de desarrollar una aplicación en Xamarin, y ambas permiten alcanzar niveles de rendimiento casi nativos.

  1. Xamarin Native offers a low-level approach to building separate applications for each platform with Xamarin.iOS and Xamarin.Android libraries. It’s a basis for exposing some native functionalities to Xamarin Forms by calling platform-specific APIs.
     
  2. Xamarin.Forms is a framework on top of Xamarin Native with all functionalities of Xamarin. It’s a better option for those just starting out with Xamarin as developers are able to reuse up to 96% of the code and product owners can scale and maintain their apps more easily.

Flutter: el nuevo en la escena

A diferencia de React Native y Xamarin, Flutter es un marco de trabajo que lleva solo unos años en el mercado. 

Sin embargo, a pesar de ser un recién llegado al mercado, Flutter ha causado un gran revuelo en la comunidad desde su lanzamiento por parte de Google en 2018, demostrando ser una opción fiable e innovadora. 

Puede que su lenguaje de programación, Dart, no sea tan popular como JavaScript, pero es relativamente fácil de aprender; por un lado, gran parte de la sintaxis es similar a la de Swift, Kotlin y Java, lo que significa que los desarrolladores con experiencia en C/C++ no tendrán demasiados problemas para adaptarse a esta forma orientada a objetos de crear aplicaciones. 

E incluso si se topan con algún que otro obstáculo por el camino, Flutter ofrece una amplia documentación para facilitarles la transición.

A continuación, tenemos la arquitectura de Flutter, que, a diferencia de React Native, no depende de JavaScript Bridge para traducir las llamadas a la API nativa. El código escrito en Dart se compila en código máquina nativo, lo que se traduce en un rendimiento más fluido y mejorado de la aplicación, así como en una mejor experiencia de usuario. 

Sin embargo, la forma en que Flutter se comunica directamente con la plataforma utilizando su propia biblioteca de componentes integrados no es la ideal. Es difícil encontrar complementos de terceros y las API específicas para cada tipo de hardware no son ni de lejos tan abundantes como en React Native, lo que convierte a Flutter en una opción menos adecuada para aplicaciones que dependen del hardware. 

También cabe destacar que el motor C/C++ y Dart ocupan bastante espacio, y, aunque las aplicaciones creadas con Flutter pueden funcionar mejor, ocuparán mucho espacio. 

Aun así, los widgets que vienen de serie son totalmente personalizables y, junto con la función de recarga en caliente, hacen de Flutter un marco ideal para desarrollar una aplicación MVP con una interfaz de usuario a medida y con una precisión de píxeles.

¿Qué marco deberías elegir?

Pues bien, la respuesta a esa pregunta dependerá en gran medida de los objetivos que te hayas marcado con tu aplicación, así como del tiempo y el presupuesto que puedas destinar a su desarrollo y mantenimiento. 

Sea cual sea el enfoque que elijas —nativo, multiplataforma o incluso una combinación de ambos—, los dispositivos móviles han llegado para quedarse. Al contrario, se prevé que este año pasemos una media de 3,7 horas al día con nuestros smartphones, lo que supone un aumento interanual del 10 % y un crecimiento del 35 % con respecto a 2017. (10)

Sea cual sea la forma en que decidas desarrollar tu aplicación, ten por seguro que Microblink estará ahí para ayudarte cuando necesites una solución de escaneo potente y fluida integrada en ella.

Descubre nuestras soluciones

Explorar nuestras soluciones está a un clic de distancia. Prueba nuestros productos o habla con nosotros con uno de nuestros expertos para profundizar en lo que ofrecemos.

Informe
Análisis del aumento del fraude de identidad impulsado por la inteligencia artificial

La IA no solo ha acelerado el fraude, sino que lo ha convertido en un sistema. Hemos analizado millones de interacciones relacionadas con la identidad para trazar un mapa de cómo están evolucionando los ataques a la identidad en las distintas regiones, según los tipos de ataque y los niveles de sofisticación, y qué deben replantearse las organizaciones para mantenerse al día.

Ver los datos