views:

437

answers:

6

On my side job as programmer, I am to write a program in C++ to convert audio files from/to various formats. Probably, this will involve building a simple GUI.

Will it be a great effort to build seperate GUIs for Mac and Windows using Cocoa and WinForms instead of a cross-platform toolkit like Qt or GTK? (I will have to maintain a seperate Windows-version and Mac-Version anyway)
The GUI will probably be very simple and only need very basic functionality.

I always felt that native GUIs feel far more intuitive than its cross-platform brethren...

+7  A: 

If you have the expertise, use native frontends, it'll effectively double the job you have to do for UI but from my experience non-native UI is a little bit clunkier than their native counterparts.

paan
+1  A: 

Yes.

But seriously, it depends on your goals. I agree that the native UI libraries, with a bunch of effort put into them, will give vastly better results, but for lots of apps, a very basic UI is sufficient and a lot less effort if you take one of the existing cross platform frameworks.

Maybe starting with the CLI and getting functionality working makes the most sense for an audio conversion application.

Matt Sheppard
+6  A: 

Have you looked at wxWidgets? Cross platform native controls.

KiwiBastard
The biggest problem with that is that different platforms have different rules for laying out the controls. Sure the buttons look native, but if the arrangement is wrong then the overall UI will still suck. (OSX users tend to be pickiest in this regard.)
Donal Fellows
+2  A: 

I would agree that if possible, native front-ends are the way to go. I've not used wxWidgets recently, and I've heard it's come a long way, but back when it was wxWindows, we built an app with it that was spec'd to be built in X/Motif. When we finished the effort and delivered it, the customer said it did not look enough like X/Motif, and we had to re-work the entire UI at our expense... Joel Spolsky wrote a good article on this, but I can't remember the title. What he did say, IIRC, was the problem with Java and some other cross-platform UI was that "your dog barks at my app" - it's the little inconsistencies that annoy folks.

Brian Stewart
:-O. Who in their right mind would like to have their app look like MOTIF!?!?!? It's, like, the COBOL of interface toolkits!
slacker
+1  A: 

I'm going to write my own cross platform application GUI layer for this soon. Depending on the complexity of your application this can be a fraction of what is required for QT, GTK or FOX.

Reason is that we see a tendency that the platform vendors (Apple first) tries to design there system so that it looks unique. This makes it much harder for QT, GTK, FOX and other platform tools to constantly keep in sync with the latest widgets.

When the underlaying technique becomes more and more the same the OS vendors have no option then branding on look and feel of the platform.

Lothar
+1  A: 

Cross-platform toolkits, more or less, all make the incorrect assumption that the difference between platforms is a matter of button placement and widget styling. In some cases you can get away with this - a Qt app will feel fairly native on both Windows (where UI conventions are very lax) and on Linux, particularly a KDE environment. In general, you can move between Linux and Windows relatively easily; conventions are similar, and the Windows community is lax about them.

Mac is the hard one. Its UI is built around an entirely different paradigm than either Windows or most Linux environments.

But in general, in a native app it's easier to speak the native language of the platform in more ways than just widget style.

Michael E