Effortless switching from day to dusk

This article was written at the beginning of 2015. There is no more need for Dark Mode libraries because of the system solutions now available.

Almost everyone reads in colorful high-resolution LCD screens. Sadly they do not automatically adapt very well to diverse reading conditions in luminosity.

Although e-Ink screens being widely available, they are usually not embedded in versatile multi-purpose devices. Based on that I developed Ambience, an iOS library for light/dark transition based on the day and night mode in the iBooks app.

Display modes on iBooks for iOS 8.

Several apps on the App Store already do this based on local time, solar position and user preference. My initial proposal is to use the iPhone’s light sensor to determine the legibility limits in certain light conditions. Sadly iOS does not make such API’s publicly available.

Given that almost all iPhones have auto-brightness turned on because of energy efficiency, this information can be taken as a proxy of the actual environmental light conditions. Using this data would enable a prototype that could work most of the times.

There are three classes in which brightness could behave better:

Display modes and legibility proposed by Ambience.

The idea is not to simply change the color scheme. Saturation, brightness, line thickness; everything has to align with the style to improve legibility.

To make everything work as intended, I’m still studying the best implementation. It could be an extension to UIView, a class akin to TraitCollection, a notification system, or all of the above.