Todo lo que sabemos hasta ahora sobre el Modo Oscuro de Android Q

La próxima versión de Android de Google, Android 10 Q, incluirá un modo oscuro en todo el sistema. ¿Cómo manejarán las aplicaciones en Android Q los temas oscuros?

En nuestro Primer comentario Al detallar los cambios que encontramos en la versión de Android Q en desarrollo que obtuvimos, hablamos brevemente sobre el modo oscuro que tiene a todos entusiasmados. En resumen, el modo oscuro integrado de Google en Android Q se puede habilitar a través de una nueva opción "Modo oscuro" en Configuración de pantalla. El modo oscuro puede estar siempre desactivado, siempre activado o activado automáticamente por la noche y desactivado por la mañana. El modo oscuro aplica temas a SystemUI (panel de volumen, menú de encendido, panel de Configuración rápida, notificaciones), aplicación de configuración y marco (color de acento, etc.).

Arriba: Modo oscuro en Android Q en Google Pixel 3 XL. Abajo: Tema claro en Android Pie en Google Pixel 2 XL.

Sin embargo, Google no sólo quiere que los elementos del sistema tengan un tema oscuro. También están trabajando para asegurarse de que todas sus aplicaciones propias admitan el modo oscuro cuando el usuario activa el interruptor. Aplicaciones de Google como

Mensajes, Teléfono, Contactos, Noticias, Jugar juegos, YouTube, Mapasy más se han actualizado con alternancias de modo oscuro orientadas al usuario, mientras que otras aplicaciones como Google Chrome Todavía estamos solucionando cualquier problema antes de Google I/O 2019. Google también ha comenzado a alentar a los desarrolladores de aplicaciones de terceros a abrazar temas oscuros en sus aplicaciones porque la compañía admite que son excelentes para la duración de la batería (al menos en teléfonos inteligentes con pantallas OLED).

Para ayudar a los desarrolladores a actualizar sus aplicaciones con soporte para el modo oscuro de Android Q, Google ofrece una nueva opción de desarrollador que parece obligar a todas las aplicaciones a cambiar al modo oscuro. Esta opción no está destinada a usuarios que desean utilizar el modo oscuro para todas las cosas, 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 sentó las bases para que las aplicaciones admitan modos oscuros y ya hay muchas aplicaciones que se ve bien con la opción de anular el modo oscuro de Android Q habilitada incluso si la aplicación no tiene un modo oscuro orientado al usuario palanca. Aquí hay una colección de capturas de pantalla de 24 aplicaciones diferentes que muestran cómo se ven cuando se les impone un modo oscuro usando la opción de anular el modo oscuro de Android Q. No todas las aplicaciones se verán tan bien, como te mostraré a continuación.

Implementación del modo oscuro en Android Q

En el nivel API 8 (Android 2.2 Froyo), Google introdujo -clasificatorios nocturnos para recursos. Los desarrolladores de aplicaciones podrían cambiar entre el modo día y noche usando setNightMode en Administrador de modo Ui. Sin embargo, setNightMode requiere que el dispositivo esté en modo automóvil o en modo acoplado si el dispositivo está en el nivel API 22 o inferior. AppCompat v23.2 trajo la implementación DayNight, permitiendo que aplicaciones como los clientes de Reddit cambien automáticamente entre sus temas diurnos y nocturnos según la hora del día usando AppCompatDeletegate.setDefaultNightMode(). El nivel de API 28 (Android 9 Pie) hizo que MODE_NIGHT_FOLLOW_SYSTEM (el valor predeterminado de setDefaultNightMode()) siguiera la configuración del sistema definida por el usuario en Configuración --> Opciones de desarrollador --> Modo nocturno. Google es trabajando en mejoras en la API DayNight en AppCompat, especialmente en lo que respecta a "problemas frecuentes", como problemas con WebView. Por último, Google ha habilitado detección de modo nocturno y tiene aplicaciones bloqueadas sin el MODIFY_DAY_NIGHT_MODE firma/permiso privilegiado en el marco de Android Q. Este último cambio significa que las aplicaciones ya no pueden modificar el modo nocturno de todo el sistema, que es lo que permitió que un error reciente de Mensajes confundiera a los usuarios en Android Pie.

Actualizar: Un actualizar hacia AndroidX La biblioteca de soporte facilitará a los desarrolladores habilitar automáticamente los modos oscuros en sus aplicaciones cuando el dispositivo entre en el modo de ahorro de batería.

Forzar el modo oscuro en Android Q

Aplicaciones como Snapchat, Slack, AOSP Email, AOSP Messaging, AOSP Dialer y muchas más tienen calificadores de recursos nocturnos, incluso si no brindan al usuario una forma de usar la aplicación con el modo nocturno. Otras aplicaciones que no tienen calificadores de recursos nocturnos codificados, como Facebook e Instagram, pueden verse bien o no con la anulación del tema oscuro de Android Q activada. Instagram se ve bien, mientras que Facebook necesita mucho trabajo. Según mis pruebas, la opción de desarrollador de anulación del modo nocturno es muy distinta de la inversión de color en la configuración de accesibilidad, tal vez Google tiene la intención de que esta función ayude a los desarrolladores a crear modos oscuros para sus aplicaciones mientras las vistas previas para desarrolladores de Android Q son en curso. Sin embargo, no sabremos exactamente cómo funciona esta función hasta que se publique el código fuente de Android Q o hasta que Google publique documentación al respecto.

Anular el modo oscuro en Android Q está más dañado en aplicaciones que usan WebViews.

En el "Costo de un color de píxel" charla presentada por Chris Banes y Alan Viverette de Google, el dúo anima a los desarrolladores a implementar temas oscuros de la siguiente manera:

  • Usando la API DayNight en AppCompat. Los widgets de stock responden automáticamente a los cambios en el modo nocturno, o también puedes agregar un interruptor en tu aplicación.
  • Aplicar temas de superposición dinámicamente en tiempo de ejecución llamando a getTheme().applyStyle(). Puede encontrar más información en esta charla anterior. aquí.
  • Estructurar su aplicación para que dependa del uso de atributos de tema como colorForeground, colorControlNormal, colorAccent, etc.
  • Agregar calificadores de noche para sus recursos. -Los calificadores nocturnos deben usarse para recursos que tienen dificultades para extraer colores del tema.
  • 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 desea tomar una captura de pantalla de su aplicación con colores invertidos, debe tener en cuenta que el La inversión de color no aparecerá en la captura de pantalla..

En el lanzamiento, el modo oscuro de Android Q se extenderá a las aplicaciones propias de Google, pero esperamos que las aplicaciones de terceros adopten rápidamente temas oscuros en sus aplicaciones. Además, esperamos ver más aplicaciones que cambien automáticamente a sus temas nocturnos cuando el usuario habilite la configuración en todo el sistema. En este momento, la única aplicación que he visto que cambia automáticamente los temas cuando el modo oscuro de todo el sistema de Android Q está habilitado es Contactos de Google. Veremos cómo resultan las cosas en un par de meses cuando se lance Android Q, pero a todos los desarrolladores que estén leyendo esto: ¡abracen el lado oscuro!

Con aportes del colaborador de LineageOS Joey Rizzoli.