Alt, hvad vi indtil videre ved om Android Q's Dark Mode

Googles næste version af Android, Android 10 Q, vil inkludere en systemdækkende mørk tilstand. Hvordan vil apps i Android Q håndtere mørke temaer?

I vores første indlæg med detaljerede oplysninger om de ændringer, vi fandt fra den udviklede Android Q-build, vi fik, talte vi kort om den mørke tilstand, der har alle begejstret. For at opsummere kan Googles indbyggede mørke tilstand i Android Q aktiveres via en ny "Dark Mode"-indstilling i skærmindstillinger. Mørk tilstand kan enten være altid slukket, altid tændt eller aktiveret automatisk om natten og deaktiveret om morgenen. Mørk tilstand temaer SystemUI (lydstyrkepanel, strømmenu, panel med hurtige indstillinger, meddelelser), app Indstillinger og ramme (accentfarve osv.).

Ovenfor: Dark Mode i Android Q på Google Pixel 3 XL. Nedenfor: Let tema i Android Pie på Google Pixel 2 XL.

Google ønsker dog ikke kun, at systemelementer skal have mørkt tema. De arbejder også på at sikre, at alle deres førstepartsapps understøtter mørk tilstand, når brugeren drejer på kontakten. Google apps som

Beskeder, telefon, Kontaktpersoner, Nyheder, Spille spil, Youtube, Kort, og flere er blevet opdateret med brugervendte mørke tilstande, mens andre apps f.eks Google Chrome stryger stadig eventuelle knæk før Google I/O 2019. Google er også begyndt at opmuntre tredjeparts app-udviklere til det omfavne mørke temaer i deres apps, fordi virksomheden indrømmer, at de er gode til batterilevetid (i det mindste på smartphones med OLED-skærme).

For at hjælpe udviklere med at opdatere deres apps med understøttelse af Android Qs mørke tilstand, leverer Google en ny udviklermulighed, der ser ud til at tvinge alle apps til at skifte til mørk tilstand. Denne mulighed er ikke beregnet til brugere, der vil have alle tingene i mørk tilstand, fordi det er svært for systemet at vælge de rigtige farver til alle apps, der ikke har en indbygget mørk tilstand. Heldigvis har Google allerede lagt grunden til, at apps understøtter mørke tilstande, og det er der allerede mange apps ser fint ud med Android Qs tilsidesættelse af mørk tilstand aktiveret, selvom appen ikke har en brugervendt mørk tilstand skifte. Her er en samling af skærmbilleder fra 24 forskellige apps, der viser, hvordan de ser ud, når en mørk tilstand påtvinges dem ved hjælp af Android Q's tilsidesættelse af mørk tilstand. Ikke alle apper vil se så gode ud, som jeg vil vise dig nedenfor.

Implementering af Dark Mode i Android Q

I API-niveau 8 (Android 2.2 Froyo) introducerede Google -natkvalifikationer for ressourcer. Appudviklere kunne skifte mellem dag- og nattilstand ved at bruge setNightMode in UiModeManager. SetNightMode kræver dog, at enheden er i biltilstand eller i docket tilstand, hvis enheden er på API-niveau 22 eller derunder. AppCompat v23.2 bragte DayNight-implementeringen, der lader apps som Reddit-klienter automatisk skifte mellem deres dag- og nattemaer baseret på tidspunktet på dagen ved hjælp af AppCompatDeletegate.setDefaultNightMode(). API-niveau 28 (Android 9 Pie) lavet MODE_NIGHT_FOLLOW_SYSTEM (standardværdien af ​​setDefaultNightMode()) følger den brugerdefinerede systemindstilling i Indstillinger --> Udviklerindstillinger --> Nattilstand. Google er arbejder på forbedringer af DayNight API i AppCompat, især med hensyn til "hyppigt opståede problemer" såsom problemer med WebView. Endelig har Google aktiveret registrering af nattilstand og har blokerede apps uden MODIFY_DAY_NIGHT_MODE signatur/privilegeret tilladelse i Android Q's framework. Sidstnævnte ændring betyder, at apps ikke længere kan ændre den systemdækkende nattilstand, hvilket er det, der tillod en nylig beskeds-fejl at forvirre brugere i Android Pie.

Opdatering: An opdatering til AndroidX supportbibliotek vil gøre det nemmere for udviklere automatisk at aktivere mørke tilstande i deres apps, når enheden går i batterisparetilstand.

Tvinger mørk tilstand i Android Q

Applikationer som Snapchat, Slack, AOSP Email, AOSP Messaging, AOSP Dialer og mange flere har -night ressource qualifiers, selvom de ikke giver brugeren mulighed for at bruge appen med nattilstand. Andre apps, der ikke har hårdkodede natressourcekvalifikationer, som Facebook og Instagram, ser måske ikke godt ud med Android Q's tilsidesættende mørke tema slået til. Instagram ser fint ud, mens Facebook har brug for meget arbejde. Fra min test er den tilsidesættende nattilstand udviklerindstilling meget forskellig fra farveinversion i tilgængelighedsindstillinger - måske Google har til hensigt, at denne funktion skal hjælpe udviklere med at skabe mørke tilstande til deres apps, mens Android Q Developer Previews er igangværende. Vi ved dog ikke præcis, hvordan denne funktion fungerer, før kildekoden til Android Q er frigivet, eller Google udgiver dokumentation for den.

Tilsidesæt mørk tilstand i Android Q er mest ødelagt i apps, der bruger WebViews.

I "Prisen for en Pixel Color" foredrag præsenteret af Chris Banes og Alan Viverette fra Google, opfordrer duoen udviklere til at implementere mørke temaer ved at:

  • Brug af DayNight API i AppCompat. Aktiewidgets reagerer automatisk på ændringer i nattilstand, eller du kan også tilføje en kontakt i din app.
  • Anvendelse af overlejringstemaer dynamisk under kørsel ved at kalde getTheme().applyStyle(). Mere information kan findes i denne tidligere tale her.
  • Strukturering af din app til at stole på at bruge temaattributter som colorForeground, colorControlNormal, colorAccent osv.
  • Tilføjelse af -night qualifiers for dine ressourcer. -natkvalifikationer bør bruges til ressourcer, der har svært ved at udtrække temafarver.
  • Aktivering af den omvendte farvetilstand (Indstillinger --> Farver --> Farveinversion) for at få en hurtig idé om, hvordan din app vil se ud i mørk tilstand. Hvis du vil tage et skærmbillede af din app med omvendte farver, skal du være opmærksom på, at farveinversion vises ikke på skærmbilledet.

Ved udgivelsen vil Android Qs mørke tilstand udvides til førsteparts Google-apps, men vi håber, at tredjepartsapps hurtigt tager mørke temaer ind i deres apps. Desuden håber vi at se flere apps automatisk skifte til deres nattemaer, når brugeren aktiverer indstillingen for hele systemet. Lige nu er den eneste app, jeg har set, der automatisk skifter temaer, når Android Q's systemdækkende mørke tilstand er aktiveret, Google Kontakter. Vi vil se, hvordan tingene udvikler sig om et par måneder, når Android Q udgives, men til alle udviklere, der læser dette: omfavn den mørke side!

Med input fra LineageOS bidragyder Joey Rizzoli.