Testing iOS 13 Dark Mode on your Xamarin Native or Forms iOS App
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…