En nuestra primera publicación que detalla los cambios que os encontramos en la compilación de Android Q en desarrollo que obtuvimos, hablamos brevemente sobre el modo oscuro que tenéis a todos entusiasmados. Para resumir, el modo oscuro incorporado de Google en Android Q se puede habilitar a través de una nueva opción de «Modo oscuro» en la Configuración de pantalla.
El modo oscuro puede estar siempre apagado, siempre activado o activado automáticamente por la noche y desactivado por la mañana. El modo Oscuro incluye los temas del SystemUI (panel de volumen, menú de energía, panel de Configuración rápida, notificaciones), aplicación de configuración y marco (color de acento, etc.).
Sin embargo, Google no solo quiere que los elementos del sistema tengan un tema oscuro. También están trabajando para asegurarse de que todas sus aplicaciones de origen admitan el modo oscuro cuando el usuario acciona el interruptor.
Las aplicaciones de Google, como Mensajes, Teléfono, Contactos, Noticias, Juegos, YouTube, Mapas y más, se han actualizado con las opciones de modo oscuro orientadas al usuario. Por su parte, otras aplicaciones como Google Chrome todavía están solucionando cualquier problema antes de Google I/O 2019.
Google también comenzó a alentar a los desarrolladores de aplicaciones de terceros a que incluyan temas oscuros en sus aplicaciones. ¿Por qué? La compañía admite que son excelentes para la duración de la batería; al menos en los teléfonos inteligentes con pantallas OLED.
Nueva Opción de Desarrollador
Para ayudar a los desarrolladores a actualizar sus aplicaciones con soporte para el modo oscuro de Android Q, Google está proporcionando una nueva Opción de Desarrollador. Esta parece forzar a todas las aplicaciones a cambiar al modo oscuro. Esta opción no está diseñada para usuarios que desean todo en modo oscuro. La razón es porque es difícil para el sistema elegir los colores correctos para todas las aplicaciones que no tienen un modo oscuro nativo.
Afortunadamente, Google ya estableció las bases para que las aplicaciones sean compatibles con los modos oscuros; y ya hay muchas aplicaciones que se ven bien con la opción de anulación del modo oscuro de Android Q habilitada. Esto incluso si la aplicación no tiene un interruptor de modo oscuro orientado al usuario.
Aquí hay una colección de capturas de pantalla de aplicaciones que muestran cómo se ven cuando se les impone un modo oscuro utilizando el interruptor de modo oscuro de anulación de Android Q. No todas las aplicaciones se verán tan bien, como te mostraré a continuación.
Implementando el Modo Oscuro en Android Q
En el nivel API 8 (Android 2.2 Froyo), Google introdujo los calificadores de la noche para los recursos. Los desarrolladores de aplicaciones podrían cambiar entre el modo diurno y nocturno utilizando setNightMode en UiModeManager. Sin embargo, setNightMode requiere que el teléfono esté en modo automóvil o en modo acoplado si el móvil está en el nivel de API 22 o inferior.
AppCompat v23.2 trajo la implementación de DayNight. Esta permite que las aplicaciones como los clientes de Reddit cambien automáticamente entre sus temas de día y de noche según la hora del día usando AppCompatDeletegate.setDefaultNightMode ().
El nivel API 28 (Android 9 Pie) hizo que MODE_NIGHT_FOLLOW_SYSTEM (el valor predeterminado de setDefaultNightMode ()) siga la configuración del sistema definida por el usuario en Configuración -> Opciones de desarrollador -> Modo nocturno.
Google está trabajando en mejoras a la API de DayNight en AppCompat. Especialmente en lo que respecta a «problemas frecuentes», como los problemas con WebView. Por último, Google ha habilitado la detección de modo nocturno y ha bloqueado aplicaciones sin el permiso de firma/privilegio MODIFY_DAY_NIGHT_MODE en el marco de Android Q. El último cambio significa que las aplicaciones ya no pueden modificar el modo nocturno de todo el sistema. Esto fue lo que permitió que un error reciente de los Mensajes confundiera a los usuarios en Android Pie.
Forzando el Modo Oscuro en Android Q
Las aplicaciones como Snapchat, Slack, AOSP Email, AOSP Messaging, AOSP Dialer y muchos más tienen calificadores de recursos para la noche. Esto incluso si no le proporcionan al usuario una forma de usar la aplicación con el modo nocturno. Otras aplicaciones que no tienen calificadores de recursos duros de código nocturno, como Facebook e Instagram, pueden o no verse bien con el tema oscuro de Android Q activado. Instagram se ve bien, mientras que Facebook necesita mucho trabajo.
En mis pruebas, la Opción de desarrollador del modo nocturno de anulación es muy distinta de la inversión de color en la Configuración de accesibilidad; quizás Google tenga la intención de que esta función ayude a los desarrolladores a crear modos oscuros para sus aplicaciones; mientras que las Vistas previas para desarrolladores de Android Q están en curso.
Sin embargo, no sabremos exactamente cómo funciona esta función hasta que se publique el código fuente de Android Q.
Alientan a los desarrolladores
En la charla «El costo de un color de píxel» presentada por Chris Banes y Alan Viverette de Google, el dúo alienta a los desarrolladores a implementar temas oscuros mediante:
1. Usando la API de DayNight en AppCompat. Los widgets de inventario responden automáticamente a los cambios en el modo nocturno. También podáis agregar un interruptor en tu aplicación.
2. Aplicar temas de superposición dinámicamente en tiempo de ejecución llamando a getTheme (). ApplyStyle (). Más información se puede encontrar en esta charla anterior aquí.
3. Estructurar su aplicación para utilizar atributos de tema como colorForeground, colorControlNormal, colorAccent, etc.
4. Agregando calificadores de noche para sus recursos, los calificadores de la noche deben usarse para recursos que tienen dificultades para extraer colores de tema.
5. Habilitando el modo de colores invertidos (Configuración -> Colores -> Inversión de color) para tener una idea rápida de cómo se verá su aplicación en modo oscuro. Si deseáis tomar una captura de pantalla de su aplicación con colores invertidos, debéis tener en cuenta que la inversión de color no se mostrará en la captura de pantalla.
Lo que esperamos del Modo Oscuro de Android Q
En el lanzamiento, el modo oscuro de Android Q se extenderá a las aplicaciones de Google propias; pero esperamos que las aplicaciones de terceros adopten rápidamente temas oscuros en sus aplicaciones. Además, esperamos ver que más aplicaciones cambien automáticamente a sus temas nocturnos cuando el usuario habilite la configuración de todo el sistema.
En este momento, la única aplicación que he visto que cambia de tema automáticamente cuando el modo oscuro de todo el sistema de Android Q está habilitado es Contactos de Google. Veremos cómo van las cosas en un par de meses cuando se lance Android Q; pero para todos los desarrolladores que están leyendo esto: ¡abrace el lado oscuro!
:)