Running on a MacBook Pro with Retina display, the fonts look really crappy next to non-XOJO built apps. Even in fonts in the XOJO IDE look bad. Is this going to be fixed soon? Why are XOJO apps the only ones I see that have problems?
All Cocoa apps have to tell the OS that they are Retina-ready, and right now that’s up to you. Apps like AppWrapper help you do it, and there are instructions elsewhere in the forum. In a nutshell, you have to make sure that any graphics you draw are drawn at double-size, you have to provide 2X icons for your app and documents, and the app’s plist file needs some additional keys.
Right. If you want your app to be Retina-enabled, you have to do so by ensuring you have the appropriate graphics and that you enable retina in your Info.plist.
How to do this is covered in User Guide Book 4: Development, Chapter 2: Cross-Platform Development, Section 3: OS X Features in the Retina Displays topic.
I would think the folks at XOJO would want the XOJO application itself to look polished, but I guess that isn’t important to them.
It sure seems like for built-in classes which display text, ie. labels, text fields, text areas, list boxes etc., that it would make A LOT of sense for XOJO to handle that automatically, rather than expecting thousands of developers to each create custom code to draw text in labels, etc.
Looks like I’m the only one who thinks this is odd.
You are misunderstanding. The only thing you have to handle specially is your pictures including app/document icons. Once you make the plist additions that we’ve outlined, everything else is handled for you.
See my RegExRX (among many others) for an example of what a Xojo app looks like in Retina. I can assure you that the only thing I did differently was to include double-sized images for my icon.
This is true because Xojo uses native OS controls, so it’s actually the OS that handles their appearance, just like an app created in Xcode.
As Kem said, Xojo uses native OS controls (phew!) so it’s pretty much just the images you have to sort. This means providing two sets of images - one for non-retina and one for retina. This is exactly the same as you would have to do on Xcode, for example. Unfortunately, you do have to do a little more work with Xojo, to tell the app to display the correct image for the current display (whereas Xcode handles that for you) but it’s really not that bad.
In any case, Xojo have said this is an area they need to improve on - from memory, the CEO has a Retina MacBook Pro and is very aware of the need for improvements with this. But there’s nothing at all stopping your Xojo-made apps looking pretty on Retina displays, plenty of us have done it.
Almost everything - Correct me if I’m wrong but If you are drawing anything other but bitmaps into canvases you need extra effort to make them look retina-friendly.
Others can speak with more authority, but you certainly don’t have to do anything special about Labels, TextFields, Menus, etc., which appears to be the OP’s main concern.
The IDE is not retina aware as there is still plenty of work to do for the Xojo engineers until things like code editor and window editor work properly with retina graphics.
I cannot remember who posted this but here is how to get the built-in text to be nice on Retina (graphics you need to take care of yourself)…
- Select the Mac OS X build setting
- Insert > Build Step > Script (menu item)
- Select the new Script that was added under the Mac OS X build settings and add the following
Dim App As String = CurrentBuildLocation + "/""" + CurrentBuildAppName + ".app"""
Call DoShellCommand("/usr/bin/defaults write " + App + "/Contents/Info ""NSHighResolutionCapable"" YES")
Now when you build/debug for Mac OS X it will automatically update the plist file and give you Retina support
Thanks to everyone for the suggestions and comments! Kem, I downloaded your RegExRx app and the fonts looks great. Shao, thanks for posting that script. I will add it to my app.
William from Xojo wrote a nice blog posting about doing HiDPI apps on Windows