Desarrollar apps puede abordarse desde diferentes perspectivas en función de las necesidades que queremos cubrir en el mercado. Antes de entender qué tipos de app nos conviene según los requisitos que buscamos satisfacer, vamos a hacer un pequeño repaso por el mundo de las aplicaciones móviles y su desarrollo.
Lejos quedan aquellas apps como el juego Snake, preinstalado en más de 350 millones de dispositivos móviles Nokia.
Desde las primeras aplicaciones que aparecieron a finales de los años 90, con funcionalidades muy limitadas y un diseño muy simple, hasta las apps que tenemos disponibles en la actualidad, no cabe duda que ha habido un evolución tecnológica exponencial, potenciada en parte por la aparición del protocolo de aplicaciones inalámbricas (WAP), la transmisión de datos y el potente desarrollo de terminales móviles iniciado por Apple y secundado por otras grandes compañías.
Pese a que resulte increíble a día de hoy, no es hasta el año 2007, con el lanzamiento del primer iPhone, cuando el terminal móvil pasa a convertirse en una plataforma donde ejecutar cualquiera de los tipos de App, creadas por desarrolladores propios y compañías externas. Es en este punto de inflexión, cuando se potencia el desarrollo de los principales sistemas operativos móviles (Android, iOS, Windows, Blackberry, etc.) y el desarrollo de apps aprovecha el potencial, tanto de software como de hardaware de los terminales.
Surgen entonces tres tipos de App diferentes a nivel de programación:
Apps Nativas
El primero de los tipos de App, éstas son las aplicaciones desarrolladas de forma específica para un determinado sistema operativo. La mayoría de aplicaciones que encontramos en las plataformas de distribución oficiales de los diferentes sistemas operativos (App Store, Google Play, Windows Store, Blackberry World, etc.), pertenece a este tipo de apps, que sólo van a funcionar en el terminal con el sistema operativo concreto.
El desarrollo de este tipo de app se realiza a través del SDK (Software Development Kit) disponible para cada sistema operativo, y en el que cada aplicación es diseñada y programada específicamente para cada plataforma en un lenguaje determinado. En el caso de Android la aplicación está desarrollada en Java, mientras que para iOS podemos usar Objetive C, C, C++ o Swift.
A nivel de diseño, estas aplicaciones tienes una interfaz basada en las guías de desarrollo de cada sistema operativo, de ahí la coherencia estética entre las diferentes aplicaciones y el propio sistema. De hecho si no se cumplen los objetivos de estas guías puede que nuestra aplicación no llegue a ser publicada en las plataformas de distribución oficiales.
Web App
Estas aplicaciones están programadas en HTML, CSS y JavaScript, por lo que son independientes del sistema operativo en que se van a usar.
Se ejecutan directamente desde el navegador, por lo que no es necesario tenerlas instaladas en el terminal, ni someterlas a actualizaciones. Su distribución es independiente de las plataformas oficiales, por lo que el diseño suele tener una interfaz más genérica e independiente de la apariencia general del sistema operativo en el que se ejecuta.
Apps Híbridas
El último de los tipos de App, en este caso es una combinación de las dos anteriores, cogiendo lo mejor de cada una de ellas.
Desarrolladas en HTML, CSS y JavaScript, al igual que una web app, ofrecen la posibilidad de acceder a las características del hardware del dispositivo, mediante el uso de librerías específicas que acceden a las capacidades del teléfono.
Se compilan y empaquetan para cada plataforma, de manera que el resultado final es como si se trataran de una aplicación nativa, lo que nos va a permitir a partir de un mismo código obtener aplicaciones para diferentes plataformas.
Para su desarrollo existen diferentes frameworks como Phonegap o Icenium entre otras.
Comparemos estos tres tipos de App
Llegados a este punto del artículo, quizás tengamos algo más claro qué tipos de App hay, y cual nos conviene desarrollar según nuestras necesidades. Sin embargo, vamos a tratar de hacer una comparativa a modo de resumen:
|
Acceso completo al dispositivo |
Experiencia de usuario |
Actualización |
Código no reutilizable |
Requiere conexión a Internet |
Distribución en tiendas oficiales |
Multiplataforma |
APP NATIVAS |
X |
X |
X |
X |
|
X |
|
WEB APP |
|
|
X |
|
X |
|
X |
APP HÍBRIDA |
X |
|
X |
|
|
X |
X |
Conclusión. ¿Qué app me conviene desarrollar?
No existe una respuesta estándar para elegir entre los 3 tipos de App diferentes, pero es cierto que en función de las características que tenga nuestra aplicación y el uso que vayamos a darle, podemos decantarnos por un tipo u otro de programación.
Imaginemos que tenemos una aplicación web creada y lo que queremos es que nuestra app sea accesible desde un terminal móvil, la mejor opción es la de adaptar la aplicación que ya tenemos a un diseño responsive, de manera que creemos una web app que se adapte a nuestras necesidades. De esta forma no perdemos nuestra imagen de marca, pues el usuario va a tener la sensación de acceder a la misma aplicación, independientemente del dispositivo que utilice, además de que es multiplataforma, por lo que unos simples cambios en el código que ya tenemos, pueden ahorrar mucho trabajo y horas de programación.
Sin una aplicación previamente desarrollada, nos quedan dos opciones ¿App nativa o híbrida?
Como hemos visto, cada tipo de app tiene sus ventajas e inconvenientes, todo depende del producto que queremos ofertar.
Una App Nativa tiene muchas ventajas de cara al uso eficiente de todas las propiedades del dispositivo, por lo que su funcionamiento va a ser más fluido y rápido de cara al usuario.
En el caso de querer hacer uso de ciertas funcionalidades del hardware, como giroscopios, brújula, gps, etc, sin duda la APP Nativa es nuestra alternativa, teniendo en cuenta que tendremos que desarrollar de forma independiente una aplicación para cada sistema operativo en el que queramos distribuirla, siguiendo las guías de estilo que nos marcan los fabricantes y sin perder de vista nuestra imagen de marca.
Desarrollaremos una APP híbrida, cuando la aplicación no acceda a funcionalidades muy concretas del dispositivo, o estos accesos se consideren secundarios para el uso de la aplicación. Este tipo de APP tiene la ventaja de que a partir de un único código podremos crear una aplicación multiplataforma, pero no tienen por qué cumplir al 100% con las guías de estilo.