12
votes

Conseils d'accueil de la fenêtre pour Mac

Je suis d'un contexte de programmation Windows lors de la rédaction d'outils, mais de programmation en utilisant du carbone et du cacao depuis une année écoulée. Je me suis présenté à Mac par, je l'avoue, caché à partir de la programmation de l'UI. J'ai essentiellement bloqué mon code OpenGL dans une vue, puis séjournez dans ma zone de confort à l'aide de mon code plate-forme Agnostic OpenGL C ++ comme d'habitude.

Cependant, je souhaite maintenant commencer à porter une de mes applications plus sophistiquées sur Mac OS.

En règle générale, j'utilise l'approche de MDI de studio Visual Standard Visual Studio, ce qui est excellent, mais très Windows. À partir d'utiliser un Mac principalement maintenant pendant un moment, je n'ai pas tendance à voir ce type de méthode utilisée pour Mac UIS. Même Xcode ne supporte pas l'idée de glisser-déposer / goutte / dockable, malheureusement. Je vois des vues amarrées avec des panneaux de séparateur, mais c'est à peu près tout.

La chose la plus proche que j'ai vue à l'approche Visual Studio est Photoshop CS4, qui est plutôt agréable.

Alors, quel est le consensus général à ce sujet? Est-ce qu'il y a plus de manière similaire Mac d'atteindre la même chose que je n'ai pas vue? Sinon, je suis heureux d'écrire un gestionnaire de fenêtres à Cocoa moi-même, de sorte que je puisse enfin exploser dans un apprentissage qui ressemble à une excellente API.

Remarque, je ne veux pas utiliser qt ou aucune autre bibliothèques multiplateformes. L'ensemble point est que je souhaite faire une application Mac ressemble à une application Mac, laissez l'application Windows ressemblant à une application Windows. Je trouve toujours les bibliothèques multiples plateformes tend à perdre cet effet et, lorsque je vois un UI mac natal, avec des transitions de cacao fantaisie et des animations, je souris toujours. C'est aussi une bonne excuse pour moi d'apprendre le cacao.

Cela étant dit, s'il y a une bibliothèque de cacao open source pour le faire, j'aimerais savoir à ce sujet! J'aimerais voir comment quelqu'un d'autre l'obtient et aiderait à lisser la courbe d'apprentissage du cacao.

acclamations,

shane

mise à jour : j'ai oublié de mentionner un point critique. Je supporte les plugins, qui peuvent avoir leur propre assurance-emploi à afficher diverses informations spécifiques à plug-in. Je ne sais pas quels plugins seront chargés et je ne sais pas où habitera leur UI vivra, si je ne supporte pas d'amarrage. J'aimerais entendre les pensées des gens à ce sujet, précisément: comment puis-je prendre en charge une architecture d'affichage du plugin si l'interface utilisateur ne peut pas changer? Où dois-je mettre la vue sur le plugin?


2 commentaires

S'il vous plaît ne soyez pas confus par la "réponse" ci-dessous. Les fenêtres dotées sur le Mac ont été autour depuis longtemps. (Adobe et Google font tous deux des applications avec des fenêtres dotées de fenêtres, mais ce n'est pas correct pour que vous puissiez le faire? C'est le taureau.) Le vrai problème est qu'il n'ya pas de centaines de sociétés qui font des composants tiers pour le Mac comme s'il existe des fenêtres. Voici un article et un code qui peut vous aider à démarrer avec des palettes dockables sur OS X - Apptree.net/dockables.htm < / a>


Oui, je pense que d'où il y a un besoin de fenêtres dotées, ils sont difficiles à battre. Un exemple classique est Eclipse vs Xcode (4). Je peux mettre des fenêtres où que je veux dans Eclipse, alors que je suis entravé dans Xcode. Merci pour le lien, je vais vérifier.


4 Réponses :


10
votes

venant d'un arrière-plan Windows, vous ressentez la nécessité d'avoir des fenêtres d'accueil, mais est-ce vraiment essentiel à l'application? La philosophie d'Apple (à mon avis) est que le concepteur connaît mieux que l'utilisateur comment les choses devraient regarder et travailler. Par exemple, iTunes est une application assez sophistiquée, mais elle ne vous permet pas de changer l'interface utilisateur autour, de changer la peau, etc., car Apple veut le garder cohérent. Ils offrent la vue complète, le mini joueur et une poignée d'options de visualisation différentes, mais elles ne vous laissent pas tirer la liste des sources dans une fenêtre séparée ou le fermer dans d'autres postes. Ils pensent que cela devrait être à gauche, alors il reste ...

