Coroutine:Produce

投稿日:  更新日:

KotlinのコルーチンAPIは「コルーチン間でメッセージを送受信する仕組み」を提供しています。

Channel、Produce、Flow、SharedFlow、StateFlowなどです。

これらは、「メッセージを送受信する」という本命の動作は変わりませんが、特徴や違いを持ちます。

プログラミングで利用する際は、特徴や違いを理解して、使い分けが必要になります。

ですので、各々を比較しつつ、まとめました。

この記事は「Produce」について、まとめたものです。

※環境:Android Studio Koala Feature Drop | 2024.1.2
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    org.jetbrains.kotlinx:kotlinx-coroutines-android 1.7.3
    org.jetbrains.kotlinx:kotlinx-coroutines-core 1.7.3
続きを読む

Android EmulatorでTalkBackを使う

投稿日:  更新日:

Android Emulator(AVD:Android Vertual Device)はTalkBackが使用できません。

これは、デフォルトでTalkBackがインストールされていないためです。

エミュレータにTalkBackをインストールし、使えるようにする方法を紹介します。

※環境:Android Studio Koala | 2024.1.1 Patch 1
    Emulator version 35.1.4-11672324
    Android version 14.0 – API 34
続きを読む

Compose UI:LazyRow

投稿日:  更新日:

Jetpack composeは、アプリ開発に必要な一通りのUIコンポーネントをライブラリで提供しています。

そのライブラリ中のLazyRowについて、構成や使用方法などをまとめます。

※環境:Android Studio Koala | 2024.1.1 Patch 1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.compose.foundation:foundation 1.6.8
続きを読む

Compose LazyColumn:ListStateによる再Composeを回避

投稿日:  更新日:

ある成果物の開発を進めるに時に、「先に問題へ対応する」と「後で問題へ対応する」では、後者の方が難易度は高いです。

開発は進むにつれて周辺との因果関係が複雑化ます。全体に影響を与えない形で問題へ対応することが、難しくなるからです。

不要な再Composeを回避する対応も同じだと思います。

ですので、発生源が明確で不要な再Composeは、コーディングの段階で潰しておくべきです。

ただし、不要な再Composeの発生源を知らなければ出来ません。

ここで紹介するListStateは、不要な再Composeの発生源の一つです。

※環境:Android Studio Koala | 2024.1.1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.compose.foundation:foundation 1.6.8
続きを読む

Compose LazyColumn:List型入力による再Composeを回避

投稿日:  更新日:

ある成果物の開発を進めるに時に、「先に問題へ対応する」と「後で問題へ対応する」では、後者の方が難易度は高いです。

開発は進むにつれて周辺との因果関係が複雑化ます。全体に影響を与えない形で問題へ対応することが、難しくなるからです。

不要な再Composeを回避する対応も同じだと思います。

ですので、発生源が明確で不要な再Composeは、コーディングの段階で潰しておくべきです。

ただし、不要な再Composeの発生源を知らなければ出来ません。

ここで紹介するList型入力は、不要な再Composeの発生源の一つです。

※環境:Android Studio Koala | 2024.1.1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.compose.foundation:foundation 1.6.8
    kotlinx.collections.immutable 0.3.7
続きを読む