Développement d'applications avec le framework Mozilla.
Pourquoi parle-t-on de "framework" ?
Les développeurs Mozilla développent plusieurs produits
Un framework leur permet avant tout:
- de mutualiser leur développement entre les différentes applications
- de modulariser et simplifier le code
- avoir un moteur d'affichage (Gecko) pour le web et pour les interfaces utilisateurs
Il en découle:
- l'extensibilité de leurs produits (extensions)
- une simplification de la création de nouveaux produits
- l'accessibilité du code (pas besoin de s'y connaître en C++ pour participer à Firefox)
ce framework exploite, en autres, des technologies standardisées
- XHTML, XSLT, MATHML, PNG..
- ECMAScript
- CSS
- RDF
- SVG
- et bientôt XBL..
... mais il est avant tout connu pour son langage principal: le XUL
Le langage XUL
- XML-based User Interface Language
- Un langage pour décrire des interfaces graphiques
- Des balises spécialisées: tree, browser, editor, popup ...
- Stylisé par du CSS
- Animé par du JavaScript
- Widgets/composants d'interface extensibles grâce à XBL
- Interface modifiable par des extensions grâce aux "overlays"
L'interface utilisateur de Firefox:
- codée en XUL
- un thème : du CSS
- elle est animée (interaction utlisateur) via du Javascript
Un exemple très concret: coder un navigateur en 15 lignes
Trois "formes" d'exploitation de ce framework
Page web (XUL distant)
Extension
Application
PAGE WEB :
Des applications web riches
- Les webmails
- Interfaces d'administration
- Gestion documentaire (CMS)
- ...
On utilise aujourd'hui un langage (html) pour faire des applications alors
qu'il a été conçu pour afficher des documents.
XUL: Tout simplement créé pour !
- Des composants graphiques riches en natif (moins de javascript à charger)
- Système de template/RDF pour générer du XUL sans javascript
- Ajax possible
Allier la simplicité du web avec l'ergonomie et la richesse
d'une vraie application Desktop
EXTENSIONS :
Enrichir Firefox, Thunderbird ou tout autre applications XUL
Ajout d'elements d'interface via les overlays
Offre d'avantages de fonctionnalités qu'une page XUL
- Accés à des objets bien plus évolués (système de fichier, stream,
création de protocoles, sockets, zip, ...)
- Drag and drop inter-applications
- interaction avec l'application hôte :
- Firefox : bookmarks, préférences
- Thunderbird : Mails, carnet d'adresses
- On peut rajouter des composants métiers ou techniques : XPCOM, plugins...
Mettre en valeur vos applications internet
On conserve la puissance d'une application Web (SOAP, XML/RPC, css, ...)
CRÉER son application
Avoir tout les avantages des extensions, plus :
Utiliser toutes les possibilités de Gecko sans embarquer l'interface de Firefox
Utiliser éventuellement une version modifiée/personnalisée de Gecko
Le lanceur d'application XUL : XulRunner
Et si j'ai des besoins auquels Gecko ne répond pas ?
Comme :
- Manipuler correctement les contenus multimedia
- Communiquer avec un périphérique particulier
- Se connecter à des applications tiers
- Intégrer des bibliothèques tierces
XpCom est là ! (et les plugins aussi)
- Système de composants "à la COM" (MS)
- Composants chargeables dynamiquement (pas de liaison explicite binaire)
- Réalisable en C++, Javascript, Python..
Utilisation dans les fichiers XUL de Javascript, pour la glue
(évènements, DOM ...), mais pas pour des processus métiers
Avec les composants XpCom, on peut rajouter des "compétences" à Mozilla !
Avantages/inconvénients de Mozilla
Les avantages :
- Localisation & Thèmes
- Déploiement & Mise à jour
- Modularité & extensibilité
Les défauts :
- Nécessite Firefox ou équivalent
- Intégration d'application tiers pauvre
- Une courbe d'apprentissage importante
La maturité ?
- Pas absolument parfaite...
- Mais pas critique.
Conclusions:
faire des applis web plus ergo/riches
faire des applis desktop plus rapidement
concerne tous types de développeurs
Ressources
- xulfr.org
- www.xulplanet.com
- devlopper.mozilla.org
- mozdev.org
END !
Questions ?
Place à du concret