Tudo o que sabemos até agora sobre o modo escuro do Android Q

click fraud protection

A próxima versão do Android do Google, Android 10 Q, incluirá um modo escuro em todo o sistema. Como os aplicativos do Android Q lidarão com temas escuros?

Na nossa primeiro post detalhando as mudanças que encontramos na versão em desenvolvimento do Android Q que obtivemos, falamos brevemente sobre o modo escuro que deixou todos entusiasmados. Para recapitular, o modo escuro integrado do Google no Android Q pode ser ativado por meio de uma nova opção “Modo escuro” nas configurações de exibição. O modo escuro pode estar sempre desligado, sempre ligado ou ativado automaticamente à noite e desativado pela manhã. O modo escuro tem como tema o SystemUI (painel de volume, menu de energia, painel de configurações rápidas, notificações), aplicativo de configurações e estrutura (cor de destaque, etc.).

Acima: Modo escuro no Android Q no Google Pixel 3 XL. Abaixo: Tema Light no Android Pie no Google Pixel 2 XL.

No entanto, o Google não quer apenas que os elementos do sistema tenham um tema sombrio. Eles também estão trabalhando para garantir que todos os seus aplicativos originais suportem o modo escuro quando o usuário pressiona o botão. Aplicativos do Google como

Mensagens, Telefone, Contatos, Notícias, Jogar jogos, YouTube, Mapas, e mais foram atualizados com alternâncias de modo escuro voltadas para o usuário, enquanto outros aplicativos como Google Chrome ainda estão resolvendo quaisquer problemas antes do Google I/O 2019. O Google também começou a incentivar desenvolvedores de aplicativos terceirizados a abrace temas sombrios em seus aplicativos porque a empresa admite que eles são ótimos para a duração da bateria (pelo menos em smartphones com telas OLED).

Para ajudar os desenvolvedores a atualizar seus aplicativos com suporte para o modo escuro do Android Q, o Google está fornecendo uma nova opção de desenvolvedor que parece forçar todos os aplicativos a mudarem para o modo escuro. Esta opção não se destina a usuários que desejam colocar tudo no modo escuro, porque é difícil para o sistema escolher as cores certas para todos os aplicativos que não possuem um modo escuro nativo. Felizmente, o Google já lançou as bases para que os aplicativos suportem modos escuros, e já existem muitos aplicativos que fique bem com a opção de substituição do modo escuro do Android Q ativada, mesmo que o aplicativo não tenha um modo escuro voltado para o usuário alternar. Aqui está uma coleção de capturas de tela de 24 aplicativos diferentes mostrando como eles ficam quando um modo escuro é imposto a eles usando a alternância do modo escuro de substituição do Android Q. Nem todos os aplicativos terão uma aparência tão boa, como mostrarei a seguir.

Implementando o modo escuro no Android Q

Na API de nível 8 (Android 2.2 Froyo), o Google introduziu - eliminatórias noturnas para recursos. Os desenvolvedores de aplicativos podem alternar entre o modo diurno e noturno usando setNightMode em UiModeManager. No entanto, setNightMode exige que o dispositivo esteja no modo carro ou no modo encaixado se o dispositivo estiver no nível 22 da API ou inferior. AppCompat v23.2 trouxe a implementação DayNight, permitindo que aplicativos como clientes Reddit alternassem automaticamente entre seus temas diurnos e noturnos com base na hora do dia usando AppCompatDeletegate.setDefaultNightMode(). API de nível 28 (Android 9 Pie) fez com que MODE_NIGHT_FOLLOW_SYSTEM (o valor padrão de setDefaultNightMode()) seguisse a configuração do sistema definida pelo usuário em Configurações -> Opções do desenvolvedor -> Modo noturno. Google é trabalhando em melhorias na API DayNight no AppCompat, especialmente em relação a "problemas frequentemente encontrados", como problemas com WebView. Por último, o Google habilitou detecção de modo noturno e tem aplicativos bloqueados sem o MODIFY_DAY_NIGHT_MODE assinatura/permissão privilegiada na estrutura do Android Q. A última mudança significa que os aplicativos não podem mais modificar o modo noturno de todo o sistema, o que permitiu que um bug recente do Mensagens confundisse os usuários no Android Pie.

Atualizar: Um atualizar para o AndroidX A biblioteca de suporte tornará mais fácil para os desenvolvedores ativarem automaticamente os modos escuros em seus aplicativos quando o dispositivo entrar no modo de economia de bateria.

Forçando o modo escuro no Android Q

Aplicativos como Snapchat, Slack, AOSP Email, AOSP Messaging, AOSP Dialer e muitos outros possuem qualificadores de recurso -night, mesmo que não forneçam ao usuário uma maneira de usar o aplicativo no modo noturno. Outros aplicativos que não possuem qualificadores de recursos -night codificados, como Facebook e Instagram, podem ou não ficar bem com o tema escuro de substituição do Android Q ativado. O Instagram parece bom, enquanto o Facebook precisa de muito trabalho. Pelos meus testes, a opção de desenvolvedor do modo noturno de substituição é muito diferente da inversão de cores nas configurações de acessibilidade – talvez O Google pretende que esse recurso ajude os desenvolvedores a criar modos escuros para seus aplicativos enquanto as prévias do desenvolvedor Android Q são em andamento. Não saberemos exatamente como esse recurso funciona até que o código-fonte do Android Q seja lançado ou o Google publique a documentação para ele.

A substituição do modo escuro no Android Q é mais interrompida em aplicativos que usam WebViews.

No "Custo de uma cor de pixel" palestra apresentada por Chris Banes e Alan Viverette do Google, a dupla incentiva os desenvolvedores a implementar temas sombrios:

  • Usando a API DayNight no AppCompat. Os widgets de estoque respondem automaticamente às alterações no modo noturno, ou você também pode adicionar uma opção em seu aplicativo.
  • Aplicar temas de sobreposição dinamicamente em tempo de execução chamando getTheme().applyStyle(). Mais informações podem ser encontradas nesta palestra anterior aqui.
  • Estruturar seu aplicativo para usar atributos de tema como colorForeground, colorControlNormal, colorAccent, etc.
  • Adicionando qualificadores -night para seus recursos. Os qualificadores -night devem ser usados ​​para recursos que têm dificuldade de extrair cores do tema.
  • Ative o modo de cores invertidas (Configurações -> Cores -> Inversão de cores) para ter uma ideia rápida de como seu aplicativo ficará no modo escuro. Se quiser fazer uma captura de tela do seu aplicativo com cores invertidas, você deve estar ciente de que o a inversão de cores não aparecerá na captura de tela.

No lançamento, o modo escuro do Android Q se estenderá aos aplicativos originais do Google, mas esperamos que os aplicativos de terceiros adotem rapidamente temas escuros em seus aplicativos. Além disso, esperamos ver mais aplicativos mudando automaticamente para seus temas noturnos quando o usuário ativar a configuração de todo o sistema. No momento, o único aplicativo que vi que muda automaticamente os temas quando o modo escuro do sistema do Android Q está ativado é o Contatos do Google. Veremos como as coisas vão acontecer em alguns meses, quando o Android Q for lançado, mas para todos os desenvolvedores que estão lendo isto: abracem o lado negro!

Com contribuição do contribuidor do LineageOS Joey Rizzoli.