Firefox OS, épisode 2
Suite à mon précédent article, TODO a rencontré un certain succès. J'ai donc décidé de le publier sur le Firefox Marketplace où vous le trouverez donc désormais.
J'ai étoffé l'application un petit peu et ajouté du texte d'aide ainsi que quelques corrections de bug.
Mais surtout, j'ai atteint un point où le développement fut suffisamment confortable pour que je migre enfin sur Mortar. Et je dois avouer que ça facilite grandement le développement.
Porter l'application sur Mortar n'a rien de difficile, il m'a suffit de changer quelques noms de dossiers et cela a suffit.
Néanmoins j'ai décidé de pousser plus avant en portant mon code sur require.js, sur lequel Mortar est basé et avec lequel je ne suis pas familier.
Require.js permet de faire des modules en javascript et donc d'empaqueter proprement ses fonctions (et d'éviter les collisions de nom). Son fonctionnement est somme toute simple et élégant, mais pas évident à comprendre.
Voici un petit exemple. Imaginons une fonction qui affiche un message comme suit:
function message(string) {
alert(string);
}
Cette fonction est donc globalement disponible. Pour la porter dans require.js, on réécrira le fichier comme suit:
define(function(require) {
this.message = function(string) {
alert(string);
};
});
Du coup pour l'utiliser, en admettant que le fichier soit nommé system.js, on fera comme suit:
define(function(require) {
var system = require('./system');
system.message("Ça marche");
});
C'était bien là la seule difficulté à utiliser Mortar. Bien entendu le système permet de faire bien davantage, mais le reste peut être ignoré au départ.