A former community discussing the business of software, from the smallest shareware operation to Microsoft. A part of Joel on Software.
We're closed, folks!
Doug Nebeker ("Doug")
After very long Googl-ing I was a little confused... Many developers told that, since Qt GUI is not 100%-truly-native for OS X like Cocoa GUI, Qt-based apps are sucks for Mac software market.
On the other hand, I definetly know that Qt-based app can be almost native for OS X. Yes, there's some exceptions, for example, no auto-hided vertical scrollers or no fullscreen mode, but still...
Moreover, Qt-based app can be compliant with Apple HIG: correct .icns, native menu, correct 'About' window, native file dialogs, sheet alerts, standard key-sequences, native system icons, etc.
And now question: can such Qt-based apps get (more or less) broad prospects on the Mac software market?
I'd be very grateful to you for your opinions.
Sincerely, Denis Shevchenko.
The first few versions of Qt on Mac OS X weren't great. But it has improved quite a lot. I'm sure a Mac zealot will always be able to tell the difference ("the alignment of those fields is clearly 1 pixel out!"). But, if you have a good feel for Mac OS X and put some effort into getting the look and feel right, I think you can probably get close enough that most users won't notice it isn't Cocoa.
>Yes, there's some exceptions, for example, no auto-hided vertical scrollers or no fullscreen mode
Qt is always lagging a bit behind Cocoa. These will probably come in due course. In fact, they might already be in v5 - I'm still on v4.
Thank you very much for your answer, Andy! Honestly, I can't believe that Qt-based apps are sucks due missing of Lion fullscreen mode or something like that...
You can do full screen mode in Qt 4. But you don't get the little arrows at the top of the main window as you do with some Cocoa apps (I notice the Finder and a lot of other OS apps don't have it either).
If you are selling to zealots (e.g. Mac GUI designers) you probably need to do a Cocoa app. But if you are selling to 'average' Mac users, then Qt is probably fine.
Because the zealots are very vocal it is easy to forget that they are a minority. especially now that quite a lot of Windows users have defected to Mac.
Thank you, Andy! Your answers are very helpful.
How many platforms are you deploying on? If you are only deploying on Mac, then you should probably go Cocoa/Objective-C. But I would definiately use Qt rather than writing separate UIs for Windows and Mac (unless it is a very thin UI).
As a Mac user I really dislike Qt (and other non native toolkit) based apps. I even bought competing products only because of that.
Qt somehow has that "dirty" unfinished Open Source look and feel and every Mac user - not only the "zealots" - can tell the difference.
> How many platforms are you deploying on?
On OS X, on Linux (soon), on Windows (maybe).
> Qt somehow has that "dirty" unfinished Open Source
> look and feel and every Mac user - not only the
> "zealots" - can tell the difference.
... and this difference is so big? And this difference is a crucial factor against purchasing of such apps?
I work in OS X last 8 months, and I saw many native Mac apps and many non-native Mac apps. You're right, some non-native apps looks really awful, but NOT all. Moreover, in some cases this difference (between native app and non-native app), IMHO, is very small...
>How does one write a 100% native OSX app then?
The Cocoa API + Objective-C.
>>> How does one write a 100% native OSX app then?
>> The Cocoa API + Objective-C.
> Is that the only way?
Factually - yes. Only Cocoa will allow you to use full power of OS X.
> If you are selling to zealots (e.g. Mac GUI designers) you probably
> need to do a Cocoa app.
For Mac GUI designers? And what about Mac software developers? My app is a source code formatter, so it's a niche product for developers only...
> I would definiately use Qt rather than writing separate UIs for Windows
> and Mac (unless it is a very thin UI).
Yes, but if this app for zealots? Qt GUI on Linux is fully native, there's no problems. On Windows - almost native, but Windows users is not so pedantic about GUI, so there's no problems too.
So theoretically we can keep Qt-variant for Linux and Windows, and Cocoa-variant for OS X. Of course, we can keep internal logic in C++, and just wrap it by Objective-C.
Maybe such two variants is the best solution?.. I don't know...
>And what about Mac software developers?
Mac developers are likely to be UI zealots.
Cocoa is the only way to guarantee your app can look 100% native. You might lose sales to competitors with a Cocoa UI. On the other hand you only have 1 UI to code. It is a trade off.
Perhaps you should do a quick and dirty UI prototype in Qt and show it to some Mac developers?
>Is that the only way?
Cocoa/Objective-C is the only solution that Apple provide/recommend/endorse, as far as I am aware.
> Perhaps you should do a quick and dirty
> UI prototype in Qt and show it to some
> Mac developers?
I've already done it. Moreover, few Mac developers already likes it. In fact there's no dirty UI prototype - my app is ready to use, and its Qt GUI is as Mac-native as possible (without Objective-C++). Here is it: http://style-revisor.com .
>few Mac developers already likes it.
"few" or "a few"?
"a few" implies a few have tried it and liked it.
"few" implies lots tried it and few of them liked it.
Which did you mean?
(I realize English may not be your first language)
I played with C++ formatters a while back. There are quite a few free ones. But nothing did quite what I wanted.
What would be really cool would be a formatter that can read in a piece of code, infer the preferred formatting from that and then apply it as a template to other code. I didn't see anything that could do that.
You can pay me for that idea when you are rich. ;0)
PS/ '$49.5' looks weird. Should be '$49.50'.
> Yes, there's some exceptions, for example, no auto-hided vertical scrollers or no fullscreen mode
No problem in Qt 5.
> Qt somehow has that "dirty" unfinished Open Source look and feel and every Mac user - not only the "zealots" - can tell the difference.
Please explain with more details.
Unfinished/unpolished software looks dirty regardless of whether it's Cocoa or Qt.
Well written Qt software is indistinguishable from native Cocoa, in my experience.
Even Apple's HIG are not 100% clear or consistent. For example, when should you use capsule style toolbar buttons instead of the regular ones ? And "drawer" style windows are deprecated after only a brief existence - to much relief. My point here is that the idea of GUI elitism is nonsense and Apple is not perfect.
>> few Mac developers already likes it.
> "few" or "a few"?
> (I realize English may not be your first language)
You're right, I'm from Russia.
> PS/ '$49.5' looks weird. Should be '$49.50'.
Agree. Already fixed.
>> Yes, there's some exceptions, for example, no auto-hided
>> vertical scrollers or no fullscreen mode
> No problem in Qt 5.
Thank you very much! In Qt 5 all native: fillscreen mode, auto-hided vertical scrollers, native drag-n-drop cursor.
> Well written Qt software is indistinguishable from
> native Cocoa, in my experience.
Now I can agree with it!
So, theoretically, Qt-based apps can be as successful as Cocoa-based apps...
Thursday, April 04, 2013
Who said that Qt-based GUI cannot be OS X truly-native? With Qt 5 and little bit of Cocoa code (thanks to Objective-C++ compilers) you _can_ create native GUI, even for pedantic Mac users. ;-)
Well, this topic can be closed. Thanks to all!
Saturday, April 13, 2013
I have 2 programs built on QT and my mac ports of both programs look and function great. Actually, they look better on the mac. They go Full Screen, and we don't have any wierd things with scroll bars arrows, font sizes etc. Yes they required a little extra tweaking to get it all to look and work perfect, but it wasn't a big deal.
We are experimenting now with the Alpha Version of QT5.1 which includes IOS, and Droid support as well.
If it works smooth enough, we only code C++ and our main program can run on Windows, Mac, Ipad, Iphone, Droid Tablet and Droid phone, etc.
I would be very interested to hear how you get on with Qt 5.1, especially on Android and iOS.
Monday, April 15, 2013
> I would be very interested to hear how you get on with Qt 5.1,
> especially on Android and iOS.
From this topic: http://blog.qt.digia.com/blog/2013/04/08/qt-5-1-alpha-available.
"... we have added preliminary support for Android and iOS to Qt 5.1. This release is fully usable on both platforms and you can begin to develop for both OSs immediately."
"... full Android and iOS support will come with Qt 5.2..."
Thursday, April 18, 2013
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz