Una parte importante de los proyectos que nos llegan a Reboot se basan en el desarrollo de una aplicación móvil. Cuando nos reunimos con el equipo promotor, en muchas ocasiones tienen ciertas ideas preconcebidas sobre por qué desarrollar la app de forma nativa es la mejor opción.
Nosotros tenemos una opinión fuerte sobre este tema: creemos que en la gran mayoría de ocasiones tu negocio no necesita una aplicación nativa. De hecho, hay muchos falsos mitos e ideas equivocadas sobre el llamado "desarrollo híbrido". Hoy vamos a tratar de desmontar algunos de ellos.
Este suele ser uno de los aspectos que más preocupa a un negocio cuando se plantea desarrollar su propia app. Desarrollar una aplicación no es barato. Hay muchos procesos y tareas que deben cuidarse para lanzar un producto de calidad, pero dentro de esta complejidad el coste del desarrollo híbrido es significativamente inferior al del desarrollo nativo.
La razón es muy sencilla: tenemos una única base de código. Este lo simplifica todo enormemente y, en lo que repercute al coste, significa que no necesitaremos dos equipos especialistas -iOS y Android- sino que necesitaremos únicamente un equipo especialista en el lenguaje o framework en el que se está trabajando.
No debemos olvidarnos que el objetivo de desarrollar una app para nuestro negocio es que esta vea finalmente la luz y podamos ponerla en manos de nuestros clientes. En este sentido, la velocidad para llegar al mercado es fundamental, tanto si hablamos de una startup como de una gran empresa. Cada semana que nuestra app no está siendo utilizada por nuestros clientes supone un coste de oportunidad altísimo.
Derivado del punto anterior, el tener una única base de código para iOS y Android nos permite conseguir tiempos de desarrollo mucho más acotados, ya que no tenemos que multiplicar x2 el trabajo en las dos plataformas que queremos lanzar.
Al final todo se traduce en una mayor agilidad para lanzar, mantener y evolucionar nuestro producto. Al tener un solo equipo encargado de la aplicación móvil todo se simplifica enormemente, se reduce la fricción y se mejora la contribución de todo el equipo.
Las ventajas de tener una única base de código no sólo juegan a nuestro favor en cuestión de costes y tiempos de desarrollo menores. Una vez tenemos nuestra app en el mercado no podemos olvidarnos de ella, hay que mantenerla. Esto significa, por ejemplo: mantener al día las librerías, solucionar bugs y errores detectados por los usuarios, incorporar nuevas funcionalidades, etc...
Cuando tenemos una aplicación nativa todo nuestro mantenimiento se multiplica x2. Y eso también afecta al coste de dicho mantenimiento. Otro de los posibles problemas es perder a la persona o personas encargadas de una de las plataformas y que esta se quede sin mantenimiento ni evolución.
Cuando centralizamos nuestra aplicación en un único equipo resulta más sencillo mantenerla o buscar un reemplazo de forma ágil. Por ejemplo, si utilizamos un framework basado en web puede ser mucho más fácil encontrar desarrollares web que podamos migrar a mobile en un menor tiempo.
Uno de los principales miedos de nuestros clientes cuando les planteamos la opción de desarrollar su app con React Native es que "no funcionará igual", "funcionará más lenta" o directamente "funcionará mal". Esto es un mito muy extendido, seguramente alimentado por empresas a las que sí les interesada vender perfiles especialistas y así poder engrosar la factura final.
Actualmente los frameworks que se utilizan para desarrollar aplicaciones móviles de forma no nativa han evolucionado muchísimo. Esta creencia de que las apps híbridas tienen un peor rendimiento vienen de los días donde se utilizaba Ionic, Cordova o PhoneGap.
Actualmente una aplicación con React Native o Flutter ofrece el mismo rendimiento que una app nativa en la gran mayoría de los casos. Además, es posible desarrollar ciertos componentes de forma nativa para solucionar problemas de rendimiento concreto. Por ejemplo, aquí los chicos de Shopify nos explican cómo desarrollaron un Bottom Sheet nativo dentro de una app con React Native.
Otro falso mito muy extendido es que los usuarios "notarán" que no se trata de una aplicación nativa. Aquí entramos directamente en el terreno del diseño de interfaz e interacción. Muchas aplicaciones híbridas son desarrolladas sin tener en cuenta que iOS y Android tienen directrices de diseño muy diferentes.
Un caso muy común es el de una empresa que desarrolla una aplicación híbrida utilizando una librería como Material Design o basando la interfaz en patrones de navegación e interacción propios de Android. En este caso está claro que el usuario de iOS notará la diferencia y sabrá que algo está mal.
Por este motivo nosotros no concebimos desarrollo y diseño de forma independiente. Aunque se trate de una única base de código, el diseño, la interacción y la navegación se tienen que adaptar a cada plataforma a medida.
Todo esto está muy bien, pero realmente quién están utilizando este enfoque híbrido en el mercado para sus aplicaciones. Pues realmente vemos que algunas de las empresas tecnológicas más grandes del mundo ya han adoptado este enfoque y la tendencia apunta a que muchas más se sumarán en el futuro.
En esta lista encontramos aplicaciones que a todos nos sonarán:
Tencent usa Flutter en diferentes aplicaciones de la compañía incluyendo AITeacher, Now Live, K12, Mr. Translator, QiDian y DingDang.
Instagram utiliza React Native en algunas de las funcionalidades de la app para poder lanzarlas en un menor tiempo y testearlas con su gran base de usuarios.
Tesla utiliza React Native para su aplicación principal con la que poder controlar el coche y su estado.
Discord utiliza React Native para la aplicación en Android y iOS.
Shopify utiliza React Native en su nueva aplicación de Shop en la que poder comprar y llevar el seguimiento de tus pedidos.
Skype utiliza React Native en su aplicación oficial para Android y iOS.
Uber Eats utiliza React Native para su aplicación móvil con la que poder pedir, pagar y llevar el seguimiento en tiempo real de tu pedido.
Pinterest utiliza React Native en sus aplicaciones oficiales.
Hoy en día existen diferentes frameworks para desarrollar aplicaciones móviles no nativas. Algunos de los más adoptados tienen grandes compañías detrás como es el caso de React Native con Facebook, Xamarin con Microsoft o más recientemente Flutter con Google.
¿Significa esto que nunca es recomendable desarrollar una app nativa? En absoluto. Según nuestro criterio, hay 3 escenarios donde tiene sentido plantearse el desarrollo nativo.
En Reboot creemos firmemente que si tu negocio no se encuentra en uno de esos 3 escenarios, no tiene ningún sentido plantearte un desarrollo nativo.
Nuestro framework predilecto para construir apps cross-platform es React Native por muchas razones, algunas de ellas las hemos comentado en este post. De forma resumida, nos permite aplicar nuestra experiencia y conocimiento en desarrollo web con React a crear aplicaciones que funcionan y se ven como apps nativas.
Si no te lo crees aquí tienes algunos ejemplos de apps que hemos desarrollado con React Native.
¿Cuál es tu opinión? ¿Apps nativas o híbridas?