Salut tout le monde,
Pour ceux qui ne me connaissent pas, je suis Andr0. Comme vous tous, j'aime Zeste de Savoir pour plein de raisons : la possibilité de partager mes connaissances, consulter du contenu de qualité, l'ambiance qui règne au sein des forums et humainement à travers l'association ou les JZdS. Je suis aussi un contributeur régulier de la plateforme et j'ai largement contribué au développement de l'API de ZdS. API qui est utilisé dans le projet que je vous présente aujourd'hui, ZMessenger !
En savoir plus sur ZMessenger
ZMessenger permet de converser avec la communauté de Zeste de Savoir. Cette application Android exploite et détourne les APIs de ZdS (à savoir l'API d'authentification, des membres et des messages privées) pour en faire une messagerie du type Hangouts, Skype, etc.
Cela veut dire qu'il ne s'agit pas d'une interface supplémentaire à vos messages privées. D'ailleurs, l'application n'interprète pas le markdown de vos messages, elle ne lit même pas toutes vos conversations privées. Elle se contente de récupérer les conversations ZMessenger (grâce à un tag dans le titre du message privé) et est destinée à des messages courts à échanger avec la communauté.
Quoi, c'est open source ?
Sachez aussi que le projet est open-source, sous licence Apache. Vous pouvez consulter les sources sur son projet GitHub, installer votre propre instance du projet à partir de vos clés d'API sur vos appareils ou vous en inspirez pour vos propres projets. La seule limite est votre imagination !
Vous aussi, venez tester l'application !
Aujourd'hui, le projet est déployé sur le Google Play Store dans sa version alpha. Cela veut dire que si vous voulez disposer du déploiement officiel de l'application, il vous suffit de me fournir par MP votre adresse e-mail rattaché à un compte Google Play pour que je vous rajoute dans le programme de test. Vous pourrez télécharger l'application directement depuis le Google Play Store et bénéficier des mises à jour automatiquement lorsqu'il y a une nouvelle version.
Avancement du projet
Cette section est vouée à changer au fur et à mesure que le projet avance.
Done v0.2
- Améliore l'accessibilité de l'écran qui liste les conversations.
- Améliore l'accessibilité de l'écran qui liste les messages d'une conversation.
- Améliore l'accessibilité de l'écran de recherche d'un membre.
In Progress
TODO v0.3
- Ajouter un membre à une conversation.
- Spécifier comme nom de conversation "[ZMessenger] Participant 1, Participant 2" et permettre de le changer.
- Utiliser l'ETag pour soulager le serveur dès que possible.
- La sauvegarde en local des nouveaux messages et conversations en attente d'être synchronisé avec le serveur.
- Adapter l'interface au format tablette.
- Supporter plusieurs langues.
- Supprimer une ou plusieurs conversation.
- Vérifier toutes les X minutes si un nouveau message est présent.
TODO v1
- Générer la partie SDK avec des outils comme Spoon.
- Exploiter l'API des galeries pour faciliter le partage des images entre les membres.
- Exploiter l'API des MPs non lus pour indiquer les nouveaux messages sur la liste des conversations privées.
- Partager une position GPS avec une ouverture vers une application de Maps du type Google Maps.
- Supporter les smileys par défaut de zds.
- Rajouter des paramètres pour permettre à n'importe qui d'étendre les possibilités de la messagerie. Par exemple, retirer le filtrer sur les conversations ZMessenger à toutes les conversations de votre profil.
TODO vX
- Extraire la partie SDK dans un projet différent et l'inclure comme dépendance dans ZMessenger.
- Être compatible avec un serveur de push pour propulser l'application au rang d'une réelle application de messagerie.
Backup Done
- L'authentification auprès d'un serveur zds-site distant.
- La récupération des conversations privées auprès d'un serveur zds-site distant.
- La récupération des messages d'une conversation privée donnée auprès d'un serveur zds-site distant.
- La soumission, sur un serveur zds-site distant, d'un nouveau message dans une conversation.
- La recherche dans la liste des membres d'un serveur zds-site distant et dans le système.
- La consultation de toutes ces données dans un mode hors connexion.
- La soumission, sur un serveur zds-site distant, d'une nouvelle conversation.
- Déconnexion de son compte à l'application.
- La création d'un nouveau compte zds.
- Actualiser sa liste de conversations ou sa liste de messages.
- Gestion des callbacks d'erreur.
- Peaufinage des interfaces.
- Préparer l'architecture du projet pour sa mise en alpha.
- Préparer le projet pour une ouverture du code.
- [BUG] Il arrive que la conversation de la date en format "humain" annonce une date dans le futur (marqué "Demain" pour le bug rapporté).
- [BUG] Sur certains smartphones, l'écran de connexion n'affiche pas le bouton pour se connecter.
- Gérer le cas quand un utilisateur tente de faire une conversation avec lui-même.
- Gérer la pagination des conversations et des messages.
- Rajouter un placeholder sur les champs de recherche et de nouveaux messages.
- [BUG] Sur certains smartphones, il y a un bug d'affichage dans la liste des membres sélectionnée pour créer une conversation.
- Envoyer au serveur le nouveau message et l'afficher directement dans la liste des messages.
- Retour visuel quand une liste se rafraichit.
Objectifs
L'objectif principal est de faciliter la communication entre les membres de Zeste de Savoir. De mon expérience personnelle avec les JZdS ou l'association, nous avons besoin de services tiers pour communiquer (comme Hangouts ou des listes de diffusion). Nous pourrions utiliser la messagerie du site mais elle n'est pas adaptée pour tous les cas d'usage. Par exemple, lorsque je me rends à un JZdS, on communique avec moi par Hangouts pour savoir quand j'arrive. Ouvrir son navigateur, se rendre dans ses messages privées et consulter un message (s'il y en a un) est un effort trop important pour cet usage.
Un second objectif important est la promotion de la plateforme zds en dehors du site. Cette application de messagerie a pour vocation d'être publiée sur le Google Play Store et d'être ouverte à tout le monde. C'est-à-dire que n'importe qui pourrait utiliser un compte zds pour communiquer à travers cette messagerie ou d'être assez intéressé pour se rendre sur le site et découvrir notre coeur de métier, le partage de connaissance.
Un troisième objectif, c'est l'enrichissement personnel qu'apporte de mener à bien un tel projet qui pourrait être utilisé par un petit paquet de monde au sein de la communauté et depuis l'extérieur. J'en profite pour mentionner que le projet sera en open-source sur mon GitHub et ne comportera aucune publicité dans l'application.
Captures
Voici quelques captures de l'application actuelle. Elle suit les bonnes pratiques du Material Design avec les couleurs de la plateforme zds-site. J'espère que vous apprécierez ces premières captures, que vous suivrez mon projet et que je pourrais compter sur vous lorsque je lancerais l'alpha de cette application de messagerie. Alpha qui dépendra beaucoup plus de la publication de l'API des MPs sur la prod que de mon travail sur le projet.
Enjoy!