Vous avez dit que vous avez "vouloir faire une application Mac ressemble à une application Mac", et comme vous l'avez souligné, les applications Mac n'ont pas tendance à avoir des fenêtres d'accueil. Par conséquent, la mise en œuvre de vos propres fenêtres d'accueil est probablement une étape dans la mauvaise direction;)


10 commentaires

Pleinement d'accord avec cela. Ajout: La dernière suite d'Adobe est un excellent exemple de la manière dont une idée est terrible sur la plate-forme Mac OS X. :-)


Excellente réponse Ken, et pour être honnête, j'ai eu l'impression que c'était ce que j'allais entendre! Je pense que vous avez raison, je vais concevoir, donc je suis surtout statique, mais je m'assurerai d'inclure les personnes que l'outil est destiné au processus de conception, car les programmeurs sont notoirement des concepteurs (je peux dire que parce que Je suis un;)) Maintenant, le premier problème que je rencontrerai avec cette approche est, comment gérer mon architecture de plug-in, où les plugins peuvent avoir leur propre point de vue, si l'interface utilisateur est principalement corrigée. Que font les gens dans ce cas? Quelles applications Mac sont de bons exemples de cela?


Pour une architecture de plug-in prise en charge par Apple avec une interface utilisateur, examinez comment les unités audio sont traitées. Regardez Aulab dans / Developer / Applications / Audio /. Je n'appellerais pas un exemple de conception de l'interface utilisateur, mais cela vaut la peine de regarder. Ce qu'ils font là-bas, il est ouvert une nouvelle fenêtre flottante (Nspanel) pour afficher l'interface utilisateur pour chaque unité audio. La hauteur de la fenêtre est redimensionnée au besoin. L'interface Builder fait quelque chose de similaire à l'onglet Inspecteur, permettant à la hauteur de changer mais de limiter la largeur d'affichage de l'interface utilisateur unique de chaque classe.


Excellent, je ne savais même pas que l'outil existait. Je vais jeter un oeil :)


Et si je veux juste avoir des fenêtres dotées, comme Chrome? Google a évidemment eu la propre chose avec des onglets de déchirement et c'est une excellente caractéristique qui convient parfaitement à la "voie mac". Cela ne répond pas vraiment à la question. Je soupçonne la vraie raison pour laquelle Mac Devs ne le fait pas, car ils n'ont pas de belles composants emballés pour le faire, comme les Devs Windows Do.


@WIZLB: Voter les réponses de chacun et l'affichage du même commentaire sur chaque (et la question originale) sent un terrain terrible comme la traînée à moi.


@Joshuanozzi Pas du tout. Ces réponses sont horribles car évidemment, les gens ont fait des panneaux d'accueil sur OS X avant et ils fonctionnent tout simplement bien. Si vous pensez que je traîne, pourquoi vous répondez-vous même à moi?


@WIZLB La fabrication d'un bouton rouge plat fonctionnerait aussi bien aussi bien. Facilement codé et cela fonctionnerait. L'argument Les autres intervenants et moi-même font ici sont qu'un MDI logeable est NON NON CONSIDÉRÉ UI approprié pour la plate-forme Mac OS X. Sautez haut et descendez-vous et criez à ce sujet tout ce que vous aimez, mais à la fin de la journée, vous êtes l'opinion minoritaire et vous tirez les messagers pour démarrer. Continuez à parler si vous aimez - c'est tout ce que j'ai à dire sur la question.


Personne ne saute de haut en bas. Vous avez raison que c'est purement d'opinion basé, c'est pourquoi ces réponses devraient simplement être supprimées; Si ce n'est pas la question entière. La chose amusante est que vous étiez probablement contre MDI de base aussi jusqu'à ce que Apple le fasse avec Xcode. Mon point est qu'il y a là qu'il y a des sociétés de logiciels les principales sociétés qui le font et que vous pouvez faire, que vous l'aimiez personnellement ou non.


