Hablando un poco sobre soluciones móviles


Una solución móvil puede presentarse de las siguientes formas: a través de una solución nativa, a través de una solución web o a través de una solución híbrida.

Una solución nativa es aquella que se desarrolla con la API propietaria de cada sistema operativo móvil (IOS, Android, BlackBerry OS, Windows Phone, Bada, Symbian).

Llegar a dominar el conjunto de librerías de cada sistema operativo es una tarea que requiere de su debido tiempo de preparación y experiencia, además de lidiar con los respectivos chicharrones.
La buena noticia en el caso de IOS y Android es que sus lenguajes Java y Objective C respectivamente, comparten el mismo paradigma y modelo de programación, el POO (Programación Orientada a Objetos) lo cual hace que la curva de aprendizaje entre una y otra plataforma se compensen en algún punto.

El ecosistema de soluciones está encaminado en gran porcentaje hacia las plataformas de Apple y Google, es decir hacia los sistemas operativos IOS y Android, la razón tiene que ver no sólo con que ambos sistemas operativos son robustos y flexibles si no también a un tema comercial por parte de los fabricantes del hardware sobre los cuales corren cada uno de estos sistemas operativos.
Google puede decir que en la actualidad es el dueño del sistema operativo con mayor número de instalaciones sobre dispositivos al ser el SO acogido por los fabricantes como Samsung, LG, Sony Ericson, Motorola, sólo por mencionar a los más grandes ya que la lista es extensa y no sólo se limita a los smartphones, si no que además lo encontramos en electrodomésticos como televisores, microondas, ente otros.

En el otro flanco encontramos a Apple con su sistema operativo IOS desarrollado para la gama de dispositivos móviles (iPhone, iPad y iPod), aunque manejan un menor número de instalaciones en diferentes dispositivos el simple hecho de tener el sello de Apple es suficiente, ya que éste marca es el emblema de la calidad y eficiencia entre Software-Hardware, esto es tan así que basta con que un consumidor utilice un producto de Apple para ser convertido en un consumidor fiel (me incluyo aunque no dejo de ser abanderado de Android).

Hasta este punto podría llegar la charla sobre sistemas operativos, pero es necesario saber que de manera discreta se encuentra Windows Phone cuyo padrino es Microsoft con la capacidad financiera de hacer revivir a un sistema operativo y de otro lado tenemos a BlackBerry SO de la empresa RIM que en latinoamérica es aún bastante fuerte. La verdad de los hechos es que estos dos últimos sistemas operativos se encuentra de forma modesta aún en las estadísticas, al menos por ahora así está el panorama. La tendencia y las estadísticas tienden a mostrar a Android y IOS como campeón y subcampeón de la carrera móvil.

Para iniciar con el desarrollo de aplicaciones nativas es necesario conocer POO, Java, C++ , Objective C. Para aplicaciones de Android, Google a seleccionado a Eclipse como su IDE de desarrollo, esto por ser uno de los mejores IDE de desarrollo que además trabaja bajo el esquema de plugins. Por otro lado para desarrollar aplicaciones IOS, Apple proporciona Xcode como entorno de desarrollo basado en Cocoa y Cocoa Touch. En el caso de aplicaciones Android todas las herramientas son OpenSource y pueden ser descargas gratuitamente de la red, en el caso de IOS las herramientas de desarrollo se encuentran disponibles en App Store de forma gratuita pero al momento de probar el desarrollo o depurarlo en un dispositivo es necesario estar registrado como Developer y pagar una membresía, lo cual no ocurre con Android en el cual puedes probar las veces que quieras en un dispositivo sin pagar licencia y sólo hasta el momento de decidir distribuirlo es necesario pagar por ello.

Para desarrollar productos para Blackberry es necesario saber C++ o Java, aunque con el último intento de revancha de la RIM se ha logrado migrar a HTML5, el cual es una de las tecnologías de soluciones híbridas de la que hablaré más adelante. Si quieres desarrollar para Windows Phone debes conocer .Net, C# y su paquete completo para desarrollo móvil Silverlight.

Una solución web para móviles no es más que un Web Site adaptado a través de hojas de estilos para ser accedidas desde un browser móvil (i.e. Opera), generalmente va acompañado de un Agente para detectar desde que tipo de dispositivo y navegador se está accediendo. Las soluciones Web utilizan el potencial de la Web 2.0 y CSS3 permitiendo una enriquecida Arquitectura de Información (AI) y presentar un buen Diseño Gráfico. La mayor desventaja de una solución Web para móvil es no poder contar con la administración de periféricos del dispositivo tales como la Cámara, GPS, acelerómetro, entre otros. Entonces cómo explotar las ventajas que brindan los componentes web a través de una bien aplicada Arquitectura de Información y la administración de recursos disponibles por el dispositivo?. La solución está dada por las soluciones híbridas como veremos a continuación.

Las soluciones híbridas es una combinación de las dos anteriores soluciones, es decir son aquellas que tiene componentes nativos y componentes web integrados para cumplir con la funcionalidad. Cómo se logra esto?, el hecho de tener la necesidad de desarrollar una solución en cada una de las plataformas implica saber desarrollar en Java, C++, Objective C, .Net y manejar cada uno de los entornos especializados para cada una de estas tecnologías. Honestamente las empresas cuentan con recursos y desarrolladores expertos en tecnologías puntuales y cuesta en gran medida tener un pool de desarrolladores expertos en todas estás tecnologías al mismo tiempo. Es por ello que un grupo de expertos se dedicó a construir una solución que permitiera construir código una vez y desplegar en múltiples plataformas móviles dicha solución dio origen al bien conocido framewok PhoneGap que posteriormente fuese donado a Apache Cordova y luego comprado por Adobe. También se destaca Worklight de IBM como otra alternativa de framework para aplicaciones híbridas, las soluciones en Worklight son aplicaciones PhoneGap con capacidades adicionales provistas por la plataforma de integración Worklight de IBM. Sólo por mencionar algunos otros frameworks se encuentran Titanium, AT&T WorkBench, BlackBerry WebWorks, Strobe o Tiggr. El framework en sí es la herramienta utilizada para convertir nuestra solución a multiplataforma y las tecnologías bajo las cuales se desarrolla la solución son HTML5, JavaScript y CSS3 a las cuales se les puede integrar JQuery Mobile o Sencha Touch para enriquecer la AI de la solución.

Ahora la gran pregunta. Cuál es la mejor alternativa para desarrollar un solución móvil?. La respuesta es la misma que conocemos en Arquitectura: "Depende". Depende de los requerimientos que el cliente necesite y el contexto bajo el cual se deba presentarse la solución.
Thanks for your comment