Android İçin Karanlık Mod

En son güncellendiği tarih: May 30

Karanlık temalar uzun bir süredir Android tarafından uygulama bazlı destekleniyor. Fakat uygulamaların çoğunda bunun desteklendiğini söylemek mümkün değil.

Yakın zamanda gerçekleşen Google I/O 19 etkinliğinde Android Q ile birlikte artık yeni bir sistem ayarı olarak Karanlık Mod(Dark Theme)'un sunulacağı duyuruldu. Karanlık Mod ile beraber hem sistem UI için hem de uygulama tabanlı olarak karanlık bir temaya geçiş kolaylaşıyor. Bununla birlikte artık daha fazla uygulama için bu destekle karşılacağız diyebiliriz.

O halde Karanlık Mod'a yakından bir bakalım. :)


Neden Karanlık Mod Tercih Etmeliyiz?


Karanlık modu tercih etmemiz uygulamamızın karanlık ortamlarda gözlerimizi yormadan kullanılmasını sağlayacaktır.

Böylece uygulamamızın daha fazla kullanılmasını sağlayabiliriz.

Karanlık Mod kullandığınızda ekranda daha az piksel yanacak ve buna bağlı olarak güç kullanımında önemli ölçüde tasarruf sağlayacaktır. (Google I/O'da %60'lara varan bir güç tasarrufundan bahsediliyor.)

Son olarak ekranı karartırken gerekli kontrast oranını korunur. Böylece kullanıcı üzerindeki göz yorgunluğu etkisi azalır ve bir kullanım kolaylığı sağlar. Bu gibi sebeplerden dolayı artık Android Q ile birlikte yeni bir sistem ayarı olarak Karanlık Mod(Dark Theme) sunuldu. Yani artık cihazların ekran ayarları altında karanlık veya açık bir tema arasında seçim yapabilirsiniz.


Bu modlar arasında hızlı ayarlar üzerinden kolayca geçiş yapabilirsiniz. Cihazınız batarya tasarrufuna girdiğinde cihaz otomatik olarak Karanlık Mod'a geçecektir. Böylece mevcut batarya ile daha uzun bir deneyim sağlanır.


Karanlık mod sistem UI ile birlikte sistem genelinde bir ayar olduğundan diğer uygulamaları da kapsar. Ancak bu cihazda çalışan tüm uygulamalar için geçerli değildir. Sözgelimi yanda hızlı ayarlar üzerinden Karanlık Mod'a alınan cihaz için iki farklı uygulamanın tepkisini görebilirsiniz. Bu konuda uygulamaların karanlık mod desteği vermesi önemlidir.








Force Dark - Karanlığa Zorla


Karanlık Mod desteği vermenin en kolay yolu "Force Dark" özelliğini kullanmaktır. "Force Dark" özelliği ile uygulamamızı temel düzeyde Karanlık Mod'a uyarlayabiliyoruz. Bunu sağlamak için temanızda "forceDarkAllowed" seçeneğini true olarak ayarlamanız yeterli olacak.



Karanlık Mod'u ana temaya ekleyebileceğiniz gibi dilerseniz kullanmak istediğiniz Activityler için ek bir tema seçeneği olarak da ekleyebilirsiniz. Böylece sadece belirttiğiniz Activity üzerinde geçerli olacaktır. "Force Dark" özelliğini kullanmak kolaylık sağlıyor fakat ne yazık ki sadece Android Q ve üzerindeki sürümler için fayda sağlayacak. Bu nedenle önceki sürümlere destek sağlamak istiyorsak kendi özel karanlık temamızı oluşturmalıyız. Bunun bir diğer nedeni de kendi temamızı oluşturduğumuzda neyin nasıl görünmesi gerektiğini daha iyi yönetebiliriz.

Force Dark özelliği kullanılan bu örnekte soldaki tasarım esas alınarak sağdaki renkler otomatik olarak Android işletim sistemi tarafından belirlendi. Böylece Karanlık Mod desteği için ek bir icon ya da renk tanımlamamıza gerek kalmadı. Burada tasarımınıza uymadığını düşündüğünüz bir görüntü elde ederseniz android:forceDarkAllowed attribute'ünü kullanarak istediğimiz view üzerinde karanlığa zorlama seçeneğini kapatabiliriz.


Force Dark aynı zamanda WebView üzerinde çalışan websiteleri için de bir karanlık tema özelliği sağlıyor. Bu örnekte soldaki ekran görüntüsünde mobiler.dev için Force Dark tabanlı karanlık mod özelliğini görebilirsiniz.



Karanlık Mod'u Kullanmanın Doğru Yolu


Karanlık Mod'u destekleyen bir uygulama geliştirdiğimizde bunun en iyi yolu "Theme.AppCompat.DayNight" üzerinden genişletilmiş bir tema ile özel renkler ve iconlar kullanmaktır. Kendi özel temanızı oluşturmanın temelde iki faydası var. Böylece hem Android Q ve altındaki sürümleri desteklemiş olacaksınız hemde istediğiniz tema görünümüne sahip olacaksınız.




Kendi özel Karanlık Mod temanızı oluştururken karanlık mod drawables dosyalarınızı drawables-night klasörüne colors.xml, dimens.xml, styles.xml gibi values dosyalarınızı ise values-night içerisine eklemeniz yeterli olacaktır. Böylece sistem karanlık mod geçişlerinde belirlediğiniz icon, colors ve style setlerini kullanır.


Karanlık Mod'u sağlamak için basitçe "parent="Theme.AppCompat.DayNight.DarkActionBar"" üzerinden genişletilmiş bir tema yeterli olacaktır.



Sonuç olarak Karanlık Mod'u kullandığımızda yukarıdaki gibi bir görünüm elde edeceğiz. Soldaki ekran görüntüsünde Force Dark özelliğinin elevation üzerindeki etkisini gözlemleyebilirsiniz. Sağdaki ekran görüntüsü ise Karanlık Mod'a geçiş yaptığınızda özel olarak belirlediğiniz renkler ve iconların values-night ve drawable-night üzerinden sistem tarafından kullanıldığı örnektir.


Bu örneğin gerçeklendiği proje için;

Github: https://github.com/hasankucuk/DarkThemeSample


#android #darktheme #androidq #kotlin #googleio #androiddarkmode



Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
JetBrains Hakkında Detaylı Bilgi Alın

© 2020 by mobiler.dev

mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın