En los últimos años, la demanda de aplicaciones móviles ha crecido a un ritmo acelerado. Solo en el último trimestre de 2011 se vendieron 157,8 millones de smartphones, lo que representa un aumento del 54,7% en comparación con el mismo periodo del año anterior, según la consultora IDC.
A medida que las ventas crecen, la necesidad de aplicaciones también aumenta, tanto en el ámbito corporativo como en el de entretenimiento. A partir de este crecimiento, surgen cada vez más técnicas y herramientas para hacer que este desarrollo sea productivo, principalmente en las tres plataformas más populares del momento: iOS, Android y Windows Phone.
Abordaremos tres modos de desarrollo para dispositivos móviles: desarrollo nativo, cross-platform y sitio móvil (web mobile).
Nos enfocaremos en sus principales ventajas y desventajas, presentando casos de éxito con el fin de permitir que el lector conozca mejor los tres enfoques y ayudar a definir cuál es la mejor alternativa para cada situación.
Aplicativo Nativo
Es el enfoque más sencillo y directo: para cada plataforma se desarrolla una versión de la aplicación.
El gran beneficio de este enfoque es la mejor experiencia de interfaz y comportamiento obtenida. Las aplicaciones móviles requieren excelentes experiencias de uso en la interfaz y en el comportamiento para destacar y captar la atención del usuario. Además, la experiencia de uso no es portable de una plataforma a otra; debe ser repensada y construida desde cero para cada plataforma en la que se crea la aplicación.
Un ejemplo sencillo se puede ver en la posición de las pestañas: en iOS, las pestañas se ubican debajo del contenido, mientras que en Android están arriba. Presentando una diferencia mayor, en Windows Phone las «pestañas» están todas en un mismo plano y se accede a ellas desplazando el contenido horizontalmente.
Cada plataforma cuenta con sus propias convenciones sobre interfaces y comportamientos. Estas convenciones ayudan al usuario a comprender rápidamente el uso de la aplicación, ya que está acostumbrado a una plataforma donde todas las apps siguen los mismos estándares de interfaz y comportamiento.
Las capacidades de cada dispositivo y plataforma también son accesibles sin restricciones. Con cada nueva versión de la plataforma se añaden nuevas bibliotecas, lo que hace posible o facilita el desarrollo de diversas funciones por parte de las aplicaciones.
Estas versiones se lanzan con alta frecuencia, una o más veces al año, y generalmente coinciden con la llegada de nuevos dispositivos cuyo hardware aprovecha todas estas nuevas capacidades. Los usuarios de estos nuevos aparatos exigirán las nuevas funciones lo antes posible, y utilizando el desarrollo nativo es más fácil satisfacerlos (las versiones beta se lanzan previamente para los desarrolladores).
El desarrollo nativo también cuenta con una documentación más amplia y completa, y la búsqueda de soluciones o la resolución de problemas se facilita, ya que la mayoría de los desarrolladores opta por esta alternativa.
A pesar de todas las ventajas, este enfoque puede tener un costo elevado. Construir n versiones de la misma aplicación para varias plataformas generalmente multiplica el costo del proyecto en la misma proporción.
Este costo adicional se suma al mantenimiento, ya que hay múltiples bases de código y en cada una de ellas puede haber errores que no se encuentran en las demás. Otra dificultad es conseguir un equipo capaz de desarrollar para múltiples plataformas o contratar un equipo para cada plataforma.
Caso de éxito: Facebook
Aplicación Cross-Platform
El desarrollo Cross-Platform consiste en un desarrollo único para varias plataformas. Actualmente existen diversas herramientas que permiten este enfoque, donde la parte visual normalmente se desarrolla en HTML5 y CSS, y se «renderizan» en un navegador integrado dentro del SDK estándar del lenguaje nativo (Objective-C en iOS, Java en Android, etc.), haciendo posible el desarrollo para múltiples plataformas. A continuación se enumeran dos de las principales herramientas del mercado que se han utilizado internamente:
Adobe Air
Utilizando Adobe Air es posible programar en Actionscript 3.0 en segundo plano y desarrollar la parte visual utilizando MXML (lenguaje de marcado de Adobe) o incluso HTML5/CSS. Actualmente es posible crear versiones para Android, iOS y Blackberry Tablet OS. Para instalar una aplicación desarrollada con Adobe AIR, es necesario tener instalado el Adobe AIR Runtime en el dispositivo.
Sin embargo, al intentar instalar una aplicación desarrollada en AIR, se solicita automáticamente la instalación de Adobe Air Runtime. El SDK de Adobe Air es totalmente gratuito; sin embargo, Flash Builder, que es un IDE también desarrollado por Adobe con una serie de facilidades para el desarrollo, es de pago. La referencia del lenguaje (Actionscript) está muy bien detallada, pero la documentación de la parte visual no es tan rica.
Motorola Rhomobile
La plataforma Rhodes fue adquirida por Motorola a principios de 2012, convirtiéndose en Rhomobile. En Rhomobile es posible desarrollar en Ruby, con un framework similar al ya conocido Rails, mientras que la parte visual se puede desarrollar en HTML5 y CSS. Al crear un nuevo proyecto, ya se incluye un «skin» en CSS para cada plataforma.
La creación misma del proyecto incluye una rutina que determina en qué plataforma se está ejecutando la aplicación. También cuenta con una amplia capa de abstracción de bases de datos, lo que simplifica esta parte del desarrollo. En contrapartida, su API para solicitudes HTTP y Threads aún es muy inestable; además, la documentación y el soporte en Brasil dejan que desear, especialmente en lo que respecta a las licencias del producto.
Otras herramientas disponibles en el mercado
- PhoneGap
- Appcelerator Titanium SDK
- MoSync
Las aplicaciones desarrolladas con herramientas cross-platform suelen reducir considerablemente el costo de un proyecto, especialmente cuando se involucran múltiples plataformas. Sin embargo, debido a su naturaleza genérica, el acceso a los recursos nativos se vuelve más laborioso y frecuentemente problemático.
La parte visual también se convierte en un problema, ya que en algunas herramientas se comporta de manera sustancialmente diferente en los distintos dispositivos compatibles. Por lo tanto, se suele utilizar para el desarrollo de aplicaciones sencillas que no requieren tantos recursos nativos.
Sitio Móvil (Web Mobile)
Con la popularización de HTML5 y su adopción por parte de los navegadores de los dispositivos móviles, se abrió un nuevo frente para el desarrollo: los sitios móviles.
El acceso a los recursos del dispositivo como cámara, GPS, acelerómetro, etc., es posible, aunque en ocasiones puede resultar complicado.
Un sitio móvil no depende de una tienda de aplicaciones ni de su respectiva política de evaluación. Esto permite entregas rápidas, con una implementación ágil de nuevas funciones y correcciones de errores. El hecho de que el usuario no necesite realizar una instalación también se considera un factor positivo.
En un sitio móvil no se debe simular el aspecto y el comportamiento de una aplicación nativa. Los usuarios saben distinguir entre una excelente experiencia en una aplicación nativa y una excelente experiencia en un sitio móvil. Para lograr esta gran experiencia, la atención debe centrarse en construir un sitio que tenga una excelente usabilidad en pantallas táctiles y/o pequeñas.
El costo de construir un sitio móvil es menor que el de desarrollar aplicaciones nativas para cada plataforma. Es más común encontrar profesionales que conozcan la tecnología involucrada. Sin embargo, los sitios móviles tienen un requisito principal obvio: acceso a internet.
Aunque esto es un requisito básico en Estados Unidos y Europa, en Brasil la red móvil aún no está tan extendida en smartphones y tablets. Por lo tanto, un sitio móvil resulta más interesante cuando la aplicación requiere esencialmente acceso a la web.
¿Te ha gustado el artículo? Entonces sigue también las redes sociales de Teclógica: Facebook, Instagram, Linkedin, Twitter y Youtube.


