1 XUL: Desarrollando con el poder de la plataforma MozillaMariano Cuenze Mozilla Argentina MozPad lugFI
2 ? ? ? El problema ? ? ? ? ? EL PROBLEMAEscribir una aplicación “Moderna” Con un diseño destacado Que pudiera soportar themes – skins Que esté disponible en varios idiomas Multi-plataforma Que esto sea Facil de Mantener Hoy en dia no basta con un aplicativo que haga una tarea Se necesita un aplicativo que tenga un diseño especial, un layout pensado para el usuario. Seria ideal permitir que el usuario elija, para el layout dado, un skin o theme deseado Más aún que la aplicación esté en mucho idiomas Y tarde o temprano, que pueda ser portado a otras plataformas (mac- linux,,,) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? EL PROBLEMA
3 Cómo se suele hacer... COMPLEJIDAD EXTRASe escribe el código de la aplicación Se escribe el código que maneje la parte visual (layout + themes) Se escribe código que permita idiomas Se Re-escribe código para portar la aplicación (para cada nueva plataforma). Una empresa, o individuo desea preocuparse en el codigo que hace su producto... pero debe: escribir muchisimo codigo para la parte visual, o usar un framework complejo que no siempre se integra bien a su aplicación Traducir e integrar en los fuentes la traduccion Reescribir y volver portable todo el sistema a muchas plataformas (no solo su codigo original) COMPLEJIDAD EXTRA
4 No es un problema nuevo... Es algo que vemos repetirse muchoEs algo que deseamos tengan todos los programas Que bueno sería poder contar con algo que lo resuelva por uno.... Y lo tenenos....
5 Mozilla – La escencia Una de las más grandes organizaciones open source del mundo Soporta todas las plataformas (linux, mac, windows) Uno de los primeros en usar tecnologias avanzadas Años de refinamiento del código base Productos reales de exelencia lo confirman firefox thunderbird camino songbird sunbird ... Triple licencia: GPL-LGPL-MPL Comentarios sobre netscape, la complejidad de hacer un browser mostrar un sitio web vivo es 'lo mismo' que una aplicación matar los dos pajaros de un tiro
6 Xul – el esqueleto Basado en xml Sencillo e intuitivoDefine la interfaz lógica Basado en cajas (boxes) Se puede mezclar con xHtml Es dinámico (agregar-eliminar-modificar nodos xul en runtime edita la interfaz)
7 JS – los músculos Lenguaje sencillo Ampliamente usado y difundidoRealmente Potente Es el código asociado a xul, le da funcionalidad Pese a lo muy usado -y muy mal usado a veces- js es un gran lenguaje, sencillo, potente.... Las páginas escritas con xul se acompañan de codigo js que ejecute codigo, que realmente haga cosas, que le de vida y movimiento a la interfaz.
8 CSS – más que piel Estandar w3c Usado en todo Internet (www)Permite editar detalles de estilo Permite modificar semántica a un elemento xul Permite redefinir toda la estética de la aplicación (theme-skin)
9 Dtd – habla! Dtd es muy potenteSe usa una parte de dtd (para definir entidades) Esta parte maneja todos los textos que posee el aplicativo Dtd es para definir estructura y sintaxis de documentos sgml-xml completos Pero lo usamos solo para definir entidades que van a cambiar de contenido al cambiar de idioma
10 Xbl y Overlays – Comienza la magiaExtienden xul Xbl Permiten crear nuevos tags parecido a “clases en xul” incluso con codigo asociados Overlays permite combinar xul de diferentes archivos para generar un Gran xul final
11 XpCom – la magia se palpaComunicación de módulos escritos en Js C++ Python próximamente java y ruby...
12 La magia nunca acaba... Soporte de Svg Soporte de MathMLSoporte de Canvas (dibujo 2d y proximamente 3d) Cada ves soportando más y nuevos estándares w3c
13 XUL: Desarrollando con el poder de la plataforma MozillaTraductores felices con dtd's Diseñadores felices con css Programadores felices con js, c++, python... Usuarios felices Mismos fuentes, misma aplicación Todas las plataformas Todos los idiomas MOZILLA ES UN MUNDO FELIZ
14 http://weblogs. mozillazineschrep # Graphics: Vlad and Pav have spent the better part of the last two years integrating Cairo and exposing it through Thebes - effectively re-writing our core graphics architecture. High quality scaling for all! # Layout: David Baron has spent the better part of their last 18 months and implementing the reflow branch making future version of Firefox, Camino, Seamonkey, and any other application that views web content built on Mozilla support the nasty edges of the CSS 2.1 specs... # Content: Lots of awesome work on SVG, Cairo gets faster each release, XML content sink now incremental ... # JavaScript: Brendan, Igor, Bkap and others spent much of their time last year implementing JS 1.7. Iterators and Generators anyone? They and others are off now nailing down the standard for JS2/ECMAScriptV4 - not to mention the upcoming integration of Tamarin giving the entire platform a JITing VM to boot. # XUL: Spinbuttons? Date Pickers? Neil's been pounding away at enhancing XUL for all of us. # NSIS installers - specifically chosen because the toolchain was FOSS so all Mozilla projects could easily use. # Toolkit: MozStorage and SQLLight anyone? Extension Manager improvements, Integration of Brakepad client and server for FOSS crash reporting to everyone on the Mozilla Platform, much more...
15 XUL: Desarrollando con el poder de la plataforma MozillaMariano Cuenze Mozilla Argentina MozPad lugFI