Après plus de 6 mois de développement, la nouvelle version de Movim est enfin là. Je pense qu'une petite rétrospective sur ce qui a été fait peut être intéressante :)

Le projet Movim atteint maintenant un bon niveau de maturité, ce qui tend à me faire croire que la version 0.7 peut être présentée comme quelque chose d'utilisable par le grand public (peut-être pas Mme Michu, mais presque). L'actualité pourrait également nous être favorable puisque nous pouvons nous placer comme une excellente solution aux problèmes de surveillance et de tentative de contrôle des données personnelles par les différents gouvernements américain et européens.

Voilà donc plusieurs mois que nous travaillons d'arrache pied sur la futur version 0.7 du projet Movim. J'ai en effet été rejoint par ma copine qui m'a aidé à développer la fonctionnalité Groupes ainsi que 2/3 petits trucs ici et là (grâce à un projet d'étude qu'on a fait ensemble au sein de notre école d'ingénieur).

Voici donc une petite liste (non exhaustive) des principales fonctionnalités qui vous attendent pour cette release :)

  • Les Groupes sont certainement la plus importante fonctionnalité de cette version. Movim est le premier client au monde qui exploite réellement PubSub au travers de son interface. Nous nous sommes en effet basés sur cette XEP (une XEP, je le rappelle, est une extension XMPP) afin de développer les Groupes qui permettent, toujours de façon standardisée et décentralisée, de créer des "flux" d'actualités autour de sujets, à la manière des forums, mais via le protocole XMPP. Vous avez ainsi la possibilité de choisir un serveur, y créer un sujet de discussion, inviter vos amis à participer, publier des posts et bien sûr de vous abonner aux autres sujets pour suivre et participer aux échanges.
  • La page "Média" fait son entrée. Elle permet d'uploader vos photos au sein d'un petit espace de stockage (20Mo par défaut mais modifiable par l'administrateur). Pour le moment, il n'y a pas encore de lien entre cette page et la page de publication (qui pourrait permettre d'insérer une photo uploadée dans un article, par exemple) mais cette fonctionnalité est prévue pour la 0.8.
  • La page d'inscription a été entièrement revue. Une mini-carte vous permet maintenant de visualiser la position sur la planète des différents serveurs que nous conseillons. Movim supporte également l'inscription sur un plus grand nombre de types de serveurs différents.
  • La bibliothèque d'affichage des cartes OpenStreetMap a été remplacée par Leaflet, plus légère et plus simple à utiliser.
  • Movim supporte un nombre toujours plus important de XEP, lui permettant dorénavant de se déclarer proprement sur le réseau XMPP et de mieux interpréter les actions qu'il reçoit.
  • Vous avez maintenant la possibilité d'externaliser le chat dans une fenêtre pop-up. C'est un petit défi technique en soit puisqu'ici il a fallu garder la connexion ouverte même en cas de rechargement de la fenêtre principale (résolu par une petite bidouille en javascript).
  • De grosses optimisations ont été faites dans le code source (notamment grâce à l'utilisation d'un profiler me permettant de voir clairement les bouts de code ralentissant l'exécution). J'ai ainsi remanié certaines parties faisant gagner plus de 50% de temps de calcul à Movim. Les pages se chargent donc plus vite (c'est pas forcément perceptible mais sur des petits serveurs avec une forte charge ça sera utile).
  • Vous avez maintenant la possibilité de supprimer certains éléments stockés dans la base de données vous concernant dans le panneau de configuration (messages, contacts, posts).
  • L'interface a été profondément repensée et est maintenant capable de s'afficher sur la quasi-totalité des appareils et résolutions (via l'utilisation du responsive design).
  • et énormément d'autres petites choses que vous découvrirez vous même sur l'un des nombreux pods mis à disposition.

Pour les hackerz

Pour les développeurs, de très importantes modifications on été faites dans le framework du projet, certaines d'entre-elles sont inspirées de certains concepts que j'ai vu sur Ruby On Rails.

  • L'organisation des fichiers sources du projet est maintenant beaucoup plus logique avec une séparation claire entre le "cœur" et l'application Movim l'exploitant.
  • Un moteur de template, RainTPL a été ajouté au projet ce qui m'a permis de séparer clairement certains pans de codes qui étaient précédemment étroitement liés. Le code des widgets devient donc beaucoup plus clair et facile à débugger.
  • L'API faisant la liaison entre le navigateur et le serveur web a été réécrite et dialogue maintenant en JSON (XML auparavant).

Le projet

Et, plus globalement, de très (très !) nombreux bugs on été corrigés. C'est pas moins de 11 Alphas et 2 Betas qui ont été diffusées sur Internet afin de tester au maximum cette version. Les flux Atom générés par Movim sont maintenant valides, suivant la norme Atom officielle.

Nous avons également migré notre serveur XMPP vers le projet Metronome, fork du projet Prosody avec un super support de Pubsub et des performances impressionnantes !

Le site officiel a été mis à jour et un nouveau tutoriel d'installation a été écrit sur le Wiki du projet.

Je remercie également toutes les personnes qui m'ont aidé à débugger l'application, encore plus ceux qui ont proposé des correctifs au code. Je remercie également l'ensemble des traducteurs pour leur travail formidable, Vincent pour son investissement dans le projet (conférences, communication) et ma copine pour son aide sur la fonctionnalité Groupes et quelques autres features :).

That's all folk !