Hoy quería hablar acerca del desarrollo móvil, uno de mis temas favoritos, y el futuro que a mi parecer le espera. Ante todo me gustaría avisar que esta es mi opinión pero por lo que voy viendo opino que es bastante acertada dada la situación actual en el campo.

A día de hoy, Android e iOS siguen en el más alto estrato de los sistemas operativos para móviles. Esto no es nada nuevo, pero sí es importante remarcarlo ya que aunque esto lleva siendo así mucho tiempo no podemos evitar observar como otras compañías como Microsoft, o la alianza Telefónica – Mozilla (que dio lugar a Firefox OS) luchan por hacerse un hueco en este mercado con más fuerza y parece que poco a poco lo están consiguiendo, sobretodo la primera.

Claramente, este asceno y extensión de otros SOs hace que ya no baste con tener en compañías desarrolladores Java y de Objective-C (o Swift, según lo hipster que sea) sino que ahora necesitamos a desarrolladores C# y XAML si queremos también desarrollar aplicaciones al mismo nivel para Windows Phone que para los anteriores. Pero no solo esto, si no que si en la empresa se necesita también poder crear aplicaciones que funcionen en Firefox OS, Ubuntu Touch, Blackberry… No solo nos encontraremos con una plantilla de desarrolladores y conocimientos bastante amplios, también tendremos que lidiar con diferentes proyectos llevados a cabo por diferentes personas para lograr el mismo fin: tener una app que funcione en cualquier smartphone.

El problema se ve bastante claro, mucho esfuerzo para algo que se puede hacer más sencillo. Desde hace mucho tiempo vienen existiendo tecnologías que nos facilitan poder con un único proyecto de código desarrollar aplicaciones para múltiples plataformas. Entre ellas encontramos las que se desarrollan sobre una vista web nativa del teléfono y las que convierten un mismo código a nativo para los distintos dispositivos y sistemas.

Desarollo basado en vista web nativa

apache-cordova-phonegap

 

La programación multiplataforma basada en los llamados «Web View»  se encargan de usar las tecnologías que durante tantos años hemos utilizado en la web como son HTML, CSS y Javascript para crear aplicaciones móviles. Cierto es que el rendimiento no es el mismo y este  es el causante de que el eterno debate siga y siga… Pero la constante mejora de los dispositivos hace que cada vez resulte más indiferente perder un poco de velocidad ya que en la mayoría de ocasiones es prácticamente inapreciable para el usuario y, no solo eso, las personas que hacen estos SDKs posibles también se encargan de crear módulos para un cómodo y optimizado acceso a las APIs de los diferentes sistemas, lo que hace que, por ejemplo, acceder a la cámara cada vez sea más rápido.

 

Hay bastantes tecnologías que nos ofrecen esta posibilidad:

  • Apache Cordova: padre de todos los demás que aquí listo.
  • PhoneGap: a día de hoy lo mismo que Cordova, el proyecto empezó como PhoneGap pero tras ser donado a Apache por Nitobi cambió de nombre. De hecho Cordova se actualiza más constantemente aunque PhoneGap está en manos de Adobe por si quiere ser extendido. Posee herramientas de compilación interesantes aunque no obligatorias.
  • Ionic: el más joven y novedoso de los tres, permite el uso de AngularJS para crear tus aplicaciones y otras características interesantes, está aún en Beta pero su uso empieza a extenderse.

Desarollo para compilación a nativo

Como ya hemos dicho, el rendimiento es la principal baza en contra de los WebViews, es por esto que los desarrolladores vieron la oportunidad de negocio en esta otra forma de generar apps para diferentes sistemas operativos. Como su nombre indica su baza es transformar con un mismo código a aplicaciones nativas que, aunque el rendimiento tampoco suele ser el mismo que si las programas y optimizas tú, si que es más similar que un WebView. Sus diferencias se basan principalmente en los lenguajes de programación utilizados y su tiempo en el mercado, a continuación pongo los dos principales exponentes:

  • Appcelerator Titanium: mi favorito. Gratuito. Puedes elegir Javascript puro o utilizar Alloy que intenta aproximar la plataforma a desarrolladores web ofreciendo una estructura vista controlador similar a HTML, CSS y Javascript. Además permite la integración de Backbone y Underscore, ¿a que es guay?
  • Xamarin: Un sistema de otra gran empresa que hace uso de C#, no es totalmente gratuito ofrece un sistema Freemium en el que a más quieras hacer más debes pagar.

Sencha por otro lado empieza a hacer uso de APIs nativas, pero parece que sigue trabajando en un WebView. Así que si queréis podéis echarle un ojo.

 

El futuro

Siguiendo con mi sincera opinión, el futuro de los móviles es HTML5. Poder aprovechar los conocimientos que durante tantos años se han utilizado para crear la web y utilizarlos para crear apps móviles me parece lo más normal del mundo. Puede que los WebView sean más lentos, pero si a día de hoy para la mayoría de aplicaciones es despreciable en unos años lo será aún más. Además, las aplicacioines web basadas en Frameworks de Javascript han creado una revolución en la manera que las webs se construyen a día de hoy, ¿por qué no aprovechar estos recientes recursos? Sería un desperdicio, y como hemos dicho Ionic y Titanium ya los están usando (Angular y Backbone) así que poco a poco nos vamos acercando al punto donde las apps multiplataforma dominen.

El otro día visitamos Wayra y tuve la suerte de conversar con varios de los proyectos que trabajaban allí, todos usaban aplicaciones basadas en tecnologías web,  PhoneGap más específicamente. Si empresas como Wayra ven en proyectos con estas tecnologías un futuro muy viable, ¿Por qué no lo íbamos a hacer nosotros?

Los wearables y las tecnologías del futuro ya son un tema a parte, pero tampoco me extrañaría que estas tecnologías ocupasen un sitio en ellos, al fin y al cabo todo está relacionado.

 

Espero que os haya resultado interesante la entrada, cualquier cosa en la que no estéis de acuerdo hacédnosla saber comentando libremente. ¡Nos vemos en otro post!

Admin

    Leave a Comment