Herramientas de desarrollo de apps > nativas, híbridas y web

Apps nativas

Las aplicaciones nativas son aquellas que han sido desarrolladas con el software que ofrece cada sistema operativo a los programadores, llamado genéricamente Software Development Kit o SDK.

Por tanto, se requiere del conocimiento de diferentes herramientas y lenguajes de programación en función de si se programa para Android, iOS o Windows Phone.

Ventajas de las apps nativas frente a las multiplataforma

  • Mejor experiencia de usuario. Más funcionalidades: Acceso a las notificaciones del sistema para mostrar avisos al usuario; acceso al hardware del terminal, como la cámara, sensores (GPS, acelerómetro, giróscopo, …).
  • Mayor rendimiento.
  • No requieren de Internet para funcionar.

Aplicaciones web > Desarrollo multiplataforma basado en HTML

Las aplicaciones web, también llamadas webapps, están basadas en HTML, CSS y JavaScript. No se emplea un SDK para el desarrollo, lo cual permite programar con independencia de la plataforma.

Al tratarse de aplicaciones que funcionan sobre la web, no es necesario que el usuario reciba actualizaciones, ya que siempre va a estar viendo la última versión. Sin embargo, requieren de conexión a Internet.

Ventajas de las aplicaciones web

  • Es más económico y fácil desarrollarlas. No es necesario conocer los lenguajes y herramientas propios de cada SO.
  • Multiplataforma. Desarrolla una sola vez, funciona en todos los dispositivos.
  • Basadas en tecnologías web (HTML, CSS, JavaScript) por lo que no habrá que aprender en principio un lenguaje específico.
  • Sin instalación ni mantenimiento en el cliente.
  • No es necesario comprar la app en una tienda de aplicaciones (Google Play, App Store…)

PhoneGap/Apache Cordova

Sitio web | Licencia Apache 2.0 |

Apache Cordova es un marco de desarrollo móvil de código abierto. Permite utilizar las tecnologías estándar web como HTML5, CSS3 y JavaScript para desarrollo multiplataforma, evitando el lenguaje de desarrollo nativo de cada plataformas móvil.

Desarrollo híbrido > apps multiplataforma compiladas a nativo

[mod] Son una especie de combinación entre las aplicaciones nativas y las web.

Se desarrollan con HTML, CSS y JavaScript. Posteriormente se compilan o empaquetan, de tal forma que el resultado final es parecido a una aplicación nativa. Esto supone la gran ventaja de que con el mismo código obtenemos aplicaciones para, por ejemplo, Android y iOS.

Las apps híbridas permiten acceso, usando librerías, a las capacidades del teléfono, tal como lo haría una app nativa.

Ventajas del desarrollo híbrido

  • Multiplataforma. Disponibles, con pocos o ningún cambio, en todos los sistemas operativos.

Kivy

Sitio web | Licencia MIT

Kivy es una librería Python de software libre. Es multiplataforma. Permite la creación de apps que se ejecutan en PCs de escritorio, iOS, Android, y cualquier otro dispositivo que soporte TUIO (Tangible User Interface Objects).

Xamarin

Xamarín es la herramienta más conocida y utilizada en el ámbito híbrido. Adecuado si preferimos C# en lugar de HTML5 o Python.

Xamarin e la implementación libre de la plataforma de desarrollo .NET para dispositivos Android, iOS y GNU/Linux.

¿Qué plataforma utilizar?

Como opinión estrictamente personal, me inclino en favor del desarrollo de aplicaciones web híbridas, por sus múltiples e importantísimas ventajas. Sin embargo, una aplicación nativa podría ser la indicada, si el acceso a los recursos de hardware del teléfono son importantes.

Sistema operativo FirefoxOS

¿Qué papel juega el sistema operativo para móviles FifreoxOS en este tema?

Mozilla ofrece un sistema operativo que permite correr aplicaciones Web al 100% de rendimiento nativo en cualquier terminal.

Artículos de interés

[Humanlevel.com] El desarrollo Web con HTML5 será el futuro de las aplicaciones móviles

El artículo nos propone un pronóstico de futuro (si bien este es siempre incierto) que describo con algunas citas:

  • “A medida que aumenta la velocidad de ejecución de JavaScript, el tiempo de renderizado y el hardware de los móviles, las ventaja que aporta HTML5 al minimizar el coste de desarrollo y mantenimiento en aplicaciones multiplataforma, es algo con lo que las aplicaciones nativas no van a poder competir”.
  • “HTML5 permitirá tener una página Web que será al mismo tiempo una aplicación móvil, mientras que usando código nativo sólo tendremos una aplicación móvil”.

[campusmvp.es] Programación movil ¿Qué herramienta y lenguaje elegir? El artículo ayuda a decidirse por una plataforma y simplifica mediante un diagrama.

Algunas plataformas de desarrollo de apps

Nombre Lenguajes Entorno de desarrollo Plataforma de ejecución
Android Java con posibles partes en C y C++ SDK, entorno adaptado de IntellilJ  IDEA y emulador Android
Appcelerator JavaScript TitaniumStudio y emuladores Android, iPhone, Tizen
Firefox OS HTML5, CSS, JavaScript Firefox, depurador y simulador Navegador
iOS SDK Objective-C, Swift SDK, Xcode IDE y emulador iOS
PhoneGap / Apache Cordova HTML5, CSS, JavaScript Herramientas de terceros y depurador Multiplataforma
Unity C#, JavaScript, Boo, lenguajes basados en .NET Unity Editor y emulador remoto Multiplataforma
Windows 10 C, C++ Visual Studio y emulador Windows 10