ZMessenger

a marqué ce sujet comme résolu.

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

Logo de 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.

Liste des conversations privées ZMessenger Affichage d'une conversation privée avec les messages de tous les participants Ecran de connexion Ecran d'inscription Icone de l'application sur le bureau du téléphone Ajoutez des utilisateurs à une conversation

Enjoy!

+14 -0

Roh cette question " On fait comment pour devenir staff stp ?" :D

Arius

Ce n'est pas moi qui ai créé cette conversation. Le projet technique dispose de "fixtures" qui insère tout un tas de données. Cette conversation en fait partie.

.. Bon par contre, c'est moi qui a créé la fixture au début du projet alors c'est quand même moi qui ait créé cette conversation finalement ! ^^

Est-ce que tu pourrais me dire ce que ça implique côté serveur

SpaceFox

Ca dépend. La version 1 et 2 n'implique absolument rien (sauf l'API des membres, des MPs et des galeries pour la v2). Par contre, pour la version vX, cela implique beaucoup et ce n'est sans doute pas vraiment le lieu pour en parler mais j'en parlerais avec toi avec plaisir.

et affichage des MP « standard » ?

SpaceFox

Vous pouvez répéter la question ?

super boulot, ca fait un bail que j'y pensais ;)

Folaefolc

Ah oui ? Tu pensais faire une application Android aussi ou sur une autre plateforme ?

Je trouve que ça à l'air très intéressant, par contre dommage que je n'aie pas d'android.

WinXaito

Malheureusement, je ne peux rien faire à ça ! ^^

Par contre quand on revient sur l'interface web de Zds, on est pas un peu spam de message ZMessenger ?…

WinXaito

Ca dépend ce que tu appelles "être spammé". Tu auras des conversations préfixées par "[ZMessenger]" avec les messages de la conversation. Puis, si tu es vraiment très actif sur les conversations ZMessenger et que tu en as plein, j'ai presque envie de dire que je suis content. Pour moi, cela veut dire que tu apprécies l'application et pour toi, ça te rend service.

En tout cas, merci à tous pour vos messages. Ca motive à mener le projet à terme !

Toutes les améliorations que tu proposent ont l'air bien sympas. Notamment le système de localisation, qui pourrait alors permettre de voir si des personnes utilisent Zeste de Savoir se trouvent autour de nous.

Après, pour que des personnes extérieures à Zeste de Savoir utilisent l'application, il faudrait peut-être prévoir quelques spécificités (qui seraient également utiles pour les personnes de la communauté). N'ayant pas touché au développement mobile depuis longtemps, je ne pas vraiment ce qui fait/ou pas. Voici quelques vagues pistes :

  • La possibilité d'utiliser des blocs de codes, avec coloration syntaxique dans nos conversations. Jusqu'à aujourd'hui, je ne suis jamais tombé sur une application de messagerie le permettant : ça pourrait être un vrai plus ;

  • La possibilité d'utiliser des symboles/notations mathématiques ;

Finalement, c'est tout pour le moment. Comme je l'ai dit plus haut, je ne sais pas du tout si c'est faisable, mais ça pourrait être vraiment intéressant.

Banni

LudoBike, alliocha1805 : Je vais être franc mais ce n'est pas dans les choses prévues à court et moyen terme. Il faudrait vraiment une forte demande pour que je m'attaque à ce portage.

Andr0

Ce n'est pas plus mal que tu n'en fasse pas le portage : comme tu ne disposes pas de Mac et de l'outil officiel Xcode, cela donnerait possiblement un truc bâclé n'utilisant pas les technologies d'iOS et ses canons d'affichage standard. Un peu comme du Gimp ou du Inkscape sous OS X : ça peut servir en dépannage sous OS X, mais c'est pas du tout bien intégré (hélas). Mais même un logiciel commercial peut être parfaitement mal développé pour OS X : au lieu de regrouper les fontes de M\$ Office dans le dossier commun du Mac (/Library/Fonts), la suite en question en possède une copie identique au sein de chaque application (Word, Excel, Powerpoint, …). En les éliminant et en regroupant le tout à l'emplacement commun, 1,5 Go est économisé (cf : vu sur macplus . net ). Pour ma part, j'économise encore plus en n'ayant pas de M\$ Office sur mon Mac.

