Los desarrolladores se dieron cuenta muy pronto del problema empresarial: la necesidad de ofrecer servicios en diferentes plataformas móviles, y hoy en día hay un gran número de herramientas en el mercado para crear aplicaciones multiplataforma que difieren en la gama de dispositivos y sistemas operativos móviles compatibles, así como en las soluciones de ingeniería subyacentes. Este mercado es aún extremadamente inmaduro, los estándares no se han asentado, los líderes no se han decidido, lo que, en principio, es lógico: el propio mercado de las aplicaciones móviles tiene unos cinco años.

Un cliente potencial de una empresa necesita entender las ventajas y los puntos débiles de la propuesta de implementación de una empresa de desarrollo de aplicaciones multiplataforma, para que luego no tenga que volver a encargar este trabajo a otro equipo. En general, hay pocos enfoques técnicos diferentes: aplicaciones nativas para cada plataforma, aplicaciones web universales, uso de generadores de código para crear aplicaciones nativas y soluciones híbridas.

No hay que olvidar que la diversidad de los móviles no termina en el nivel de los sistemas operativos y las herramientas de desarrollo (que, por cierto, existen en varias versiones). El mercado ofrece dispositivos de diversas formas y tamaños, con diferentes resoluciones de pantalla. Ni siquiera el iPad y el iPad mini, el iPhone 4 y el iPhone 5 son lo mismo. Qué podemos decir de los dispositivos Android!

Hay muchos dispositivos heredados, especialmente en los países del tercer mundo, que sin embargo se utilizan activamente, y los proveedores de servicios no quieren perder a sus clientes ni siquiera en los rincones más remotos de África o la India. Por cierto, los analistas rara vez tienen en cuenta este factor, dejándose llevar por los vendedores a la hora de evaluar las perspectivas de los últimos modelos de aparatos de moda, ignorando la dura verdad de la vida, donde, por ejemplo, las aplicaciones del SO Symbian (que ya han sido enterradas) siguen siendo necesarias.

Aplicaciones web en dispositivos móviles

Todos los teléfonos inteligentes y las tabletas de hoy en día están equipados con un navegador web, que permite ver cualquier sitio y ejecutar casi cualquier aplicación web tal cual, sin modificación. Sin embargo, no se puede decir que a los usuarios les guste: si el sitio no ha sido adaptado para su visualización a través de la pequeña pantalla de un smartphone, el usuario recurrirá a esta oportunidad sólo en el caso más crítico. Por lo tanto, los desarrolladores tienen que crear el mejor diseño de aplicaciones móviles y versiones especiales de los sitios para dispositivos móviles, que difieren en el diseño, el tamaño de los controles y la estructura.

En principio, esto es suficiente para algunas áreas. Por ejemplo, para leer periódicos y sitios de noticias en un iPad o un Galaxy. Los usuarios de este tipo de aplicaciones no necesitan funcionalidades avanzadas ni servicios especiales, por lo que las limitaciones inherentes a esta arquitectura son aceptables:

  • falta de acceso a los sensores y botones del gadget,
  • imposibilidad de utilizar funciones específicas de la interfaz de usuario,
  • la necesidad de una conexión constante a Internet, etc.

Esto se compensa con la velocidad. Y la facilidad de desarrollo.

En su forma más simple, en un dispositivo móvil, sólo se necesita un navegador, toda la lógica y la interfaz de usuario se implementa en el servidor utilizando el conjunto de herramientas habituales de Java, PHP o Ruby. Es posible conectar servicios web de terceros, lo que permite construir aplicaciones en la nube.

Toolkit: una rica selección

Si no estás satisfecho con la limitada funcionalidad de las aplicaciones web y, por razones económicas, no tiene sentido invertir en el desarrollo de aplicaciones nativas para todas las plataformas necesarias (aunque sólo sean dos: iOS y Android), entonces tendrás que buscar alguna tercera vía que permita y ahorre y proporcione la cobertura de mercado que necesitas.

El uso de generadores de código implica la creación automática de varias aplicaciones nativas sobre la base de un único modelo, se podría decir «un lenguaje para construirlas todas». Este enfoque se utiliza cuando es necesario el acceso físico al hardware y es importante proporcionar una interfaz de usuario nativa. Algunos ejemplos son Applause y Mono. La desventaja de los generadores de código es la necesidad de reconstruir las aplicaciones para todas las plataformas cuando se realizan cambios. De hecho, todavía hay varias aplicaciones nativas en camino, que deben publicarse por separado en las tiendas de los proveedores.