Widgets

De SEDIC-Wiki

Tabla de contenidos

Widgets, Aplicaciones, etc

Hay maneras distintas ofrecer software (o la capacidad de usarlo) a traves de la Web. Los voy a describir cómo

Aplicaciones Web
Paginas Web que permiten al usuario hacer algo. Un ejemplo clasico son los muchos servicios de correos, que permiten el usuario de leer y mandar correo electronico a traves de algun sitio Web. Tambien hay redes sociales que funcionan a traves de un sitio, servicios informativos, y muchisimos más.
Aplicaciones Nativas
Esas son programas escritos para un sistema operativo - sea un tipo de telefono, o un sistema cómo Windows o Linux. Se instala, cómo hicimos con todo software antes de la internet.
Widgets
Una tecnología que el W3C está normalizando, que permite escribir una aplicación Web, y despues instalarlo en un dispositivo cómo si fue una aplicación nativa.

Cómo hacer un Widget

Más o menos el proceso es de hacer un sitio Web, un fichero de configuración, coleccionar todo en un fichero Zip y publicarlo. Cada parte tiene algunas caracteristicas que se aplican especificamente a los widgets...

La especificación de Widget Packaging and Configuration (ingles) explica los detalles, pero abajo explico un poco las ideas generales.

El sitio Web

Hay que tener en cuenta que la pagina debe funcionar en el navegador. Entonces, en vez de programación PHP, acceso a bases de datos en un servidor, etc, hay que tener (o buscar y guardar) la información necesario en el Widget.

Se puede usar todo que hace un navegador, y HTML5 y las nuevas APIs de la Web cómo los para bases de datos, la geolocalización, "Web workers", etc, agregan muchas funcionalidades a las que están ya comunes. Esa evolución es importante para permitir los desarolladores de hacer un concurso real con las aplicaciones "nativas".

Nota que si quieres usar capcidades cómo acceso a un red interna, los plug-ins, etc, puede ser necesario de declararlo en el fichero de configuración...

El fichero de configuración

El fichero basico es muy sencillo:

<widget xmlns="http://www.w3.org/ns/widgets" />

Más comun es tener información del Widget (el autor, derechos del autor, un nombre y descripción de la Widget, etc) y información de lo que pide el Widget del sistema operativo (recursos que quiere usar, versión del widget para poder actualizarlo, etc). Entonces un fichero más completo puede ser

<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns       = "http://www.w3.org/ns/widgets"
        id          = "http://example.org/MiPrimer"
        version     = "2.0 Beta"
        height      = "200"
        width       = "200"
        viewmodes   = "widget">
  <name short="Example 2.0">
    Mi Primer Widget!
  </name>

  <feature name="http://example.com/camera">
    <param name="autofocus" value="true"/>
  </feature>

  <preference name     = "apikey"
              value    = "ea31ad3a23fd2f"
              readonly = "true" />

  <description>
    Mi primer widget, hecho cómo ejemplo.
  </description>

  <author href  = "http://chaals.example.org/"
          email = "chaals@example.org">Chaals</author>
  <icon src="Iconos/ejemplo.png"/>
  <icon src="Iconos/boo.png"/>

  <content src="miWidget.html"/>
</widget>

Cómo se puede ver, hay muchas possibilidades para un widget - que permiten configurar muchos aspectos incluso los iconos usados para el widget en una pantalla, el tamaño por defecto, etc. El fichero debe llamarse config.xml, y estar al primer nivel de la colección Zip...

La colección en fichero Zip

Más o menos, solo hay que poner todos los recursos en un fichero Zip, y renomnbrarlo dandole una extension de nombre ".wgt", cómo "miprimer.wgt"

Hay unas restricciones de dónde deben estar los ficheros, y ademas es possible hacer versiones localizadas poniendo ficheros en una estructura dada.

Widget: Miprimer

  Configuración:  config.xml
  Documento:  miWidget.html
  Carpeta:  miWidget
     Carpeta:  Script
        Imagen:  motor.js
     Carpeta:  Iconos
        Imagen:  ejemplo.png
        Imagen:  boo.png
  Carpeta:  locales
     Carpeta:  en
        Carpeta:  miWidget
           Documento:  miWidget.html

Publicar

Lo más fácil es de poner el fichero en un servidor Web. Pero hay que configurarlo para que tiene el tipo correcto: application/widget

En muchos servidores hay que jugar con la configuración - normalmente es bastante sencillo, una linea de código o una opción associando la extensión de nombre "wgt" con el tipo MIME "application/widget".

Hay tambien la possibilidad de ponerlo en un servicio como widgets.opera.com. Las ventajas son que es fácil para la gente a encontrarlo allí, hacen una revisión del código, y configuran ellos mismos el servidor etc. Pero no es imprescindible pasarlo a terceros - una de las ventajas de un widget. Igualmente se podría ponerlo en un servidor Opera Unite, o cualquier otro a lo cual tiene acceso.

Herramientas personales