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.
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:
- In the office, at a mall, at home, at the gym
- Walking in broad daylight
- Waking up in the middle of the night, in the movies
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.