システムのNight Modeの切り替え(方法:Settingsアプリ、API≧29)

投稿日:  更新日:

システムを対象としたNight Modeの切り替えは、SettingsアプリとUiModeManagerで行う方法がります。

ここでは、Settingsアプリを使った方法を説明します。

※Night Modeの切り替えの全体像は「Dark ThemeとNight Modeの関係」を参照

※環境:Android Studio Jellyfish | 2023.3.1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.compose.foundation:foundation 1.5.0
    Emulator 35.1.4-11672324
続きを読む

Dark ThemeとNight Modeの関係

投稿日:  更新日:

Android端末は自身の置かれている状況を認識して、ユーザーが使い易いように動作を変える仕組みを持ちます。

uiModeのNight(UI_MODE_NIGHT_YES:夜である)とDay(UI_MODE_NIGHT_NO:昼である) は、その「置かれている状況」の一つです。

NightとDayは古くから定義されているモードです。

API29で追加された機能の「Dark Theme」と結びついて、Night Modeの時はDark Themeにする使い方が定番になってしまいました。

その影響でしょうか…

Settingsアプリを見ると、Night Modeの影が薄れて、「Drak Themeにする・しない」が主題に作られています。

しかし、裏にNight Modeが存在していることを忘れてはいけません。

※環境:Android Studio Jellyfish | 2023.3.1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.compose.foundation:foundation 1.5.0
続きを読む

Android端末の時刻を変更するJUnitテストルール(Api23~34対応)

投稿日:  更新日:

スケジュール管理やアラーム機能を提供するアプリのテストで、端末の時刻を自由に変更できたら便利です。

ですので、端末の時刻を変更するテストルールを作成してみました。

この記事は、以前に投稿した「Android端末の時刻を変更するJUnitテストルール」を改訂したものです。

API23~34で動作するように、テストルールの記述を改良しています。

※環境:Android Studio Jellyfish | 2023.3.1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.test.uiautomator:uiautomator 2.3.0
    androidx.test.ext:junit 1.1.5
    androidx.test:rules 1.5.0
    junit:junit 4.13.2
続きを読む

Android端末の日付を変更するJUnitテストルール(Api23~34対応)

投稿日:  更新日:

スケジュール管理やアラーム機能を提供するアプリのテストで、端末の日付を自由に変更できたら便利です。

ですので、端末の日付を変更するテストルールを作成してみました。

この記事は、以前に投稿した「Android端末の日付を変更するJUnitテストルール」を改訂したものです。

API23~34で動作するように、テストルールの記述を改良しています。

※環境:Android Studio Jellyfish | 2023.3.1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.test.uiautomator:uiautomator 2.3.0
    androidx.test.ext:junit 1.1.5
    androidx.test:rules 1.5.0
    junit:junit 4.13.2
続きを読む

アプリ全体から参照可能なインスタンス(Application)

投稿日:  更新日:

Applicationクラスのインスタンスは、アプリが起動する際に作成されて、アプリが起動している限り存在し続けます。

しかも、全てのアプリケーションコンポーネントから参照可能なインスタンスです。

ですので、アプリ全体に関連する共有データを管理する場合に便利です。

例えば、「アプリの環境設定データ」などが考えられます。

今回は、このApplicationクラスの使い方を、まとめます。

※環境:Android Studio Iguana | 2023.2.1 Patch 2
    Kotlin 1.9.0
    Compose Compiler 1.5.1
続きを読む