En outre, les lecteurs peuvent me remercier d'avoir posté un échantillon de code et article actuel au lieu de simplement obtenir une prime sur «la voie mac» (que personne ne suit de toute façon). Bonne journée :)



2
votes

+1 à la réponse de Ken.

du point de vue de l'utilisateur, sauf son intégrale de l'application, je souhaite que tout ce que possible soit de la même manière que possible et toutes les différentes options et s'affiche de mon chemin afin que je puisse vous concentrer sur le document.

Je pense que vous trouverez avec les utilisateurs de Mac que ceux qui ont la "compétence utilisateur" pour utiliser des panneaux de réarrangement seront dans la plupart des cas opter pour des liaisons de clés à chaud, et ceux qui n'ont pas ce niveau de "compétence" que ce soit juste va confondre.

Je recommanderais de le garder aussi simple que possible.


0 commentaires

1
votes

(en cours d'exécution au ralenti, tendre la main en panique) nnnnooooooooo !!!!!

:-) Sérieusement, comme je l'ai mentionné en réponse à l'excellente réponse de Ken, essayez de forcer un "windowsisme" sur un interface utilisateur du système d'exploitation X est définitivement une mauvaise idée. À mon avis, le plus gros problème avec Windows UI est que les développeurs tiers inventent des moyens nouveaux et incohérents de la présentation de l'interface utilisateur, plutôt que d'être cohérents et suivant des conventions établies. Pour un utilisateur Mac, c'est le signe d'une application terrible. C'est comme ça pour une raison.

Je vous encourage à repenser votre UI de la mise en œuvre de l'application à partir du mac de macs à l'esprit. Si vous avez bien effectué votre travail, l'architecture et le modèle (implémentation spécifique à la plate-forme SANS) devraient clairement traduire la plate-forme.

En termes d'interface utilisateur, vous utilisez un MAC depuis un an, vous devriez donc avoir une très bonne idée de "la norme". Si vous avez des doutes, il est préférable de poster une question spécifiquement détaillant ce que vous devez présenter et vos pensées sur la manière dont vous pourriez le faire (ou vous demandez comment si vous n'avez aucune idée).

Vous ne faites que frapper votre application avec le bâton laids en le forçant à se comporter comme s'il fonctionnait dans Windows quand il n'est clairement pas. C'est le baiser de la mort pour une application aux utilisateurs de Mac.


9 commentaires

Je suis d'accord, ce qui est exactement pourquoi j'ai posté cette question. :) Je suis un gars de Windows essayant de faire la "bonne chose" pour les personnes Mac, dont je suis bien et vraiment une personne maintenant.


Merci, je suis une personne plus heureuse pour cela :)


Google a fait des fenêtres "logeables" (onglets de déchirure) et il convient parfaitement. Il y a des composants qui facilitent le faire dans Windows. La vraie réponse sur laquelle aucun Mac Devs ne le fait, c'est parce qu'ils n'ont pas de beaux composants comme les Devs Windows Do.


@WIZLB: C'est énormément de supposer que vous y saluez. Le code pour faire quelque chose comme ça est trivial. Ce n'est pas fait sur Mac OS car ce n'est pas considéré comme "de type Mac" dans la conception. Peut-être que la prochaine fois que vous avez basculé - voter les réponses de chacun, vous pourriez baser le vote sur autre chose qu'une réponse émotionnelle aux normes de l'interface utilisateur spécifique à la plate-forme.


Sauf quand est fait et personne n'a vraiment de problème avec cela. Les émotions n'ont rien à voir avec cela, c'est purement basé sur des preuves empiriques. (Oh et "(courir au ralenti au ralenti, tendre la panique) Nnnnoooooooooo !!!!!" est évidemment émotionnel, alors pourquoi serait-il un problème quand je le fais? (Si j'étais dans fait faire ça.))


Vous semblez confuser «théâtral» avec «émotionnel».


Et vous semblez être déroutant la logique d'émotion.


Je ne suis pas sûr de suivre celui-là. Passez une bonne journée - j'ai fini avec cette conversation.


Dans votre première réponse, vous avez appelé mon commentaire logique et raisonné "émotionnel". Suivez maintenant?



2
votes

