Testing iOS 13 Dark Mode on your Xamarin Native or Forms iOS App
Stay proactive and keep your ratings high
With iOS 13 coming out around September 2019, millions will update their iPhones across the world and will be given the choice to view their phones in a “Dark” mode. Naturally, you have a lot of questions, so I will try to help you ensure that your app doesn’t provide a negative experience for your users.
Am I required to make any changes?
Although Apple’s official docs state that Dark mode should be supported, it has not made it mandatory for developers to make any changes to their apps, saying:
“All apps should support both light and dark interface styles…”
“Opt out only as needed”
So as a developer, your app will still be available on the App Store. If you want to make sure your users will not have a negative experience, you need to test it manually.
Important Points to Note
- The iPhone will not default to the older “Light” mode, so as soon as the iOS update is complete, users will be forced to choose between Light mode or Dark mode. This is definitely a source of concern, if your app is incoherent when the user turns to the Dark side.
- In the 5th beta version of iOS 13, the option to switch back to the Light mode is in two non-intuitive places. One is buried down in the Settings under “Display & Brightness”, which is annoying because the Settings app also contains a “General” category, that’s higher in the list which contains a wide variety of other settings. The second is when you hold the brightness toggle in the control center, and it shows “Appearance”. So once a user chooses the Dark mode, some users will stay that way just because of the hassle of switching back. (Edited thanks to Can)
- Customers can also set the Dark mode to go on between Sunset to Sunrise, or on a Custom Schedule. So developers & testers should keep in mind that Dark Mode could be activated while the app is being used, not just before app launch.
- If you upgrade a test device to iOS 13, it is not straightforward to downgrade to iOS 12.4. And it is also difficult to continue being able to use that test device for debugging your development app. So I would recommend using a device that you generally don’t use for debugging.
Testing the App manually
In order to test the Dark mode feature, you need an iOS 13 simulator or device. If you use a simulator, you won’t be able to install the App Store version of your app on it. You need to build a new version on the simulator, and that process is very long. So we instead advise using a device and updating that to iOS 13 beta.
Getting your iPhone ready
If you have decided to upgrade your test iPhone, don’t keep the important points from above in mind while choosing your device. To upgrade, you have to
- Go to Apple Downlaods from your iOS device & login with your developer account
- Scroll down to iOS 13 beta and tap on “Install Profile”.
- Occasionally, you have to manually install the profile from your phone by going to Settings->Profiles and installing the Apple Developer beta profile
- Restart your phone and go to Settings->General->Software Update & you should see the latest Beta version available.
- Hit Install and wait for about 30 minutes for the process to be complete.
What specifically to test
Once your iPhone has downloaded the latest OS and installed it, choose the Dark mode while setting up your phone. Then install your app from the App Store and make sure that you open the app in the Dark mode.
- Apart from making sure that every page of the app looks fine, test out all the text label and fields, and any custom controls to make sure that the contrast of the text and the background is not screwed up.
- Test out all the webviews because some websites detect the Dark mode and render text differently.
- Switching to iOS 13, you might also notice weird changes to layouts if you are using older versions of libraries for MVVM. Although, this has nothing to do with the Dark mode specifically.
If everything looks good so far, you don’t need to do anything!
What to Expect
Most likely, you will notice that your app still looks the same, that even though you are on the Dark mode, your app forces the Light mode when your app is open.
If it doesn't do so, forcing the device to only use the Light mode is one possible work around. But even though your app forces the Light mode, you should make a concerted effort to move your app to the Dark Side.