Nuestro Blog

28
Jul

Apps Híbridas, Cross-platform y Nativas

Trabajando en el área comercial de Spirit, cada vez que acudo a una reunión en donde me presentan una idea o proyecto para cotizar es normal que surja el tema de las aplicaciones Cross Platform. Esto se debe en parte a que muchos estudios, al menos aquí en Argentina, cotizan directamente los desarrollos en tecnologías como PhoneGap (más detalles abajo), sin dar opción al cliente a elegir entre una solución y la otra.

Es de suma importancia aclarar, que no es lo mismo desarrollar para Android, iOS, Windows Mobile o BlackBerry. Cada sistema operativo posee su propio código, y así, si se necesita desarrollar la aplicación en 2 plataformas (Android e iOS por ejemplo) necesitaremos trabajar o bien en paralelo o bien terminando una y luego pasando a la otra. Es aquí donde entran en juego las herramientas híbridas y cross-platform permitiendo escribir la aplicación una sola vez y ejecutarla en todos los dispositivos móviles, permitiendo a veces hacer cambios según la plataforma objetivo.

La idea del presente artículo es la de explicar las diferencias entre lo que normalmente se conoce como aplicaciones híbridas, las cross-platform y las nativas. A su vez analizaremos los pros y contras de cada una, para llegar a la conclusión que no hay una única respuesta frente al interrogante de cómo encarar un proyecto determinado.

PhoneGap

Las aplicaciones desarrolladas con PhoneGap son comunmente conocidas como aplicaciones híbridas. PhoneGap utiliza la misma tecnología que utilizan las páginas web (HTML, CSS y JavaScript) y es por esto que muchos desarrolladores web, incursionan en el mundo de las aplicaciones móviles, sin la barrera de entrada causada por curva de aprendizaje de una nueva tecnología. El código es 100% reutilizable por lo que fácilmente se puede escribir una sóla aplicación y ejecutarla en todos los dispositivos.

Por lo tanto, es normal ver que si un inversionista solicitó presupuestos a varios estudios, haya una variedad a veces desconcertante de precios ya que por ejemplo utilizando PhoneGap, la cantidad de horas se reduce drásticamente, y a su vez, al ser lenguajes de programación tan conocidos, los recursos humanos suelen ser más económicos también.

La principal deficiencia de las aplicaciones desarrolladas con PhoneGap es su performance. En primer lugar, si el desarrollo es muy grande es más complejo desarrollar en JavaScript que en lenguajes como Java (Android) o C# (Xamarin). Estas aplicaciones se ejecutan en una webView del dispositivo lo que provoca una significativa pérdida de performance y un feeling menos natural.

Para concluir, si bien hay riesgo de pérdida de performance, no dejemos de poner en la balanza el bajo costo y reducido tiempo de entrega. Si nuestra aplicación es sencilla, si necesitamos una demo o algo para mostrar sin demasiada complejidad, una aplicación híbrida puede ser la solución.

Xamarin

En otra esquina, y sin entrar en las aplicaciones nativas aún, encontramos a Xamarin. Esta tecnología permite escribir el código en C# una única vez y compilar tanto a Android, iOS y Windows Mobile. A diferencia de PhoneGap, Xamarin no utiliza una webView (poco performante) sino que usa interfaces nativas otorgando la misma perfomance que una aplicación nativa. De esta forma, se puede reutilizar entre el 60% y el 100% del código fuente.

Una de las grandes ventajas que suelo repetir a favor de Xamarin en las reuniones comerciales es el mantenimiento y desarrollo de nuevas funcionalidades posteriores al desarrollo. Es fácil de ver, que al tener 2 aplicaciones nativas completamente distintas, necesitaremos 2 equipos de desarrollo tanto para el mantenimiento preventivo como para el desarrollo o mejoramiento continuo de la app. Utilizar una tecnoglogía cross-platform nos permite reducir costos de mantenimiento ya que se necesita un único equipo que domine una única tecnología para las 2 o hasta 3 plataformas soportadas.

Al enumerar las contras del desarrollo utilizando Xamarin encontramos que la curva de aprendizaje del lenguaje C# y .NET puede ser bastante horizontal si el desarrollador no está familiarizado con esta tecnología.

Xamarin.Forms no aporta, a priori, el 100% de los componentes UI, pero todo tipo de customización es posible. Y por último, el costo para los desarrolladores es alto al ser una tecnología con un costo de u$d 1000 dólares anuales por licencia..

Nativas

El desarrollo nativo pretende utilizar un código fuente distinto para cada aplicación utilizando JAVA para aplicaciones Android y/o Swift o Objective C para iOS.

Los pros y contras surjen de invertir lo que detallamos en PhoneGap y Xamarin.

La performance de aplicaciones nativas suele superar ampliamente a las aplicaciones híbridas (PhoneGap). La diferencia es mucho menor con Xamarin, encontrandose ésta en la carga inicial de la aplicación cuando se "invoca".

En cuanto a las interfaces, nuevamente hay una diferencia entre PhoneGap por un lado y Xamarin y Nativas por otro debido a que la primera no soporta interfaces nativas y sí lo hacen las segundas.

En cuanto a las contras, el costo y los tiempos de entrega prevalecen en la comparación. Las aplicaciones nativas por su incapacidad de reutilizar el código escrito para su par, son más costosas y suelen significar tiempos de entrega y testeo más largos. A su vez, la cantidad de errores o bugs se duplica y esto no sucede en desarrollos híbridos o CorssPlatform.


En Spirit asesoramos al cliente y la decisión se toma en conjunto. Se analizan los requerimientos, el alcance de la aplicación y la disponibilidad de tiempos y recursos. Contando con dicha información, el cliente puede optar. Si ya tiene decidido desarrollar la aplicación en una única plataforma, la respuesta es simple, código nativo. No tiene sentido desarrollar en cross-platform algo que nunca vamos a usar para llevar a otras plataformas. Si en cambio, el plan es desarrollar primero una y luego la otra, o ambas en paralelo, la opción de utilizar una tecnología como Xamarin es recomendada, maximizando el retorno por inversión en un tiempo menor.

Por cualquier consulta o comentario sobre el artículo pueden escribirme directamente a ikoch@spiritconsulting.com.ar

Contacto

+54(9 11)3396-2194
info@spiritconsulting.com.ar
Ciudad Autónoma de Buenos Aires
Argentina