¿Cuáles son las desventajas de usar plataformas de creación de aplicaciones híbridas (escribir una vez, construir en todas partes), es decir, Ionic y Xamarin, para construir una aplicación multiplataforma?

Híbrido tiene significado, y no es lo mismo que “escribir una vez, correr en todas partes”.

Híbrido significa que la aplicación se ejecuta en una vista web. Eso significa que se procesa en una página web que está incrustada en la aplicación.

Cordova / PhoneGap es híbrido. Hay algunas otras soluciones que son híbridas, pero han disminuido en popularidad.

Las aplicaciones híbridas no usan controles nativos. Eso no importa para muchas aplicaciones, pero es más fácil obtener una optimización sólida de los controles nativos que una vista web. El verdadero problema es que es fácil destruir el rendimiento de una aplicación híbrida al no diseñar para el rendimiento. Si obtiene megabytes de bibliotecas de JavaScript de manera indiscriminada y no codifica con ningún conocimiento de cómo escribir páginas web optimizadas, puede terminar con un desastre de rendimiento.

React Native tampoco es “escribir una vez que se ejecuta en todas partes”. Lo describen como “aprender una vez, escribir en cualquier lugar”. Por lo tanto, una desventaja de React Native es que necesita ajustar la interfaz de usuario para cada plataforma. Pero React Native usa controles nativos y tiene un gran rendimiento.

NativeScript también utiliza controles nativos y puede acceder a las API nativas directamente desde JavaScript. También es rápido y se escribe una vez, se ejecuta en cualquier lugar.

Xamarin es como NativeScript, pero con C # en lugar de JavaScript / TypeScript. Y C # se compila en código nativo, por lo que obtienes la velocidad nativa completa.

Los inconvenientes de los últimos tres son:

  • Como consultor, no puede cobrar tanto como con el desarrollo nativo.
  • Si su equipo tiene experiencia con nativos, necesitan aprender una nueva plataforma.
  • Algunos SDK pueden ser un poco más difíciles de integrar, ya que los documentos se escribirán para nativos.
  • Para ciertos tipos de aplicaciones, es posible que desee que sean lo más pequeñas posible. Puede producir una aplicación más pequeña con nativa.

Realmente estoy teniendo dificultades para encontrar otras desventajas. El rendimiento es perfecto en la mayoría de los entornos de desarrollo multiplataforma.

En primer lugar, Xamarin NO debe verse como una solución híbrida. Durante los últimos 3 años, he presentado a Xamarin como 100% nativo y esto se debe a que exponemos el 100% de las API nativas, habilitamos la interfaz de usuario 100% nativa y nuestro código se compila en los binarios nativos para un rendimiento nativo.

En todos mis años, nunca tuve un cliente que me dijera que no cumplimos nuestra promesa. Estamos hablando de más de 250 aplicaciones que he supervisado personalmente.

Por lo tanto, recomiendo usar Xamarin sobre cualquier otra solución si está compilando para múltiples plataformas.

¿Cuáles son las desventajas de usar plataformas de creación de aplicaciones híbridas (escribir una vez, construir en todas partes), es decir, Ionic y Xamarin, para construir una aplicación multiplataforma?

Hay tres desventajas principales

  1. Rendimiento: este estilo de aplicación suele ser más lento
  2. No tiene acceso a las últimas API nativas, ya que lleva tiempo aplicar ingeniería inversa a las del código nativo a las versiones de JavaScript.
  3. Es posible que deba codificar en plataformas específicas (Android / iOS) utilizando algunas de las declaraciones / then.

La pregunta debe ser: ¿la ventaja de una única base de código supera las desventajas?

Para la aplicación que construí, lo hizo. Me las arreglé para mantener el if (android) / if (iOS) al mínimo por simplicidad.