Todas las aplicaciones deberían de ser multiplataforma: Ventajas e inconvenientes

A todos nosotros nos gusta disfrutar de aplicaciones bien hechas en nuestros dispositivos, ya sean Android, iOS, Windows (escritorio y Phone), y un largo etcétera. Pero para los desarrolladores, si ya les puede ser un quebradero de cabeza conseguir como resultado final una buena aplicación (mas allá de su función) en una plataforma, ni os podéis imaginar el problema que puede suponer programar para varias plataformas a la vez: diferentes lenguajes de programación, código específico de cada plataforma…
La idea de este artículo es explicaros un poco por encima lo que conlleva crear una misma aplicación para diferentes sistemas y plataformas, además de las alternativas, ya sean buenas o malas, que tienen los desarrolladores a su alcanze. En concreto, hay tres alternativas: una mala, una costosa, y una ideal, y os explicaremos en que consiste cada una, sus ventajas y sus inconvenientes.

WORA, la opción que nadie quiere utilizar

WORA, (las siglas en Inglés de “Write One, Run Anyway”“Escribe una vez, funciona en cualquier parte” en Español) es una técnica que nos permite escribir sólo un código, que en la teoría debería de funcionar en cualquier plataforma. Este concepto fue usado por primera vez en Java. Pero, y a esto viene el título que encabeza esta sección, actualmente no les gusta ni a los usuarios de la plataforma ni a los desarrolladores: se obtienen aplicaciones muy lentas, interfaces de usuario poco atractivas e intuitivas e incluso en muchos casos problemas de compatibilidad en diferentes plataformas (lo que es una ironía hablando de algo que debería funcionar en varias plataformas). Podemos encontrar un ejemplo de esto en la anterior aplicación de Facebook: los usuarios se quejaron en masa, y los ingenieros se vieron forzados a reescribir la aplicación entera para que fuera completamente nativa en iOS.

Aplicación nativa: ideal pero muy costosa

Hablando hipotéticamente, y si dispusiéramos de recursos ilimitados, esta es una de las mejores opciones que puede haber actualmente: un desarrollo independiente por cada plataforma, con su respectivo código dará como resultado la mejor aplicación posible. Pero, volviendo a la vida real, esto ocasiona más inconvenientes: muy pocas empresas pueden permitirse el desarrollo con esta base (como Microsoft, Google o la propia Facebook del ejemplo anterior), y para el resto de nosotros esta base está a años luz: una aplicación de buena calidad puede costar (el desarrollo) entre 50,ooo y 100,000 dólares, y esto en una sola plataforma.

Modelo mixto: lo mejor de los dos mundos

También llamada Aplicación híbrida, es de las mejores bases que puede escoger un desarrollador: sigues necesitando tener conocimiento de varias plataformas y del código único de cada una, pero puedes aprovechar muchísimo código de las otras plataformas. La base es que, mientras que la interfaz de usuario es nativa y varía dependiendo de la plataforma, el núcleo de la aplicación es el mismo en todas las plataformas, y tiene muy pocos cambios. Gracias a esto se consigue un gran rendimiento de cara al usuario (gracias a que la UI es nativa), pero se sigue compartiendo código entre las plataformas. Ejemplos de este sistema sonRdio (iOS, Android, WP7 y BkackBerry) e iCircuit (un 80% de código se ha reutilizado entre WP7, iOs y OS X).

¿Pero cual es el camino a seguir?

Como muy bien se dice en la fuente, los sueños de poder centrarse en una plataforma y que pueda funcionar haciendo uso de la primera alternativa en otras plataformas se quedan en eso: sueños. Si de verdad un desarrollador quiere llegar al máximo de usuarios posibles con una aplicación de calidad, el futuro es el modelo mixto: no existe nada cercano a todas las UI (User Interface, Interfaces de Usuario) existentes (lo que hace inviable la primera opción), mientras que hacer una aplicación completamente nativa es muy costoso (lo que descarta la segunda opción)
Si sois desarrolladores interesados en el tema, o simplemente usuarios con ganas de profundizar, os recomiendo muchísimo el artículo de Charlie Kindel (en la fuente), ya que el se adentra más en el tema y da algunas opciones para aprovechar la base de las aplicaciones mixtas, algo que agradecerán mucho los desarrolladores…
¿Y vosotros que preferís? Podéis dejar vuestras opiniones mas abajo, en los comentarios.
Via:  GeekWire


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s