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.
config.xml
miWidget.html
miWidget
Script
motor.js
Iconos
ejemplo.png
boo.png
locales
en
miWidget
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.