Une chose qui est courante parmi de nombreuses applications Mac est la possibilité de cacher tout le chrome et de se concentrer sur votre contenu. C'est le point situé derrière la commande de la barre d'outils "TIC TAC" dans le coin supérieur droit de nombreuses fenêtres. Une faiblesse grave de nombreuses hallings est qu'elles s'attendent à ce que vous ayez la fenêtre prenant la majeure partie de l'écran, car les panneaux amarrés peuvent obscurcir le contenu. Même si des panneaux amarrés sont repliés, l'espace laissé par eux est souvent juste gaspillé et rempli d'espace blanc. Donc, si vous construisez un panneau d'accueil dans votre interface, vous devez vous attendre à ce qu'il soit visible la plupart du temps. Par exemple, la liste des sources iTunes est clairement conçue pour être visible tout le temps, mais vous pouvez double-cliquer sur une liste de lecture pour l'ouvrir dans une nouvelle fenêtre.

Pour s'habituer à la gamme de contrôles MAC, je vous suggère d'essayer de faire un travail sérieux avec certaines applications qui n'ont pas d'interface utilisateur inter-plate-forme; Par exemple, les applications Iwork, le constructeur d'interface ou l'aperçu. Prenez note d'où les contrôles apparaissent et pourquoi des barres d'outils, dans les barres inférieures, dans les inspecteurs, dans les listes de sources / barres latérales, dans des panneaux tels que la bibliothèque de l'IB ou la police et les panneaux de couleur, dans des rayons contextuels. N'oubliez pas la barre de menus non plus. Obtenez une idée de la sensation des contrôles - leur réactivité, la modalité, le dimensionnement, le regroupement et la cohérence. Essayez de développer un goût - tout n'est pas parfait; Essayez simplement iCal si vous voulez avoir quelque chose à se moquer de.

Notez qu'il n'y a pas de "taille unique pour tous" pour les contrôles, ce qui peut être un problème avec l'endockage de l'ISI. Il est important de penser au workflow: quelle couramment le contrôle serait utilisé, que vous puissiez le remplacer par une manipulation directe, si une indication visible de son état est nécessaire, qu'il soit utilisé au clavier et à la souris, etc. Déterminez comment le placement et le comportement du contrôle permettent à l'utilisateur de travailler plus efficacement.

Un exemple simple d'exemple d'un bon partage et de comportement de contrôle de mauvaise commande dans des applications sinon décentes, comparez le masquage de l'image dans omnigraffle et Keynote. Dans Omnigraffle, cela utilise l'inspecteur de l'image où vous devez d'abord cliquer sur un bouton non étiqueté ("Taille naturelle") afin d'activer les commandes appropriées, puis de régler la taille et la position d'une mode de faible fidélité avec une vignette d'image ou par taper des pourcentages dans des champs. Essayer de redimensionner le cadre se comporte directement dans une mode bizarre et contre-intuitive.

Dans Keynote, le masquage commence par un élément de menu nommé sensiblement ou un élément de barre d'outils, utilise une HUD qui apparaît à l'instant que vous cliquez sur une image masquée et permet une manipulation directe, y compris une affichage sensible de l'ampleur de l'image que vous êtes masquage. Pendant que vous faites glisser une image masquée autour, elle suit même les guides. Les utilisateurs avancés peuvent ignorer entièrement la HUD, double-cliquer sur l'image pour basculer l'édition de masque et utiliser les poignées pour le dimensionnement. Il devrait être facile de voir, avec quelques mises en garde (par exemple, l'état du mode "Modifier le masque" doit être visible dans le HUD plutôt que juste de l'image; la bordure externe de l'image que vous masquez doit être utilisée plus efficacement) Keynote est sensiblement meilleure à cela, en partie parce qu'il n'utilise pas d'inspecteur.

Cela dit, si vous avez un grand nombre d'options et que la disposition de l'inspecteur d'onglets standard ne fonctionne pas pour vous, consultez le groupe Omni OmniInSpector Cadre. Essayez de l'utiliser pour bien et, espérons-le, vous allez déterminer comment obséder à l'interface utilisateur autant que vous faites sur des graphiques maintenant: -)


1 commentaires

Merci Nicholas, tous les bons points (merci pour le lien de groupe Omni aussi, très intéressant). Par intérêt, quelles autres applications avez-vous vue sur Mac qui prennent en charge les plugins avec leur propre interface utilisateur?