Para que se conozca mejor, como desarrolladores de software a medida y de calidad, hemos realizado una comparativa entre estas dos formas de desarrollar para móviles: creando aplicaciones móviles nativas o aplicaciones web. Antes de mostrar las ventajas de cada modelo describimos ambos tipos de aplicaciónes.
Las aplicaciones móviles pueden ser hechas, fundamentalmente de dos formas, usando las herramientas proporcionadas por el creador del sistema operativo (desarrollo nativo) o utilizando herramientas de un tercero (desarrollo no nativo, por ejemplo PhoneGap, Appcelerator, Adobe Air, etc.
Aplicaciones móviles nativas
El software nativo, está desarrollado en el mismo lenguaje nativo del S.O. del terminal como Objective-C para iOS, Java para Android y C# para Windows Phone. Esto permite a la aplicación obtener el mayor rendimiento posible del terminal, así como acceso total a los recursos del mismo.
Aplicaciones móviles web apps
El software «no nativo» está desarrollado en lenguajes multiplataforma como por ejemplo HTML5 y JavaScript (el usado en la web). Al ser multiplataforma puede ser ejecutado en cualquier plataforma sin complicaciones, no obstante este software no podrá explotar al máximo las posibilidades del terminal.
Algunas herramientas, como las comentadas al principio de este artículo, permiten encapsular estos desarrollos en un envoltorio nativo, para dar la sensación de aplicaciones nativas.
La curiosidad
Las web apps son nativas en uno de los sistemas operativos móviles más reciente: Firefox OS.
Ventajas
Apps nativas
- Mayor rendimiento
- Acceso completo al hardware del terminal (cámara, sensores, lista de contactos, etc)
- Funcionalidad offline
- Mantenimiento más sencillo
Web apps
- Multiplataforma
- Desarrollo más económico para varias plataformas
- Sencillez de distribución en tiendas de aplicaciones
Desventajas
Apps nativas
- Mayor coste de producción multiplataforma
Web apps
- Acceso limitado al hardware del terminal
- Conexión a internet requerido
- Menor rendimiento
Conclusión
Como suele suceder no existe a priori una mejor tecnología, sino que según los requisitos de la aplicación móvil o las necesidades de los potenciales usuarios de la aplicación hay un tipo de desarrollo que se adapta mejor a las necesidades del cliente.
Por ejemplo si una aplicación tan solo necesita el acceso a la cámara y queremos que funcione en las plataformas móviles más populares como iOS, Android, Windows Phone, Blackberry, Symbian, Bada o webOS la mejor opción es desarrollar una aplicación no nativa utilizando un framework como PhoneGap.
Sin embargo si queremos una aplicación integrada exclusivamente con los servicios de Apple como iCloud; la mejor opción sin duda es desarrollar una aplicación móvil nativa de iOS.