Preguntas frecuentes sobre aplicaciones

¿Qué es una aplicación de web abierta técnicamente?

Una aplicación de web abierta es mucho más que una aplicación HTML. Hay que pensar que las "Open Web Apps" (OWA) son aplicaciones construidas sobre estándares web o aplicaciones "Web Run Time" (WebRT).

Una aplicación WebRT se ejecuta fuera del navegador normal y puede iniciarse desde el escritorio (o el equivalente del dispositivo) en cualquiera de los dispositivos populares conectados a internet. Por supuesto, las aplicaciones WebRT también pueden ejecutarse dentro del navegador si el usuario lo prefiere.

Aunque HTML5 es una evolución de la especificación de sintaxis de HTML, en la práctica es una ola de tecnologías nuevas o mejoradas.

Para una aplicación de web abierta, puede usar:

  • HTML5 como la sintaxis declarativa para definir la estructura de la interface de usuario de la aplicación.
  • CSS3 como la sintaxis declarativa para definir el diseño, la estética visual y porciones del comportamiento de la UI. Usando CSS3, puede dejar a medida la experiencia visual de cualquier dispositivo que necesite una presentación específica sin tener que reimplementar la estructura o la lógica de programación.
  • JavaScript como la sintaxis imperativa para implementar la lógica a ser ejecutada en el dispositivo del cliente.
  • Nuevas tecnologías que son parte de la ola aunque no están en la especificación de markup de HTML5 como AppCache, WebStorage, WebSockets, WebWorkers, Server-Sent Events, Crypto API, etc.

Cuando sea apropiado, puede aumentar las aplicaciones WebRT con lógica del lado del servidor, para usar cuando el dispositivo del usuario esté conectado. Aunque las aplicaciones WebRT pueden ejecutarse estén o no conectadas a internet, se puede ofrecer una experiencia mejorada cuando esté conectado. Puede elegir cualquier platafoma o tecnología de lado del servidor que prefiera, ya que la aplicación y el servidor se comunican sobre HTTP/S usando mecanismos estándares como JSON y XML.

Portabilidad

Las aplicaciones de la web abierta se llaman abiertas porque deberían funcionar en cualquier plataforma web, ya sea Firefox, Chrome o la que sea en cualquier dispositivo ya sea un equipo de escritorio, laptop, teléfono, lo que sea. Así que teóricamente cuando desarrolla una OWA funcionará en cualquier parte. Prácticamente, ya que algunos fabricantes no apuntan completamente en la dirección de la estandarización, hacer que una OWA funcione de una plataforma web a otra puede requerir algún trabajo de adaptación que debería disminuir con el paso del tiempo.

Ya he hecho una aplicación web. ¿Cómo la transformo en una aplicación instalable?

En la práctia, hay mucho más que necesita hacerse. Para más información, ver Desarrollo de aplicaciones para desarrolladores web.

¿Cuál es la diferencia entre una aplicación y un sitio web?

Una aplicación puede:

  • Ejecutarse fuera de un navegador normal
  • Ejecutarse si el dispositivo está conectado a internet o no
  • Ser iniciada de la misma forma en que una aplicación nativa se inicia

Como mínimo, una aplicación es un sitio web que puede "instalarse" en un dispositivo móvil o equipo para que parezca una aplicación nativa al usuario. Se puede distribuir ya sea en su propio sitio web o a través de una tienda de aplicaciones. Ambos puede hacerse usando estándares web abiertos como HTML5. Puede controlar el acceso a la aplicación web para que solamente accedan a ella los usuarios que pagan.

Un sitio que es una aplicación debería diseñarse para trabajar cuando el dispositivo no esté en internet, o al menos fallar sin generar problemas. Construir aplicaciones HTML5 Web runtime (a diferencia de construir sitios que siempre serán visitados desde internet en un navegador) requiere alguno agregados a la arquitectura para manejar estados como "a veces conectado," etc.

Construir sitios HTML5 (en vez de aplicaciones) tiende a hacer foco en implementar la estructura de la página usando la nueva semántica de HTML5.

Hay que notar que aplicaciones versus sitios HTML5 no es una proposición o la otra. Puede construir "aplicaciones" HTML5 que se ejecuten tanto dentro del navegador como afuera y puede diseñarlas para que provean una experiencia de usuario mejorada cuando el dispositivo del usuario está conectado a  Internet.

