Ir al contenido principal

¿Desarrollamos una aplicación web o una APP nativa?

Es una de las grandes preguntas que se hacen nuestros clientes cuando se les propone la movilización de una herramienta informática.

Como comento siempre, en este mundo de la informática, somos mucho de adoptar posturas extremas, llevando los temas al nivel de "guerra religiosa". Yo sin embargo, la mayoría de las veces, me decanto por un "depende".

Aplicación web vs APP nativa: vamos a analizar algunos datos, para decantarnos por una u otra solución.



Antecedentes

Tradicionalmente, hemos luchado por compatibilizar aplicaciones de escritorio en las distintas plataformas/SO (Mac, Windows, Linux,...). Este problema se minimizó en gran medida con la explosión de las plataformas web. Desde cualquier navegador/ubicación, se puede acceder a cualquier aplicación web, independientemente del sistema operativo del cliente utilizado para conectarse. Todo un paso adelante...

Las aplicaciones nativas no son más que aplicaciones de escritorio de un dispositivo/SO móvil en concreto, por tanto, parece que damos un paso atrás, fragmentando el número de aplicaciones que tiene un mismo sistema de información (versiones/puertos iOS, Android, Blackberry, Windows Phone...). En un futuro, probablemente pase como con las aplicaciones de escritorio, que tienden a desaparecer, o al menos se han reducido drásticamente, sin embargo, en la actualidad, nos encontramos que cada vez hay más aplicaciones que proliferan en cada uno de los markets (App Store, Google Play, App World,...). Los motivos son evidentes:


  • Este mundo se mueve mucho por los modismos. Actualmente la empresa que no tiene una o varias aplicaciones en los markets no existe.
  • Es una fórmula más de comunicación/difusión/posicionamiento.
  • Apple, y luego Google, han hecho verdaderos esfuerzos por integrar nuevos desarrolladores dentro de su ecosistema móvil. 
  • Con las herramientas que tenemos actualmente, solo podemos sacar el máximo rendimiento del dispositivo a través de una aplicación nativa.


Diferencias entre una APP nativa y una aplicación web

  • Las aplicaciones nativas tienen acceso completo al dispositivo (multigestos en la pantalla, procesador para hacer cálculos previo al envío, persistencia, GPS, acelerómetro, brújula, cámara, bluetooth, micrófono, altavoz, implementación de protocolos, como por ejemplo Airplay o DLNA, notificaciones PUSH, integración con otras aplicaciones del dispositivo, cacheo y sincronización de datos que reducen el tráfico y el tiempo de espera del usuario...), las aplicaciones web, en cambio, solo tienen acceso parcial (pese a los esfuerzos y el impuso de estándares, aun la distancia es larga).
  • La experiencia de usuario es muy superior en aplicaciones nativas.
  • La velocidad de una aplicación nativa es superior a la de una aplicación web.
  • El coste de desarrollo es superior en las aplicaciones nativas (un desarrollo por cada plataforma).
  • Las aplicaciones nativas están centralizadas en los markets (unificación del canal de distribución), y por tanto son fáciles de encontrar por los usuarios.
  • Las aplicaciones nativas deben ser validadas por los fabricantes, con el control y la aceptación de licencias que esto supone. Las aplicaciones web, obviamente no tienen que pasar por este proceso.
Conclusiones

En mi opinión, estamos viviendo una "burbuja" de aplicaciones nativas, ya que muchas de las que actualmente podemos encontrarnos en los markets, se podrían saldar con una aplicación web, ya que no necesitan tener acceso completo al dispositivo, ni tener un rendimiento óptimo. En estos casos, optar por hacer un desarrollo web con, por ejemplo, técnicas Responsive Design (que optimizan la visualización a las distintas resoluciones de pantalla), podría ahorrar costes. 

En los casos en los que necesitemos acceso completo al dispositivo, mayor rendimiento, velocidad, o se trate de una herramienta más de marketing dentro de la empresa, habría que optar por aplicaciones nativas. 

Comentarios

Entradas populares de este blog

Lenguajes: Pasado, Presente y Futuro

Escribo este post al hilo del artículo que he leido en dosideas.com. En él, se habla de las habilidades que debería tener un programador para tener un currículum relevante en los próximos cinco años: 1. Uno de los "3 Grandes" (Java, .NET, PHP) 2. Aplicaciones Ricas de Internet (RIA - Rich Internet Applications) 3. Desarrollo web 4. Servicios web 5. Habilidades humanas 6. Un lenguaje de programación dinámico y/o funcional 7. Metodologías ágiles 8. Conocimiento de dominio 9. "Higiene" de desarrollo 10. Desarrollo móvil A partir de este artículo, estuve debatiendo con algunos compañeros y saqué algunas conclusiones que quiero plasmar aquí. Pienso que el artículo es un poco mejorable, dada la arbitrariedad con la que se han escogido los conocimientos a adquirir. De hecho, muchas de esas habilidades hay que tenerlas en el presente (yo cumpliría de 9 a 10). Me voy a centrar en el punto 1, uno de los "3 Grandes" (Java, .NET, PHP). Antes de hablar de "gran...

Métrica v3 vs Metodologías Ágiles

Métrica v3: Metodología de Planificación, Desarrollo y Mantenimiento de sistemas de información que propone el Ministerio de Administraciones Públicas. Cualquier defensor de la técnicas, metodologías y herramienta ágiles sostendrá que Métrica v3 es un sistema demasiado pesado, tanto en su implementación, como en sus procesos de mantenimiento. Yo lo corroboraría, pero sin demonizarla. Estoy acostumbrado a que en este mundo de la informática se creen auténticos "dogmas de fe", que acarrean sus propias "guerras religiosas". Algunos ejemplos podrían ser: Software privativo vs Software libre, Windows vs Linux, Web Services vs Rest, Oracle vs MySQL, Explorer vs Firefox, Apache vs IIS, Eclipse vs Netbeans, y así podríamos seguir con un largo etcétera. En vez de buscar la mejor solución, o soluciones universales, yo propongo realizar un intenso análisis, y respondernos ciertas preguntas. Por regla general, no hay una solución que valga "para todo". La pregunta que...

Huelga Ingeniería Informática

Son varios los compañeros (y sin embargo amigos ;-)) que me llevan pidiendo mi opinión sobre las reivindicaciones de la Ingeniería Informática desde hace algún tiempo. Ya me "he dejado querer" bastante, así que en este post, intentaré expresarme de la manera más clara posible. Como titulado, pienso que a nivel académico, la Ingeniería Informática se debe tratar como el resto de Ingenierías. Si bien, creo que hay muchas carencias en los temarios que se imparten, y la Universidad debería adaptar el currículo, para que los titulados salieran con algunos conocimientos, que en mi opinión, son indispensables. Sobre los contenidos que deberían recogerse se podría escribir mucho, y me lo pongo como tarea para futuros posts. En éste, me quiero extender sobre las competencias y atribuciones profesionales del Ingeniero Informático. En cuanto al nivel académico parece que los Directores y Decanos, ya tienen bastante controlado el tema . En primer lugar, y para los despistados, me gustarí...