Ok my english is terrible, so i'll write this demo in spanish, but don't worry, all the code is en english.
Encontré un articulo muy interesante que cambió mi perspectiva para codear las interfaces de usuario de aplicaciones android. Siempre creí que la forma en la que separaba los colores, tamaños, texto y estilos de los componentes de mi pantalla en los archivos colors.xml, dimens.xlm, strings.xml y styles.xml era eficiente y evitaba que tenga código "hardcodeado", en cierta parte fue así, sin embargo terminé de leer este muy buen articulo, donde se lleva a otro nivel el concepto de buenas prácticas para codear interfaces de usuario.
Encuentra el artículo aquí: Mastering Android Themes
El objetivo de este demo es poder aplicar lo aprendido en el artículo Mastering Android Themes, codificando temas dinámicos para cambiar totalmente la apariencia de la aplicación en tiempo real. Ejemplos similares son las funcionalidades que tienen aplicativos como Waze o Google Maps para activar su "modo nocturno", en la cual la apariencia de la aplicación cambia totalmente inclusive aplicativos para utilizar libros electrónicos permiten cambiar su apariencia haciendo más cómoda la lectura de los usuarios en la noche.