Googleova sljedeća verzija Androida, Android 10 Q, uključivat će tamni način rada za cijeli sustav. Kako će aplikacije u Androidu Q rukovati tamnim temama?
U našem prvi post Detaljno opisujući promjene koje smo pronašli iz verzije Android Q u razvoju koju smo dobili, ukratko smo govorili o tamnom načinu rada koji je sve oduševio. Da rezimiramo, Googleov ugrađeni tamni način rada u Androidu Q može se omogućiti putem nove opcije "Tamni način rada" u postavkama zaslona. Tamni način rada može biti uvijek isključen, uvijek uključen ili automatski omogućen noću i onemogućen ujutro. Tamni način tematizira SystemUI (ploča za glasnoću, izbornik napajanja, ploča s brzim postavkama, obavijesti), aplikaciju Postavke i okvir (boja naglaska, itd.).
Gore: Dark Mode u Androidu Q na Google Pixel 3 XL. Dolje: Svjetla tema u Android Pie na Google Pixel 2 XL.
Međutim, Google ne želi samo da elementi sustava budu mračni. Također rade na tome da sve njihove aplikacije prve strane podržavaju tamni način rada kada korisnik okrene prekidač. Googleove aplikacije poput
Poruke, Telefon, Kontakti, Vijesti, Igrati igre, YouTube, Karte, i još mnogo toga ažurirano je s preklopnicima tamnog načina rada okrenutim prema korisniku, dok druge aplikacije poput Google Chrome još uvijek otklanjaju nedostatke prije Google I/O 2019. Google je također počeo poticati programere aplikacija trećih strana da prigrliti mračne teme u svojim aplikacijama jer tvrtka priznaje da su izvrsne za trajanje baterije (barem na pametnim telefonima s OLED zaslonima.)Kako bi pomogao programerima da ažuriraju svoje aplikacije s podrškom za tamni način rada Androida Q, Google nudi novu opciju za razvojne programere koja, čini se, prisiljava sve aplikacije da prijeđu na tamni način rada. Ova opcija nije namijenjena korisnicima koji žele zatamniti sve stvari jer je sustavu teško odabrati prave boje za sve aplikacije koje nemaju izvorni tamni način. Srećom, Google je već postavio temelje za aplikacije koje podržavaju mračne načine rada i već postoji mnogo aplikacija koje dobro izgledaju s omogućenom opcijom nadjačavanja tamnog načina rada Androida Q čak i ako aplikacija nema tamni način okrenut prema korisniku prebaciti. Ovdje je zbirka snimaka zaslona iz 24 različite aplikacije koje pokazuju kako izgledaju kada im se nametne tamni način rada pomoću preklopnika za nadjačavanje tamnog načina rada Androida Q. Neće svaka aplikacija izgledati tako dobro kao što ću vam pokazati u nastavku.
Implementacija tamnog načina rada u Androidu Q
U API razini 8 (Android 2.2 Froyo), Google je predstavio -večernje kvalifikacije za resurse. Programeri aplikacija mogli bi se prebacivati između dnevnog i noćnog načina rada koristeći setNightMode in UiModeManager. Međutim, setNightMode zahtijeva da uređaj bude u automobilskom načinu rada ili u priključnom načinu rada ako je uređaj na API razini 22 ili nižoj. AppCompat v23.2 donio implementaciju DayNight, dopuštajući aplikacijama kao što su Reddit klijenti da se automatski prebacuju između dnevnih i noćnih tema ovisno o dobu dana koristeći AppCompatDeletegate.setDefaultNightMode(). Razina API-ja 28 (Android 9 Pie) učinila je da MODE_NIGHT_FOLLOW_SYSTEM (zadana vrijednost setDefaultNightMode()) slijedi korisnički definirane postavke sustava u Postavkama --> Opcije za razvojne programere --> Noćni način rada. Google je radi na poboljšanja DayNight API-ja u AppCompatu, posebno u vezi s "čestim problemima" kao što su problemi s WebViewom. Na kraju, Google je omogućio otkrivanje noćnog načina rada i ima blokirane aplikacije bez toga MODIFY_DAY_NIGHT_MODE potpis/privilegirano dopuštenje u okviru Androida Q. Posljednja promjena znači da aplikacije više ne mogu modificirati noćni način rada cijelog sustava, što je omogućilo nedavnu pogrešku u porukama da zbuni korisnike u Android Pie.
Ažuriraj: An Ažuriraj prema AndroidX knjižnica podrške olakšat će programerima da automatski omoguće tamne načine rada u svojim aplikacijama kada uređaj uđe u način rada za uštedu baterije.
Forsiranje tamnog načina rada u Androidu Q
Aplikacije kao što su Snapchat, Slack, AOSP Email, AOSP Messaging, AOSP Dialer i mnoge druge imaju kvalifikatore resursa -night, čak i ako korisniku ne pružaju način korištenja aplikacije s noćnim načinom rada. Ostale aplikacije koje nemaju tvrdo kodirane kvalifikatore noćnih resursa, poput Facebooka i Instagrama, mogu, ali i ne moraju izgledati dobro s uključenom tamnom temom nadjačavanja Androida Q. Instagram izgleda dobro, dok Facebook treba puno raditi. Iz mog testiranja, opcija za razvojne programere noćnog načina rada vrlo se razlikuje od inverzije boja u postavkama pristupačnosti—možda Google namjerava ovom značajkom pomoći programerima u stvaranju mračnih načina rada za svoje aplikacije dok su Android Q Developer Previews u tijeku. Ipak, nećemo znati kako točno ova značajka radi dok se ne objavi izvorni kod za Android Q ili dok Google ne objavi dokumentaciju za nju.
Nadjačavanje tamnog načina rada u Androidu Q najviše se kvari u aplikacijama koje koriste WebViews.
u "Cijena boje piksela" u razgovoru koji su predstavili Chris Banes i Alan Viverette iz Googlea, dvojac potiče programere da implementiraju tamne teme na:
- Korištenje API-ja DayNight u AppCompatu. Stock widgeti automatski reagiraju na promjene u noćnom načinu rada ili možete dodati i prekidač u svoju aplikaciju.
- Dinamička primjena tema preklapanja tijekom izvođenja pozivom getTheme().applyStyle(). Više informacija možete pronaći u ovom ranijem govoru ovdje.
- Strukturirajte svoju aplikaciju tako da se oslanja na korištenje atributa teme kao što su colorForeground, colorControlNormal, colorAccent itd.
- Dodavanje kvalifikacija za noćenje za vaše resurse. - noćni kvalifikatori trebali bi se koristiti za resurse iz kojih je teško izdvojiti boje teme.
- Omogućite način rada s obrnutim bojama (Postavke --> Boje --> Inverzija boja) da biste dobili brzi uvid u to kako će vaša aplikacija izgledati u tamnom načinu rada. Ako želite snimiti zaslon svoje aplikacije s obrnutim bojama, trebali biste biti svjesni da inverzija boja neće se pojaviti na snimci zaslona.
Pri izdavanju, mračni način rada Androida Q proširit će se na Googleove aplikacije prve strane, ali se nadamo da će aplikacije trećih strana brzo usvojiti tamne teme u svoje aplikacije. Nadalje, nadamo se da ćemo više aplikacija automatski mijenjati svoje noćne teme kada korisnik omogući postavku za cijeli sustav. Trenutačno, jedina aplikacija koju sam vidio koja automatski mijenja teme kada je omogućen mračni način rada Androida Q na cijelom sustavu su Google kontakti. Vidjet ćemo kako će se stvari odvijati za nekoliko mjeseci kada Android Q bude objavljen, ali svim programerima koji ovo čitaju: prihvatite mračnu stranu!
Uz doprinos suradnika LineageOS-a Joey Rizzoli.