+1 -1

Il confirmera, mais il me semble bien que Andr0 développe sous Mac. Plus généralement, je ne comprends pas le reste de ton message.

Sinon, mon premier message était écrit avec ma casquette de DTC de ce site. Si je pige bien, il s'agit en gros d'une interface différente pour certains MP (taggués [ZMessenger]). Donc :

  1. Ces MP seront utilisables avec l'interface standard des MP
  2. Tout message se traduira par une réponse dans les MP

Mon inquiétude, c'est que le système actuel de MPs n'est pas prévu pour une utilisation de type « messagerie temps réel » avec une multitude de tout petits messages. L'idée est très bonne, elle plaît d'ailleurs beaucoup. Il ne faudrait pas que cet outil puisse mettre en danger la plate-forme du site par une surcharge de messages privés ou se fasse bannir à cause de cette surcharge.

PS : l'autre risque c'est que les MP normaux se retrouvent noyés dans les MP de chat. Ou pas, je ne vois pas bien ce que ça peut donner.

As-tu étudié cet impact ?

A ce moment la j'ai envie de dire, du moment qu'on aura une application pour android, une belle API pourquoi pas faire un ZMessenger version PC, ça pourrait devenir l'IRC "Officiel" :p

WinXaito

Pourquoi pas mais j'en vois beaucoup moins l'utilité. Si tu es sur un ordinateur de bureau, autant aller sur le Site Web. Un client natif n'a pas une grande valeur ajoutée. Par contre, les choses me semblent bien différentes à partir du moment où tu te trouves en mobilité, d'où mon projet. :)

Par contre, j'ai dans l'idée d'externaliser toute la synchronisation API et base de données pour en créer un SDK Java. A partir de là, ça devrait être ultra simple de créer ton application desktop en Java !

Toutes les améliorations que tu proposent ont l'air bien sympas. Notamment le système de localisation, qui pourrait alors permettre de voir si des personnes utilisent Zeste de Savoir se trouvent autour de nous.

Emeric

Attention, je ne veux pas tracker les membres. Je veux simplement permettre aux membres de partager leur localisation avec d'autres membres d'une conversation. Rien de plus. :)

Après, pour que des personnes extérieures à Zeste de Savoir utilisent l'application, il faudrait peut-être prévoir quelques spécificités (qui seraient également utiles pour les personnes de la communauté). N'ayant pas touché au développement mobile depuis longtemps, je ne pas vraiment ce qui fait/ou pas. Voici quelques vagues pistes :

Emeric

En fait, les pistes que tu énonces ne seront jamais intégrés dans le projet (limite du code inline et encore). Je veux vraiment faire de la messagerie et tu ne cites pas des blocs de code dans une messagerie. :)

Ce n'est pas plus mal que tu n'en fasse pas le portage : comme tu ne disposes pas de Mac et de l'outil officiel Xcode, cela donnerait possiblement un truc bâclé n'utilisant pas les technologies d'iOS et ses canons d'affichage standard. Un peu comme du Gimp ou du Inkscape sous OS X : ça peut servir en dépannage sous OS X, mais c'est pas du tout bien intégré (hélas).

quark67

Je suis équipé de postes de travail sous OS X. Ce n'est pas pour cette raison que je ne veux pas faire de portage. Ou si je devais en faire un, j'utiliserais des bibliothèques du type RoboVM ou j2objc pour développer le plus possible en Java et générer le code Objective-C correspondant.

Par contre, pour rebondir sur les alternatives à XCode, il existe une très bonne alternative : appcode. IDE développé par JetBrains, comme tous les autres IDE de cette société, il améliore considérablement le développement d'applications iOS. D'un point de vue personnel, je trouve qu'il est à des années lumières de XCode qui est vraiment un mauvais IDE.

Par contre, XCode et un appareil OS X reste indispensable pour publier l'application sur l'App Store (en payant tous les ans 99€ au passage).

Mais même un logiciel commercial peut être parfaitement mal développé pour OS X : au lieu de regrouper les fontes de M\$ Office dans le dossier commun du Mac (/Library/Fonts), la suite en question en possède une copie identique au sein de chaque application (Word, Excel, Powerpoint, …). En les éliminant et en regroupant le tout à l'emplacement commun, 1,5 Go est économisé (cf : vu sur macplus . net ). Pour ma part, j'économise encore plus en n'ayant pas de M\$ Office sur mon Mac.

