With today’s leak of a brief video showing Xcode 10 running on macOS 10.14, many were quick to notice that the new version of macOS has a “Dark Appearance” feature. And it seems logical to assume that, if macOS is getting it, then iOS will, too.
But upon a little further investigation, I noticed a crucial detail that implies iOS might well not be getting the same “Dark Appearance” feature.
First look at the first photo in the linked tweet. On the right-hand side of the Xcode window, we see a storyboard, which developers know allows one to visually lay out the user interface instead of creating everything in code. And in Xcode 9, Apple added a feature for storyboards where you can view how your app’s user interface changes based on certain “traits” by using a bar at the bottom.
For macOS, this is making its first appearance in Xcode 10 because there was no real concept of traits before now. It’s not like you can rotate your Mac into portrait orientation with ease like you can an iPhone or iPad, for example.
So, there’s a trait for “appearance”—light or dark. We also know that UIKit already supports a trait for “appearance” because tvOS, which uses UIKit just like iOS does, uses that to enable a system-wide dark mode in first- and third-party apps. It’s UITraitCollection.userInterfaceStyle, which can return .light or .dark. This is available on tvOS only, not iOS, because Apple has (pending Monday’s keynote) chosen not to implement it on iOS. So for a tvOS app, the trait bar looks like this:
Now, many people have taken the dark theme of the iOS app shown in the third image in the linked tweet to imply that iOS will be getting a dark mode, too. Not so fast. Look at that same bar for traits seen at the bottom of the left-hand side of the Xcode window in the third image.
We see options for device and orientation, which modify the size classes that determine what layout an app should display. (For iPads, it also shows an option where you can account for features like Split View.) We do not see options for the user interface style like on tvOS or macOS.
That’d mean that the app has a dark user interface, but that has nothing to do with any system-level iOS setting, just like some apps already do (for example, Stocks and FaceTime).
Out of curiosity I decided to check to see what happens if the displayed view options extend beyond the viewable width of the bar. They just extend off the edge, so it’s not that Apple is hiding additional controls that can’t be displayed due to the width (unless they’ve changed that behavior in Xcode 10).
TL;DR: Apple’s little leak earlier today suggests that iOS 12 might not get a dark mode. Not saying a dark mode for iOS definitely won’t happen come Monday, but I am saying that you might not want to get your hopes up too high.
But upon a little further investigation, I noticed a crucial detail that implies iOS might well not be getting the same “Dark Appearance” feature.
First look at the first photo in the linked tweet. On the right-hand side of the Xcode window, we see a storyboard, which developers know allows one to visually lay out the user interface instead of creating everything in code. And in Xcode 9, Apple added a feature for storyboards where you can view how your app’s user interface changes based on certain “traits” by using a bar at the bottom.
For macOS, this is making its first appearance in Xcode 10 because there was no real concept of traits before now. It’s not like you can rotate your Mac into portrait orientation with ease like you can an iPhone or iPad, for example.
So, there’s a trait for “appearance”—light or dark. We also know that UIKit already supports a trait for “appearance” because tvOS, which uses UIKit just like iOS does, uses that to enable a system-wide dark mode in first- and third-party apps. It’s UITraitCollection.userInterfaceStyle, which can return .light or .dark. This is available on tvOS only, not iOS, because Apple has (pending Monday’s keynote) chosen not to implement it on iOS. So for a tvOS app, the trait bar looks like this:
Now, many people have taken the dark theme of the iOS app shown in the third image in the linked tweet to imply that iOS will be getting a dark mode, too. Not so fast. Look at that same bar for traits seen at the bottom of the left-hand side of the Xcode window in the third image.
We see options for device and orientation, which modify the size classes that determine what layout an app should display. (For iPads, it also shows an option where you can account for features like Split View.) We do not see options for the user interface style like on tvOS or macOS.
That’d mean that the app has a dark user interface, but that has nothing to do with any system-level iOS setting, just like some apps already do (for example, Stocks and FaceTime).
Out of curiosity I decided to check to see what happens if the displayed view options extend beyond the viewable width of the bar. They just extend off the edge, so it’s not that Apple is hiding additional controls that can’t be displayed due to the width (unless they’ve changed that behavior in Xcode 10).
TL;DR: Apple’s little leak earlier today suggests that iOS 12 might not get a dark mode. Not saying a dark mode for iOS definitely won’t happen come Monday, but I am saying that you might not want to get your hopes up too high.
Last edited: