Projet ambitieux: CocoaMSN

CouhoulinnCouhoulinn Membre
22:40 modifié dans Vos applications #1
faire un client pour MSN Messenger en Cocoa-ObjectiveC

Je suis en train de faire l'analyse des protocoles de MSN et d'apprendre Cocoa et Objective-C.

Il existe Adium qui y ressemble mais c'est un logiciel multi-réseaux (AIM, MSN, Yahoo, ...), je ne voudrais faire que le réseau MSN. :)

Pour l'instant je finis mon année, puis je m'y mets sérieusement!

Réponses

  • muqaddarmuqaddar Administrateur
    22:40 modifié #2
    Oui, c'est ambitieux car il doit falloir de bonnes notions cocoa-réseaux....

    Ce qui serait bien, c'est une gestion des webcam isight avec les msn sous PC... mais là c'est encore un autre niveau à mon avis...
  • CouhoulinnCouhoulinn Membre
    22:40 modifié #3
    En effet, c'est d'un autre niveau: c'est de l'élaboration de drivers ça...

    Sous Mac OS X et Linux, ça peut encore se faire... mais sous Windows...  :-[
  • molgowmolgow Membre
    22:40 modifié #4
    Intéressant. J'ai depuis quelques temps la même idée que toi. Sauf que je pense plutôt réaliser ce client en Java, car il existe déjà des librairires toutes faites pour se connecter à un réseau MSN en Java. (ça doit aussi exister pour le C mais je maà“trise moins).

    J'espère pouvoir me mettre à se projet cet été lorsque j'aurais un peu de temps.
  • ellisellis Membre
    22:40 modifié #5
    Bonjour à vous tous,

    Venant du monde Open Source, je ne peux que vous conseiller de participer à d'autres
    projets OpenSource. Dans de nombreux cas, la création d'un produit déja existant (Adium
    et aMSN) :
    - il est dommage d'éparpiller tant d'energies à droite et à gauche
    - c'est très formateur de rejoindre un groupe
    - il est difficile de développer un logiciel si l'on n'a pas d'utilisateurs;
    car la concurrence est très rude
    - il est plus valorisant de participer à un projet connu que d'être le créateur
    d'un produit inconnu

    Il est possible de créer un nouveau projet si:
    - les développeurs des projets équivalents sont bloqués... Et malheureusement
    ca arrive
    - on veut développer un produit commercial


    Les projets équivalents :
    - http://amsn.sourceforge.net
    - http://www.adiumx.com/

    Ellis (ellis at redfight dot com)
    http://osx.tynsoe.org
  • 22:40 modifié #6
    Je rejoins l'avis de Ellis. Il existe déjà des produits opensource qui ont déjà une certaine notoriété, et pour lesquels ils manquent des fonctions. Plutôt que de chercher à tout refaire de zéro, pourquoi ne pas chercher à améliorer par exemple les fonctions relatives à MSN dans des projets existants, comme Adium ou Fire?
  • ellisellis Membre
    22:40 modifié #7
    Alors là, je suis surpris : je ne connaissais pas du tout Fire. Je vais regarder ce produit.
    J'ai commencé à faire une liste des produits indispensables :
    http://osx.tynsoe.org/osx/os_x/les_indispensables

    Sincérement, quand j'ai débuté sur Mac OS X, j'ai pas mal galéré à trouver
    des applis de qualité. Les sites comme versiontracker sont pour moi
    beaucoup trop exhaustifs.
  • molgowmolgow Membre
    22:40 modifié #8
    Je ne suis pas tout à faire d'accord avec ceux qui disent qu'il vaut mieux s'intégrer dans un projet existant. Dans certains cas, c'est très probablement la chose à faire. Mais dans ce cas, on parle d'un client MSN simple et qui ne se connecte qu'à MSN. A part le client de Microsoft, à ma connaissance ça n'existe pas. Il existe de nombreux clients multi-protocole mais pour les gens (comme moi) qui n'aiment pas du tout les clients multiprotocoles, il n'y a rien.
    Ensuite, même si c'était refaire quelque chose de déjà existant, je ne vois pas en quoi ça serait une mauvaise chose. Plus il y a de logiciels différents, plus la concurrence incite les développeurs à améliorer leurs logiciels.

    Ensuite, pour ce qui me concerne, si j'ai envie de me lancer "seul" (au moins dans un premier temps) dans un projet, c'est aussi parce que j'ai envie d'exercer les techniques de génie logiciel que j'apprends en cours.
  • mai 2004 modifié #9
    dans 1085678679:

    Ensuite, même si c'était refaire quelque chose de déjà existant, je ne vois pas en quoi ça serait une mauvaise chose. Plus il y a de logiciels différents, plus la concurrence incite les développeurs à améliorer leurs logiciels.

    Ce que tu expliques est vrai pour les logiciels commerciaux, mais les logiciels open-source échappent à cette règle: ce qui compte pour un développeur open-source est de réaliser son projet, peu importe ce que la concurrence fait, et pas de gagner sa vie avec, et si on utilise son programme, c'est une motivation pour lui. Si des développeurs se rajoutent c'est encore mieux. Pour ce qui est de l'OpenSource, je pense au contraire que trop de diversité est néfaste, puisqu'on éparpille les efforts, déjà peu nombreux. Pour te donner un exemple de bonne marche à suivre, Adium et Proteus utilisent la même base pour la gestion des protocoles, seule l'interface différencie les 2 produits.
    Ou bien alors il faut faire quelque chose de vraiment innovant, mais dans le cas des logiciels de messagerie instantannée, j'ai du mal à voir où il pourrait y avoir de révolution dans les fondements.

    Quand aux reproches que tu fais aux multiclients, je ne les comprend pas des masses: qu'est-ce qui t'empêche de ne les utiliser qu'avec un seul protocole? Leur configuration est généralement aussi simple que celle d'un produit mono-client, et leur utilisation aussi. Et que vaut-il mieux: Adium qui n'est pas utilisé à fond ou un nouveau client qui ne sait faire que les bases parce qu'il est reconstruit à partir de rien?
  • molgowmolgow Membre
    22:40 modifié #10
    Je persiste que la concurrence a du bon même dans l'open-source gratuit. Bien s?r la récompense pour le développeur n'est pas de vendre plus de logiciel mais de se dire que son logiciel sera utilisé par plus de personne que celui de l'autre. Ca tient probablement de ma personne, mais j'aime bien la concurrence, j'aime bien me dire que tout seul je peux essayer de faire mieux que les autres.

    Pour ce qui est de la base gérant le protocole réseau. De ce côté-là, je suis entièrement d'accord que ça ne sert à rien de refaire qqch de déjà fait!

    Et pour les logiciels multi-protocoles, j'en ai essayé plusieurs et je n'ai jamais réussi à m'y faire. J'aime bien avoir mon petit client ICQ, mon petit client MSN et mon petit client iChat séparé pour chatter sur les 3. Je sais ça peut paraà“tre un peu étrange, mais je préfère ça.
  • ellisellis Membre
    22:40 modifié #11
    Je comprends entierèment ta démarche intellectuelle. Mais loin de vouloir te décourager,
    de nombreuses personnes se lancent dans des projets sans en connaitre l'étendue et n'aboutisse
    jamais. Pour bien connaitre le monde de l'Open Source, il est triste de voir le nombre les
    cimetières de logiciels comme freshmeat. Cela grouille de logiciels abandonnés et inutilisables.

    Je préfère donc conseiller de rejoindre des projets existants car l'aventure qui semble moins excitante
    (c'est pas ton projet) peut rapidement devenir passionnante. Il vaut mieux être codeur d'un projet
    utilisé que codeur d'un projet utilisé par toi tout seul... Mais si jamais tu t'en sens capable et je sais
    qu'il existe des codeurs de genie, lance toi...

    Ellis
    Ps : il est toujours bon d'évaluer la concurrence même en OpenSource. Regarde notamment la taille
    de projet comme Adium ou aMSN...
  • CouhoulinnCouhoulinn Membre
    22:40 modifié #12
    aMSN est en Tcl, et c'est pas l'idéal sur mac. Pour ce qui est de Adium, il a l'air pas mal mais il est multi-plateforme et se base surtout sur la librairie gaim. je n'aime pas l'idée d'être basé sur le travail d'autres, surtout s'il n'est pas terminé (en effet, les protocoles d'audio et de video ne sont pas encore là dans cette librairie)
  • fullstackfullstack Membre
    22:40 modifié #13
    Tout a fait d'accord.
    aMSN en tcl/tk c trop lent, pas très beau, et lourd.
    Le seul client msn-only utilisable sur mac c'est le client officiel microsoft, qui est certe très bon mais infesté de pub, et de plus certaines fonctionnalité du protocole MSNP10 du dernier msn pc ne sont pas implementé, le protocole étant encore MSNP8 sur nos mac.
    Les connaissances réseau nécessaires sont toute a fait banales, le protocole MSN étant un tres simple (entièrement texte) et uniquement tcp.
    Aucune difficulté a mener un tel projet a mon avis si ce n'est la longueur et la très bonne stabilité/ergonomié qu'il faudra atteindre pour rivaliser avec le client microsoft.

    Par contre pour ce qui est de la gestion de la video et conversation audio, integrer ohPhone X me parait une solution viable.

    Ce logiciel cocoaMSN me manque bcp dans mon dossier application, et si un tel projet venait a se mettre en place, nul doute que je serai de la partie ainsi que deux trois potes qui comme moi en ont marre des pubs du client de crosoft ;-)
  • molgowmolgow Membre
    22:40 modifié #14
    Est-ce que quelqu'un sait si une libraire ou qqch existe déjà  pour la communication vidéo ou audio via MSN ?! (pour la base "texte" il en existe pleins..)
    Car intégrer ces fonctions là  dans un client Mac feraient un malheur! C'est véritablement le grand manque du client Microsoft actuel.
  • fullstackfullstack Membre
    22:40 modifié #15
    comme je l'ia dit plus haut, il se'rait facile d'inegrer ophoneX, un programme open source entièrement cocoa permettant de dialoguer avec les pc (netmeeting, cad ce qui est intégré dans leur msn pc)
    Il n'y auarai donc quasiment rien à  prpgrammé de ce coté la
  • nucleusnucleus Membre
    22:40 modifié #16
    Pour info ce n'est pas le même protocole de conférence video/audio qui est utilisé par Netmeeting/OphoneX/Gnomeeeting (H323) et MSN (SIP).
    Les deux protocoles sont completement différents..

    iChat semble utiliser une version "batarde" (incomplete? bridée? buggée?) de SIP

    La tendence semble plutôt d'abandonner H323 (conçu par l'ITU pour de la téléconfence de manière générale, mal adapté à  l'IP) pour SIP (conçu par l'IETF pour fonctionner sur IP)


    Sinon je suis passé récement à  Adium, parce que ce que ca me gavait d'avoir 36 clients IM.. je suis assez content pour l'utilisation de base.. Un peu moins pour ce qui est transfert de fichier, téléconférence.. mais bon le projet évolue!
  • molgowmolgow Membre
    22:40 modifié #17
    Ok. Mais avec ça, tu peux dialoguer avec des utilisateurs MSN ?!
    Je connais pas du tout l'audio et la vidéo sur MSN, je pensais que c'était quelque chose d'intégré au protocole MSN, mais visiblement ça n'a pas l'air d'être le cas ?
  • fullstackfullstack Membre
    22:40 modifié #18
    Voila ce qui ets écrit dans la référénce du protocole de msn dans la partie "client-invitations"

    NetMeeting


    MS NetMeeting is a voice-chat and shared whiteboard program from Microsoft. NetMeeting uses the H.323 and T.120 standards, so (despite the name) you can use any program which conforms to these standards. For example, GnomeMeeting and ohphone support H.323.


    The Rendezvous Protocol specification hints at "NetMeeting 3.01", which has a different GUID, but seems otherwise identical.


    Application-GUID

    {44BBA842-CC51-11CF-AAFA-00AA00B6015C}


    Il est même spécifié qu ela libraririe ohphone fonctionne avec , donc pourquoi s'en priver ?

    Effectivement la conversation video integré a msn c'est en SIP (RFC 3261), mais cela fonctionne egalement avec neetmeeting comme indiqué plus haut.
    Je pense que simplment sur le pc du gars si on ouvre une conversation video, ca lui lancera le neetmeeting integré à  windows, ce qui n'est pas très génant.
    Si on veut vraiment faire avec SIP alors faut porter la lib linux ou alors utiliser la lib java :http://sourceforge.net/projects/jsip/
  • nucleusnucleus Membre
    22:40 modifié #19
    dans 1090322387:
    Effectivement la conversation video integré a msn c'est en SIP (RFC 3261), mais cela fonctionne egalement avec neetmeeting comme indiqué plus haut.
    Je pense que simplment sur le pc du gars si on ouvre une conversation video, ca lui lancera le neetmeeting integré à  windows, ce qui n'est pas très génant.
    Si on veut vraiment faire avec SIP alors faut porter la lib linux ou alors utiliser la lib java :http://sourceforge.net/projects/jsip/


    Effectivement cela lance NetMeeting, sauf si MSN est lancé sur XP il me semble..
    Sur XP, NetMeeting est comme caché.. d'ailleurs Microsoft avait annoncé il y a quelques temps que netmeeting était abandonné

    Un lien interessant sur la téléconférence: http://www.voip-info.org/, voir en particulier la liste des logiciels en open source.

    Celle de Vovida semble être la stack SIP open source sur Linux la plus interessante.. ca doit pas être trop compliqué à  porter sur OS X..

    Domage qu'Apple n'ai pas rendu un peu plus publique les framework utilisés par iChat.. :-(
Connectez-vous ou Inscrivez-vous pour répondre.