On Tue, Mar 12, 2013 at 07:56:33AM +0000, Bache-Wiig Jens wrote:
> 
> On Mar 11, 2013, at 12:41 PM, Jake Thomas Petroules 
> <jake.petrou...@petroules.com> wrote:
> 
> > By the way, I don't know if you saw my comments on your "Qt for iOS 
> > Preview" blog post, but...
> > 
> > You stated that because there is no HITheme-like API on iOS, that creating 
> > QiOSStyle would be "not possible".
> > 
> > However, we can render any UIView into a buffer using [UIView drawInRect:] 
> > which we should utilize to provide as much support for native styling as 
> > that allows us to.
> 
> This is not a replacement for a styling API. What you are proposing is 
> equivalent to creating a native IOS widget behind the scenes and taking 
> screenshots of it. It is a hack and it can only work for a few cases. It 
> barely works for buttons (but not segmented ones or tabs) provided you hard 
> code text margins which could change at any point in the future. It will not 
> give you mouseover/hover states without faking input events. And it 
> completely falls apart when you try to render something slightly complex like 
> a slider, unless you update the position of the native handle and re-grab it 
> on each frame.
I must disagree on this one. If you consider installing event handlers within
the style, and and frame-by-frame updating hacks, then yes, it is a hack. But
that's what we have for now, unfortunately.
> 
> > Jens claimed on the blog that the native look and feel matters less in the 
> > mobile world because each app is fullscreen. I agree that it matters less, 
> > but I disagree that it matters little enough for us to ignore it. I'd much 
> > rather use real iOS-looking controls than simply slap on Fusion. Apple 
> > users are commonly noted to be extremely particular about very small UI 
> > defects. If we spend the time to go "oh, the text alignment in QLineEdit is 
> > one pixel too low on OS X", and actually take the time to fix it, iOS 
> > should be no different.
> 
> What I was replying to was your following statement on Mortens blog:
> 
> "Without the ability to draw native controls, developing user interfaces in 
> Qt becomes useless except for games with totally custom UI."
> 
> Which I simply can not leave uncommented. I _never_ said style does not 
> matter and I certainly never implied that it was something we should ignore.  
> What I did say was "It is not as bad as you make it out to be. " 
> 
> > So... why can't we use [UIView drawInRect:]? Qt 5 uses the same approach 
> > with NSScroller on OS X for drawing the Lion/ML scrollbars 
> > (10c6f015f45092040c281bb90a65179f598a00b1).
> > 
> > Native styling is important wherever you are. Not everything is a fancy web 
> > app or fancy QML game with custom graphics. Although I've not tested it 
> > extensively, Qt seems to have a completely functional style implementation 
> > for Android that look like native controls for the theme my phone uses, and 
> > the themes that other phones use, on those phones. We wouldn't want 
> > Qt/Android apps to look the same on every device, or like something else.
> 
> Have you actually seen a real-world QWidget based example compiled android 
> that truly looks and feels native? I am genuinely curious about how far this 
> style will get you and I haven't found anything resembling even a screen shot 
> on Google. Add this to the fact that Android actually has a public styling 
> API and Apple does not.
> 
> My point is that if we already know that we cannot give it a 100% native 
> interface using QStyle, it is not worth creating a half baked one using lots 
> of time, hacks and resources. Using Fusion style with some transient scroll 
> bar and retina fixes will make it nearly trivial to port existing QWidget 
> apps and layouts to IOS with a minimum of effort. The developers that do not 
> want to invest time into making a proper touch based QML interface are not 
> likely to care much about the look of their sliders and even if they do, 
> adding a few IOS-style buttons into the mix is not going to make that desktop 
> app suddenly look native. I find it more likely that it will enter the 
> infamous "uncanny valley" and generate pointless bug reports against their 
> apps.

Do we already know we cannot give it a 100% native look? I don't, and while I
am not saying we can, I would believe it is possible. Another option is using
a pixmap based style, or a mix of both. Well in the end, it will be a pixmap
based style anyway, except that if necessary, instead of rendering stuff on
the fly, we could use pre-loaded pixmaps together whenever it makes sense.

> 
> For Qt Quick, the situation is different. You can already make your app look 
> as native on IOS as you want to. Just download one of the many photoshop UI 
> kits and ship your app with those pixmaps. That is what a large part of the 
> IOS developers are already doing and one of the reasons Apple is so 
> conservative about changing it's look and feel. Apple has not cared about 
> their apps looking native for a long time. Have you seen their "Newsstand", 
> "Calendar", "Notes,", "Clock", "Photo Booth", "Reminders", "Game Center" and 
> "Calendar Apps"? If you haven't I suggest you look them up. There is hardly a 
> single native control to spot anywhere. Many of the best known apps on IOS 
> actually try hard to look _different_ in order to differentiate themselves 
> from the 500 million apps already out there. Native look and feel is _not_ a 
> silver bullet that makes an IOS app a success on the store. It might not even 
> be beneficial if the alternative looks better.
> 
> While I hope we would be able to ship a style for Qt Quick Controls that look 
> like IOS, I am intrigued by the idea of creating a good looking cross 
> platform design language for mobile Qt apps that look good on more than one 
> platform and doesn't even try to fake Apple. Look at what Google has done 
> recently. They have created a new google design aesthetic and use the same on 
> both Android and IOS. It is distinctly google. It does not use the native 
> look and feel, yet somehow they are still almost universally getting great 
> reviews on their fresh new aesthetics on IOS:
> 
> http://www.gizmodo.com.au/2012/12/google-maps-for-ios-review-maps-done-right/
> 
> http://www.netmagazine.com/features/big-question-what-do-you-think-googles-new-design-strategy
> 
> Developing this way, it would be possible to design good looking apps 
> cross-platform and give the developer complete control over the end product. 
> It would remove the need to test the app in a slow emulator that only runs on 
> mac. People will also not file bug reports about pixels that are slightly 
> off. They only do that when you try to fake something.

Another good example of iOS app that does not quite follow the native UI is
LinkedIn. I really like it, and I agree with you when you say some design
alternatives can actually look even better than the stock native style based
ones. But I am assuming this is not the point in this discussion - the point
is: is it possible to implement a QStyle based iOS style? I would go for yes.
Now, is there enough manpower and does it make sense? I don't know, then it's
up to whoever will (not) be doing it.

There might be a dozens of reasons not to go down that road - complexity, lack
of manpower or whatever may turn up. But assuming it will look half baked and
place that as a main reason makes me scratch my head.

-- 
Rafael Roquetto | rafael.roque...@kdab.com | Software Engineer
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - Qt Experts - Platform-independent software solutions

_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to