MAR, 19 / FEB / 2013

Programación en móviles: Entender las plataformas

Para el autor, la clave no radica necesariamente, en el hardware de un equipo, sino en las plataformas que le dan soporte y las aplicaciones que brindan al usuario. El autor de esta columna sugiere un estudio de los sistemas operativos y las herramientas de programación.

Desde su nacimiento, los teléfonos celulares han crecido y mutado en dispositivos que serían el orgullo de cualquier guionista de ciencia ficción. Ya no hablamos de un dispositivo destinado a comunicarnos verbalmente y ni siquiera a uno con un conjunto de aplicaciones, si no que hablamos de pequeñas computadoras de alto rendimiento.

Pero la clave de estos dispositivos no radica, necesariamente, en su capacidad de hardware, si no, en las plataformas que le dan soporte, en las aplicaciones que son brindadas al usuario final.

Los actores

Es importante entender quienes son los principales proveedores de sistemas para los dispositivos ya que esto nos ayudará  a entender con que plataformas de desarrollo nos enfrentaremos.

Tanto Gartner, Nielsen como comScore distinguen cuatro grandes proveedores, los cuales poseen cuatro diferentes ambientes y soportes para el desarrollo. Como líder, Google con su Android (46%), Apple con iOS (30%)RIM (15%) y Microsoft con Windows Phone (4.6%). Este último, si bien cuenta con una cuota de mercado pequeña, la misma Gartner ha pronosticado un crecimiento tal en los próximos años que podría llevarlo a ocupar el segundo puesto en esta escala.

Que elegir como plataforma objetivo

Por supuesto, cada uno de estos actores no son mutuamente compatible a nivel de desarrollo de aplicaciones y al mismo tiempo, ninguno de ellos posee la mayoría del mercado, por lo que es necesario que diversifiquemos nuestros desarrollos, sea mediante plataformas mixtas, nativas o totalmente remotas.

Hablar de plataformas nativas es, posiblemente, la forma más fácil y simple de desarrollo, algunas de sus ventajas:

  • Al ejecutarse en el dispositivo pueden acceder y manipular todo su hardware.
  • Resultan más eficientes en su ejecución al estar más cerca del sistema operativo.
  • Pueden ser descargadas y compradas por el usuario desde los diferentes sistemas de tiendas virtuales del proveedor del sistema operativo.

Es posible considerar que las mayores desventajas están relacionadas al costo de producción de nuestro producto, ya que cada uno de estos dispositivos se fundamenta en diferentes tecnologías y lenguajes como Java, Object-C, C#, C++, etc.

El otro extremo viene de la mano con entornos remotos basados en la Web. Con la aparición y uso de HTML5 y CSS3, y el soporte sobre estos estándares por parte de los dispositivos, resulta una propuesta atractiva para tratar de abarcar la mayor cantidad de dispositivos con un lenguaje común como JavaScript. Las posibles desventajas:

  • Se requiere un navegador instalado en el dispositivo con soporte para estos estándares.
  • No se puede distribuir la aplicación mediante las tiendas virtuales
  • Requiere de plugins o gestiones adicionales para el mejoramiento del código.
  • Pueden no resultar atractivas de usar para el usuario.
  • No pueden hacer uso del hardware del dispositivo.

El modelo mixto, o intermedio, es aquel que, mediante el uso de adaptadores, incrustan las funcionalidades de un navegador en una aplicación nativa, pudiendo hacer uso de los estándares de la Web (HTML5 y CSS3) y el hardware del teléfono, además de poder ser distribuida, la aplicación, mediante las tiendas virtuales. Herramientas como PhoneGapSencha o Trigger.io han sido diseñadas para facilitar este ambiente mixto. En el caso de esta última, por ejemplo, proveyendo componentes de forma nativa para lenguajes no nativos del dispositivo.

No debemos dejar de mencionar que a lo anterior es necesario sumarle los servicios de backend o server-side ya que muchas de estas aplicaciones se sustentan con servicios en la nube, los cuales son los responsables del manejo del tráfico de datos entre la aplicación y origen de la misma. Por lo tanto, es vital, contar también con una visión de esta infraestructura bajo los modelos SaaS (Software como Servicio), PaaS (Plataforma como Servicio) u otro, y así asegurar el ecosistema de esa aplicación en una plataforma móvil.

Por Facundo Díaz
Mobile Lead Engineer de Global Logic

¡Comparte esta noticia!