IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement OS X Discussion :

[DEV] Interface graphique sous Mac


Sujet :

Développement OS X

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 56
    Points : 21
    Points
    21
    Par défaut [DEV] Interface graphique sous Mac
    Bonjour,


    J'ai un projet d'appli développé en C++ . A la base, le but de cette appli est d'être utilisé sous MAC. Mais je me dis que je pourrais prévoir un portage sous Windows.

    Et j'ai un petit soucis sur l'interface graphique. J'aimerais que sous Mac, l'appli fasse "appli mac" graphiquement (le menu en haut, le style des fenêtres, des boutons, des onglets....) et je voudrais que sous windows, l'appli ait un look windows.
    Sous Mac, j'ai vu qu'il existait "Interface Builder", mais si je me sers de ça, je crains de ne pouvoir utiliser mon code sous Windows ....

    J'aimerais savoir quelle solution vous me préconisez ? Je pense notamment à utiliser des méthodes à moi du style "creerFenetre" "ajouterBouton" dans lesquelles, je ferai appel aux API propres à chaque système. Du coup, le portage sous l'un ou l'autre des plateformes passera uniquement par une revue de code de ces fonctions... cela vous semble-t-il judicieux ?

    Je ne me suis pas réellement penché sur Interface Builder, mais il semble que ça génère des fichiers .nib ou autre et que du coup, je n'ai pas d'accès au code généré. Dans ce cas là, je risque d'avoir du mal non pour utiliser mon système non ?

    Vous, si vous deviez faire une appli avec IHM qui doivent présenter "Mac" sous Mac OS et "Windows" sous windows, comment procéderiez-vous pour rendre son portage facile ?

    Bien sûr, j'ai pensé à GTK et QT, mais ça n'a pas une vrai apparence sur l'OS concerné... c'est trop "carré dessiné" (à ce que j'en vois dans les screenshots) ....ça fait pas naturel.


    Merci pour vos avis qui m'aideront grandement.

  2. #2
    Membre averti
    Avatar de Orian
    Inscrit en
    Août 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Août 2006
    Messages : 372
    Points : 401
    Points
    401
    Par défaut
    Je trouve que contrairement à ce que tu dis Qt est bien intègré à Mac OS.

    Le mieux pour faire une vraie interface Mac OS reste Cocoa (http://developer.apple.com/cocoa/), mais là effectivement ce ne sera pas portable...
    iMac 27" 3.06 GHz Intel Core 2 Duo, 4Go DDR3, Mac OS 10.6.5
    MacBook Pro 17", 2,3 GHz Intel Core 2 Duo, 2 Go DDR2, Mac OS 10.4.11

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 308
    Points : 373
    Points
    373
    Par défaut
    Bien sûr mais il y a des moyens de rendre un programme le plus portable possible. Il faut pour ça que le logiciel soit bien découpé, et à ce moment-là seul les parties proches du système et/ou de l'interface graphique seront à refaire pour chaque plateforme...

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Ou alors, tu développes en JAVA.
    Les puristes te diront que tu ne seras pas 100% fidèle à chaque OS, mais moi, le résultat me convient déjà bien.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 56
    Points : 21
    Points
    21
    Par défaut
    Je connais Java. Mais je n'aime pas les interfaces IHM qu'il produit. Et puis, la JVM reste plus lente qu'un programme compilé.

    A la vue de la screenshot que tu m'as indiqué Orian, on dirait vraiment que QT respecte le "look&feel" MAC... est-ce toujours aussi ou c'est que quelques champs et c'est + de la bidouille pour obtenir ce résultat qu'une "partie de plaisir" ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 56
    Points : 21
    Points
    21
    Par défaut
    J'ai des doutes sur QT sous MAC. Je télécharge tout ça pour voir, mais bon. J'ai vu que Skype était en QT sous Linux, mais il est passé par COCOA pour arriver sous Mac.....

    Donc bon, je crois que je vais utiliser COCOA/CARBON finalement. Et je me soucierai un peu plus tard de la portabilité.

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Je connais Java. Mais je n'aime pas les interfaces IHM qu'il produit. Et puis, la JVM reste plus lente qu'un programme compilé.
    Depuis Java 5 on a des interfaces quand même très proche de l'OS.
    C'est sur que si tu regardes le look and feel Metal, c'est normal que tu trouves ça moche.
    Le coup de la lenteur de la JVM, c'est plus ou moins vrai.
    Ok le démarrage de la JVM prend du temps mais après, selon ce que tu développes et si le programme n'est pas codé avec les pieds, tu ne verras pas la différence.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 308
    Points : 373
    Points
    373
    Par défaut
    Si tu dois utiliser les APIs spécifiques à Mac je te conseille fortement Cocoa parce que Carbon est mourant et n'a plus grand intérêt.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 56
    Points : 21
    Points
    21
    Par défaut
    Heu moi j'veux bien, mais si j'ai bien compris :
    Cocoa va avec Objective-C
    et Carbon avec C++

    non ?

    Et si oui, j'ai pas envie de me mettre dans l'objective-C tout de suite....

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 308
    Points : 373
    Points
    373
    Par défaut
    Non, Carbon c'est plutôt C, même si il y a aussi du C++.
    Et puis tu peux mixer du C++ et de l'Objective-C... Ça donne l'Objective-C++.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 56
    Points : 21
    Points
    21
    Par défaut
    Mais donc, je peux programmer en C++ avec une interface graphique Cocoa ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 308
    Points : 373
    Points
    373
    Par défaut
    Oui, mais bon tu pourras pas te passer d'Objective-C quand même...

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 56
    Points : 21
    Points
    21
    Par défaut
    C'est à dire ?

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 308
    Points : 373
    Points
    373
    Par défaut
    Bah si tu veux, tu peux te faire tout ton code applicatif en C++, c'est-à-dire le code qui restera pratiquement intact sur chaque plate-forme, mais pour pouvoir utiliser Cocoa tu seras obligé d'utiliser de l'Objective-C(++) pour faire la liaison entre les deux.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 56
    Points : 21
    Points
    21
    Par défaut
    Et est-ce beaucoup plus difficile de faire l'IHM en Carbon plutôt qu'en Cocoa ?
    J'ai lu que ce qu'on peut faire en Cocoa, on peut le faire en Carbon... mais forcément, si ça double mon temps de dev, ça va le faire moyen....

    Y a vraiment + de complexité à utiliser Carbon (même si j'ai bien compris qu'un de ses objectifs est le portage des appli MAC OS 9 vers MAC OS X)?

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 308
    Points : 373
    Points
    373
    Par défaut
    Je pourrais pas te dire si Carbon est plus difficile que Cocoa...
    Déjà oui, Carbon n'a été conçu à l'origine que pour montrer qu'il était possible de faire des applications compatibles Mac OS 9/Mac OS X.

    Mais ça n' aplus vraiment de sens maintenant. Il n'y a plus que le Finder et iTunes chez Apple qui sont encore en Carbon, tout le reste utilise Cocoa qui me semble beaucoup plus organisé et surtout beaucoup plus flexible que Carbon.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 56
    Points : 21
    Points
    21
    Par défaut
    Bon Ok. Le mystère reste entier donc.

    J'ai des bases en C++ que je n'ai pas exploité depuis plusieurs années. J'ai acheté 2 bouquins sur le C++ pour m'y remettre et ça revient bien.

    Mais si maintenant, je me dis qu'il faut que j'intègre de l'objective-C mixé avec du C++, je sais pas si je vais m'en sortir.... Je ferais bien tout en Carbon, pour rester caler sur le C++ quand même.
    Remarque, vu que je connais pas Cocoa et l'objective-C, je ne me rendrais pas compte que c'est "+ difficile" lol. Et puis le jour où je le porte sous Cocoa, je trouverais ça facile ;-)

    En tout cas, merci pour ton aide. J'ai un peu mieux ciblé le côté interface graphique.....
    Bonne soirée à toi.

  18. #18
    En attente de confirmation mail
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 348
    Points
    348
    Par défaut
    Et wxWidgets ? avec la nouvelle version de Code::Blocks, très facile de créer des applis Mac, Windows, Linux, ... avec le look & feel natif.

    Franchement, pour du multiplateforme, que du bonheur !!!!

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 56
    Points : 21
    Points
    21
    Par défaut
    Je connais pas ça.....wxWidgets ? je vais jeter un oeil :-)

    Merci du conseil.

Discussions similaires

  1. Problème d'exécution des interfaces graphiques sous Mac
    Par sampaiX dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 26/04/2010, 10h32
  2. Pas d'interface graphique sous Mandriva
    Par JavaAcro dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 11/05/2006, 09h53
  3. Interface graphique sous Debian
    Par the watcher dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 09/04/2006, 11h08
  4. Changer l'interface graphique sous Mandrake 10
    Par Bidouille dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 08/09/2004, 11h25
  5. Interface graphique sous embedded visual C++ !!
    Par acastor dans le forum MFC
    Réponses: 4
    Dernier message: 16/03/2004, 19h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo