Try to develop some taste-not everything is perfect just try iCal if you want to have something to make fun of. Get an idea of the feel of controls-their responsiveness, modality, sizing, grouping and consistency. Take note of where controls appear and why-in toolbars, in bottom bars, in inspectors, in source lists/sidebars, in panels such as IB's Library or the Font and Color panels, in contextual HUDs. To get used to the range of Mac controls, I'd suggest you try doing some serious work with some apps that don't have a cross-platform UI for example, the iWork apps, Interface Builder or Preview. For example, iTunes' source list is clearly designed to be visible all the time, but you can double-click a playlist to open it in a new window. So, if you build a docking panel into your interface, you should expect it to be visible most of the time. Even if docked panels are collapsable, the space left by them is often just wasted and filled with white space. A serious weakness of many docking UIs is that they expect you to have the window take up most of the screen, because the docked panels can obscure content. That's the point behind the "tic tac" toolbar control in the top right corner of many windows. One thing that's common among many Mac apps is the ability to hide all the chrome and focus on your content. I'd love to hear people's thoughts on this, specifically: How do I support a plugin view architecture, if the UI can't change? Where do I put the plugin views? I don't know which plugins will be loaded and I don't know where their UI will live, if I don't support docking. I support plugins, which can have their own UI to display various plugin specific information. UPDATE: I forgot to mention a critical point. That being said, if there is an Open Source Cocoa library to do this, I'd love to know about it! I'd love to see how someone else achieves this, and would help smooth the Cocoa learning curve. It's also a good excuse for me to learn Cocoa. I always find the cross-platform libraries tend to lose this effect, and when I see a native Mac UI, with fancy Cocoa transitions and animations, I always smile. The whole point is that I want to make a Mac app look like a Mac app, leave the Windows app looking like a Windows app. Note, I don't want to use QT or any other cross-platform libraries. So what is the general consensus on this? Is there are more Mac-like way of achieving the same thing that I haven't seen? If not, I'm happy to write a window manager in Cocoa myself, so that I can finally delve in an learn what looks like an excellent API. The closest thing I've seen to the Visual Studio approach is Photoshop CS4, which is pretty nice. I see docked views with splitter panels, but that's about it. Even Xcode doesn't support the idea of drag and drop/dockable views, unfortunately. From using a Mac primarily now for a while, I don't tend to see this sort of method used for Mac UIs. Typically I use the standard Visual Studio dockable MDI approach, which is excellent, but very Windows-like. However, now I want to start porting one of my more sophisticated applications to Mac OS. I've been basically wapping my OpenGL code in a view, then staying in my comfort zone using my platform agnostic OpenGL C++ code as usual. I have introduced myself to Mac by, I admit it, hiding from UI programming. I'm from a Windows programming background when writing tools, but have been programming using Carbon and Cocoa for the past year.
0 Comments
Leave a Reply. |