Příští verze Androidu od Googlu, Android 10 Q, bude obsahovat celosystémový tmavý režim. Jak si aplikace v Androidu Q poradí s tmavými motivy?
V našem první příspěvek podrobně jsme popsali změny, které jsme objevili ve vývojovém sestavení Android Q, které jsme získali, a krátce jsme hovořili o tmavém režimu, který všechny nadchl. Abychom to zrekapitulovali, vestavěný tmavý režim Google v systému Android Q lze aktivovat pomocí nové možnosti „Tmavý režim“ v Nastavení zobrazení. Tmavý režim může být buď vždy vypnutý, vždy zapnutý, nebo automaticky zapnutý v noci a deaktivován ráno. Tmavý režim motivuje systémové uživatelské rozhraní (panel hlasitosti, nabídka napájení, panel Rychlé nastavení, oznámení), aplikaci Nastavení a rámec (barva zvýraznění atd.).
Nahoře: Tmavý režim v Androidu Q na Google Pixel 3 XL. Níže: Světlý motiv v Android Pie na Google Pixel 2 XL.
Google však nechce, aby systémové prvky byly pouze tmavé. Pracují také na tom, aby všechny jejich aplikace první strany podporovaly tmavý režim, když uživatel přepne přepínač. Aplikace Google jako
Zprávy, Telefon, Kontakty, Zprávy, Hrát hry, Youtube, Mapy, a další byly aktualizovány pomocí uživatelsky orientovaných přepínačů tmavého režimu, zatímco jiné aplikace mají rády Google Chrome před Google I/O 2019 stále dolaďují všechny chyby. Google také začal podporovat vývojáře aplikací třetích stran přijmout temná témata ve svých aplikacích, protože společnost přiznává, že jsou skvělé pro výdrž baterie (alespoň na chytrých telefonech s OLED displeji.)S cílem pomoci vývojářům aktualizovat jejich aplikace podporou tmavého režimu Android Q poskytuje Google novou možnost pro vývojáře, která zřejmě nutí všechny aplikace přejít do tmavého režimu. Tato možnost není určena pro uživatele, kteří chtějí všechny věci ztmavit, protože pro systém je obtížné vybrat správné barvy pro všechny aplikace, které nemají nativní tmavý režim. Naštěstí Google již položil základy pro aplikace podporující tmavé režimy a již existuje mnoho aplikací, které tyto režimy podporují vypadat dobře s možností přepsání tmavého režimu Android Q, i když aplikace nemá tmavý režim pro uživatele přepnout. Zde je sbírka snímků obrazovky z 24 různých aplikací, které ukazují, jak vypadají, když je na ně vnucen tmavý režim pomocí přepínače přepisování tmavého režimu Android Q. Ne každá aplikace bude vypadat tak dobře, jak vám ukážu níže.
Implementace tmavého režimu v systému Android Q
V úrovni API 8 (Android 2.2 Froyo) představil Google - noční kvalifikace pro zdroje. Vývojáři aplikací mohli přepínat mezi denním a nočním režimem pomocí setNightMode in UiModeManager. SetNightMode však vyžaduje, aby bylo zařízení v režimu auta nebo v dokovaném režimu, pokud je zařízení na úrovni API 22 nebo nižší. AppCompat v23.2 přinesl implementaci DayNight, která umožňuje aplikacím, jako jsou klienti Reddit, automaticky přepínat mezi svými denními a nočními motivy na základě denní doby pomocí AppCompatDeletegate.setDefaultNightMode(). Úroveň API 28 (Android 9 Pie) provedla MODE_NIGHT_FOLLOW_SYSTEM (výchozí hodnota setDefaultNightMode()) podle uživatelem definovaného nastavení systému v Nastavení --> Možnosti vývojáře --> Noční režim. Google je pracuje na vylepšení DayNight API v AppCompat, zejména pokud jde o „často se vyskytující problémy“, jako jsou problémy s WebView. Nakonec Google povolil detekce nočního režimu a má zablokované aplikace bez MODIFY_DAY_NIGHT_MODE podpis/privilegované oprávnění v rámci systému Android Q. Poslední změna znamená, že aplikace již nemohou upravovat noční režim v celém systému, což umožnilo nedávné chybě Messages zmást uživatele v Android Pie.
Aktualizace: An Aktualizace k AndroidX Knihovna podpory vývojářům usnadní automatické povolení tmavých režimů ve svých aplikacích, když zařízení přejde do režimu úspory baterie.
Vynucení tmavého režimu v Androidu Q
Aplikace jako Snapchat, Slack, AOSP Email, AOSP Messaging, AOSP Dialer a mnoho dalších mají kvalifikátory -noční zdroje, i když neposkytují uživateli způsob, jak aplikaci používat v nočním režimu. Jiné aplikace, které nemají napevno zakódované kvalifikátory nočních zdrojů, jako je Facebook a Instagram, mohou, ale nemusí vypadat dobře, když je zapnuté přepisování tmavého motivu Android Q. Instagram vypadá dobře, zatímco Facebook potřebuje hodně práce. Z mého testování je přepsání možnosti pro vývojáře v nočním režimu velmi odlišné od inverze barev v Nastavení usnadnění – možná Google má v úmyslu tuto funkci pomoci vývojářům vytvářet tmavé režimy pro jejich aplikace, zatímco Android Q Developer Previews jsou pokračující. Nebudeme však přesně vědět, jak tato funkce funguje, dokud nebude uvolněn zdrojový kód pro Android Q nebo dokud k němu Google nezveřejní dokumentaci.
Přepsání tmavého režimu v Androidu Q nejvíce nefunguje v aplikacích, které používají WebViews.
V "Cena za barvu pixelu“ přednese Chris Banes a Alan Viverette z Google, duo vybízí vývojáře, aby implementovali temná témata:
- Použití DayNight API v AppCompat. Stock widgety automaticky reagují na změny v nočním režimu, nebo můžete do své aplikace přidat také přepínač.
- Dynamické použití překryvných motivů za běhu voláním getTheme().applyStyle(). Více informací naleznete v tomto dřívějším povídání tady.
- Strukturování aplikace tak, aby se spoléhalo na použití atributů motivu, jako je colorForeground, colorControlNormal, colorAccent atd.
- Přidání -night kvalifikátorů pro vaše zdroje. -night kvalifikátory by měly být použity pro zdroje, které mají obtížné extrahovat barvy motivu.
- Povolením režimu obrácených barev (Nastavení --> Barvy --> Inverze barev) získáte rychlou představu o tom, jak bude vaše aplikace vypadat v tmavém režimu. Pokud chcete pořídit snímek obrazovky své aplikace s inverzními barvami, měli byste si být vědomi toho, že inverze barev se na snímku obrazovky nezobrazí.
Při vydání se tmavý režim Androidu Q rozšíří na aplikace Google první strany, ale doufáme, že aplikace třetích stran rychle přijmou temná témata do svých aplikací. Kromě toho doufáme, že více aplikací automaticky změní svá noční témata, když uživatel povolí nastavení v celém systému. Právě teď jediná aplikace, kterou jsem viděl a která automaticky mění motivy, když je povolen tmavý režim systému Android Q v celém systému, jsou Kontakty Google. Uvidíme, jak se věci vyvinou za pár měsíců, až vyjde Android Q, ale všem vývojářům, kteří to čtou: přijmi temnou stránku!
Se vstupem od přispěvatele LineageOS Joey Rizzoli.