Ver también:

¿Deberia hacer un sitio web o una aplicacion?

Por supuesto, depende de sus metas. En ambos casos, puede entregar su sitio en plataformas multiples de dispositivos usando el "Web stack" estandar de tecnologias (HTML/CSS/JavaScript). Sin embargo, una ventaja de una aplicacion web es que se ve como una aplicacion nativa para los usuarios — pueden iniciarla desde la pantalla de inicio o el escritorio, sin tener que buscar un marcador o recordar una URL. Esto significa que es más probable que la usen y sigan haciéndolo que con un sitio web.

¿Cuál es la diferencia entre una aplicación y un complemento?

Los complementos (como los hechos con JetPack) son extensiones al navegador Firefox. Los complementos proveen muy poco componente de UI o ninguno y solamente extienden las capacidades/comportamiento del navegador en formas específicas. Por ejemplo, los complementos pueden proveer nuevos botones para la  UI (por ejemplo, agregando un botón cerca de la barra de direcciones para bloquear publicidades o nuevos ítems de menú para cambiar algunas opciones) o cambiar funciones internas (por ejemplo, mejorando la privacidad a través del procesamiento del tráfico de red del navegador).

Las aplicaciones (en teoría) se ejecutan en cualquier navegador moderno (tanto en escritorio como en dispositivos móviles) y no son específicas del navegador. Las aplicaciones están completas como las de oficina, productividad, procesamiento de imágenes, juegos, etc.

Finalmente, los complementos usualmente tienen efecto en todos los sitios web (por ejemplo, las publicidades pueden ser bloqueadas para todos los sitios y la privacidad de la red puede mejorarse al visitar todos los sitios), aunque algunos complementos están diseñados para interactuar con sitios/servicios web específicos. Las aplicaciones, por otro lado, no se combinan con otras aplicaciones en esta manera; se ejecutan solas, como cualquier sitio web regular.

Comparación

Complemento:

  • es específico del navegador
  • extiende las capacidades del navegador
  • es efectivo en todos los sitios web visitados
  • puede estar activo en el navegador con un númiero ilimitado de otros complementos

Aplicación de web abierta:

  • es neutral a la plataforma web (en teoría)
  • está atada a un caso de negocio o de uso específico
  • se ejecuta fuera de un navegador normal, es "un tipo de sitio web" en si misma
  • es solamente una aplicación web a la vez (obviamente)
  • podría instalar un enlace/ícono en los menúes/escritorio para iniciarse

¿Qué herramientas puedo usar para construir aplicaciones de web abierta?

Use las mismas herramientas que usaría para el diseño web en la plataforma de su preferencia. La mayor parte de los editores e IDEs "actuales" para desarrollo web soportan la sintaxis de HTML5.

¿Pueden mis aplicaciones acceder a APIs a nivel de dispositivo?

El Run Time Web tiene acceso a las APIs de dispositivo necesarias como Cámara y Vibración. El Mozilla Web API project está trabajando para expandir esta lista.

¿Cómo trabaja una aplicación de web abierta a través de las plataformas? ¿Factores de formato?

A diferencia de los lenguajes o runtimes propietarios, HTML, CSS y JavaScript han sido implementados en todos los dispositivos modernos populares donde los clientes quieren usar aplicaciones.

Hay, sin embargo, diferencias inevitables en el factor de formato entre dispositivos dispares. Una aplicación cuidadosamente diseñada y bien desarrollada puede implementar un juego de HTML y JavaScript para una aplicación y tener archivos CSS específicos para cada formato para adaptar el diseño y otros atributos estéticos según se desee.

Si desea proveer la mejor experiencia posible, puede también escribir código para detectar la presencia de  "optional devices" like a camera, and leverage them as appropriate for the application.

¿Cómo puede detectar mi aplicación que está en el Web runtime?

Una forma de hacer esto es usar la función navigator.mozApps.getSelf().

Una forma de detectar que una aplicación se está ejecutando en modo chromeless (sin barra de URL, etc.) es verificar la propiedad window.locationbar.visible. Si la aplicación está en el Web runtime, window.locationbar.visible será false. Por ejemplo, si la siguiente verificación devuelve true, la aplicación está en una ventana chromeless:

window.locationbar && !window.locationbar.visiblentas 

Etiquetas y colaboradores del documento

Colaboradores de esta página: MPoli
Última actualización por: MPoli,