quark67

Gné ? ^^

Il confirmera, mais il me semble bien que Andr0 développe sous Mac. Plus généralement, je ne comprends pas le reste de ton message.

Sinon, mon premier message était écrit avec ma casquette de DTC de ce site. Si je pige bien, il s'agit en gros d'une interface différente pour certains MP (taggués [ZMessenger]). Donc :

  1. Ces MP seront utilisables avec l'interface standard des MP
  2. Tout message se traduira par une réponse dans les MP

SpaceFox

C'est exactement ça.

PS : l'autre risque c'est que les MP normaux se retrouvent noyés dans les MP de chat. Ou pas, je ne vois pas bien ce que ça peut donner.

SpaceFox

Ca rejoint un peu la réponse que j'ai donné à WinXaito. Si vraiment tu utilises beaucoup l'application et que tu contacts beaucoup de monde différent avec, tes messages privés seront noyés. Mais ça veut dire aussi que mon application te rend un service et te plait. N'est-ce pas un mal pour un bien ? Puis, rien nous empêche de faire évoluer l'affichage des MPs du site en proposant de filtrer sur certains critères (notamment de cacher ceux "taggué" par [ZMessenger] ou de faire une recherche parmi ses MPs pour retrouver le bon).

Pour moi, c'est un faux problème parce que des solutions peuvent être envisagées.

As-tu étudié cet impact ?

SpaceFox

Je ne vois pas bien comment je pourrais étudier cet impact. Je ne dispose d'aucune information, soit parce que je n'y ai pas accès, soit parce qu'elle n'existe pas encore. Je ne connais pas le traffic du site (ou que grossièrement), ni le traffic actuel des messages privés, ni la popularité que pourrait avoir ce projet, etc.

Je m'étais quand même posé la question. C'est pourquoi j'ai tout un système de cache dans mon application pour pouvoir consulter l'application en mode hors connexion mais je m'étais jamais posé la question : "Est-ce que plein de petits messages dans les MPs pouvaient causer des problèmes de performance sur le serveur ?". Si tu as une idée de comment étudier la chose, je suis open. :)

Une appli mobile qui permet d'accéder aux forums et aux tutos depuis son téléphone, est-ce vraiment utile ?

On arrive aujourd'hui à avoir un très bon rendu sur son smartphone, on peut y consulter Zeste de Savoir sans soucis. Le seul point gênant est peut-être le clavier, mais application ou non, ça ne changera pas.

Emeric les discussions sur le manque d'ergonomie de la redaction de message sur Chrome sont formel : Un navigateur + Le site c'est trop.

Quand on souhaite écrire un message, et scroller dans ce dit textArea, c'est une misère, chrome remonte le post. Les touches sont petites, le ligne d'icone Markdown est inaccessible avec le clavier ouvert. D'ailleurs le Clavier Ouvert + URL + TextArea, ça fait très peu de place.

+4 -0

Vous savez, chacun est libre de faire usage de l'API comme il le souhaite. Finalement, ZMessenger n'est qu'une nouvelle utilisation des conversations privées avec une ergonomie un poil différent. Cela pourrait tout à fait être pertinent de développer une application pour consulter les tutoriels.

Par exemple, j'aimerais tellement pouvoir mettre du contenu en favoris (comme c'est déjà le cas pour les sujets du forum), pouvoir consulter du contenu hors ligne sans devoir télécharger un PDF souvent mal formaté ou me permettre de faire des recherches plus efficaces sur l'ensemble des tutoriels de ZdS. Sur la version 15.7, c'est un peu la cata la recherche (mais s'améliore avec la prochaine release).

Sinon, j'ai un peu avancé sur le projet. Voici le changelog :

Done :

  • La soumission, sur un serveur zds-site distant, d'une nouvelle conversation.

In progress :

  • Déconnexion de son compte à l'application.

Ajout dans TODO v1 :

  • Gestion des callbacks d'erreur.
  • Peaufinage des interfaces.

Globalement, je peux maintenant créer toutes mes conversations à partir de l'application et y contribuer. J'ai le minimum syndical pour cette application !

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte