Maui Vs React Native
Si no te comerías una sopa con tenedor, no desarrolles una aplicación con la tecnología errónea.
En los últimos artículos escritos por compañeros del departamento de Mobile hacemos hincapié en nuestra gran apuesta por .NET MAUI, y en ellos os damos algunos tips de nuestros conocimientos, pero, aunque tengamos nuestras preferencias, tenemos experiencia no solo en MAUI sino también en React Native.
En algunos casos nos surge la gran duda: ¿con qué tecnología abordarlo? .NET MAUI y React Native son dos tecnologías de desarrollo móvil muy populares, con sus fortalezas y debilidades particulares, y la elección de cuál usar depende en gran medida de los requisitos específicos del proyecto a desarrollar. Aunque ambas tienen sus puntos fuertes y débiles, vamos a explicar desde nuestro punto de vista y a grandes rasgos los puntos diferenciadores que nos pueden hacer decantar por uno u otro.
¿Qué es React Native?
Es un framework de código abierto actualmente desarrollado por Meta para crear aplicaciones móviles “nativas” utilizando JavaScript y React.
Plataformas
Android e iOS
Interfaz de usuario
Aunque el desarrollo sea con React, la mayoría de los controles que nos permite utilizar React Native internamente, hacen referencia a controles nativos. Lo que permite crear aplicaciones que se vean y se sientan de una forma muy similar a las aplicaciones nativas, sin necesidad de conocimientos específicos de cada plataforma.
Acceso a API Nativa
Es cierto que React Native nos ofrece la posibilidad de acceder a la API nativa de cada plataforma pero, según nuestra experiencia, utilizando la API nativa para establecer conexiones BLE (Bluetooth Low Energy) u otros requerimientos que necesiten profundizar un poco en la API nativa, los resultados no han sido óptimos.
De igual forma, también encontramos ciertas deficiencias en las tareas en segundo plano de la aplicación.
Desarrollo
Ofrece un código altamente modular y reutilizable, lo que facilita su mantenimiento y escalabilidad.
Casos de éxito
Algunos ejemplos de éxito con el mencionado framework son las aplicaciones móviles de: Facebook, Instagram, Discord, Pinterest, UberEats,Walmart y Airbnb.
¿Qué es .Net Maui?
.NET MAUI, es una plataforma propiedad de Microsoft, basada en .NET para crear aplicaciones móviles nativas multiplataformas.
Plataformas
Android, iOS, Windows 10/11, Mac OS, GNU/Linux (Tizen).
Interfaz de usuario
De forma similar a React Native, todos los controles estándar de la plataforma implementan internamente los controles nativos de cada plataforma, lo que permite crear aplicaciones con una apariencia nativa, sin necesidad de conocimientos específicos de cada plataforma.
Para desarrollar las interfaces en MAUI, al tener la capa de desarrollo del frontal completamente separadas, permite desarrollar la interfaz de usuario tanto en XAML como con Blazor, permitiendo al desarrollador actuar en el lenguaje que se sienta más cómodo (o más le convenga).
Acceso a API Nativa
Desde MAUI tenemos acceso al 100% de la API nativa, permitiéndonos sin problemas acceder a todos los componentes del dispositivo, BLE wifi, cámara, etc.
Desarrollo
Al igual que en React Native, nos permite tener un código para gobernarlos a todos, pero donde la personalización por plataforma es mucho más simple que React Native y que su propio antecesor, Xamarin Forms.
Casos de éxito
Algunos ejemplos de éxito con el mencionado framework son las aplicaciones móviles de: Cincinati Children’s Caren (Medical Center), UPS, Alaska Airlines, Microsoft Azure, Captio y Orlo.
Pero, ¿y ahora qué?
Tal como comentamos en los párrafos anteriores, no es fácil tomar una elección, pero si revisamos punto a punto las dos plataformas nos encontramos con pequeñas claves que nos harán decantarnos, veamos los puntos clave de cada uno:
Viendo estos puntos, podemos deducir en qué casos podríamos abarcar la aplicación con una u otra tecnología, obviamente desde nuestra experiencia. Seguramente, en una mesa redonda con desarrolladores podrían diferir basándose en sus propias experiencias.
Si vamos a realizar un proyecto pequeño, en el que busquemos rapidez y que visualmente sea atractivo, tenemos acceso a la API nativa y procesos simples, y disponemos de un equipo de JS con conocimientos de React Native o de React (pudiendo asumir la curva de aprendizaje de React Native), sin dudarlo, optaríamos por una aplicación en dicha tecnología.
En cambio, si necesitamos hacer una aplicación disponible para Windows, Linux y MacOS (estos dos últimos es cierto que actualmente podemos encontrarnos que no todos los componentes estén disponibles), aparte de iOS y Android, o bien la aplicación, se utilice para:
- IOT
- gestión y control de Datos
- Procesos que requieran muchas tareas en segundo Plano
- Acceso completo a la API Nativa
Sin dudarlo, efectuaríamos la aplicación con .Net Maui.
En el caso de que la aplicación cumpla los requerimientos que hemos indicado para React Native, pero el equipo que tenemos disponible tiene conocimientos de C# y Xaml o Blazor, podremos desarrollar sin problemas la aplicación en .Net Maui.