Jetpack Compose Academy · レッスン

コルーチン用のLaunchedEffect

コンポジションに紐付いたsuspend処理を開始します。

レッスン 1/413 ステップ

「コルーチン用のLaunchedEffect」はCoddyKit上の無料Jetpack Compose Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJetpack Compose Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Jetpack Compose Academyコースには全4レッスンが含まれています。

エフェクトはコンポジションの外で実行する

Composableは純粋であり、何度も実行されるべきです。ネットワーク呼び出しのような実際の処理が必要なときは、代わりにside effectハンドラーを使います。

LaunchedEffectを使う

LaunchedEffectは、コンポジション内の配置場所に紐付いたコルーチンでsuspendコードを実行します。起動時に1度だけ行う処理に最適です。🚀

コンポジションに入ると開始する

LaunchedEffectが初めてコンポジションに入ると、そのブロックを起動します。コンポジションから出ると、コルーチンは自動的にキャンセルされます。

LaunchedEffect(Unit) {
    loadProfile()
}

キーで再起動を制御する

最初の引数はkeyです。再コンポジションの間にkeyが変わると、古いコルーチンがキャンセルされ、新しいコルーチンが開始されます。

LaunchedEffect(userId) {
    user = fetchUser(userId)
}

Unitで1回だけ実行する

keyにUnit(またはtrue)を渡すと、エフェクトは再起動されません。Composableが表示されたときに1回だけ実行されます。

LaunchedEffect(Unit) {
    analytics.logScreenView()
}

Suspend呼び出しを利用する

ブロック内では、delayやRetrofitのリクエストなどのsuspend関数を自由に呼び出せます。コルーチンスコープは自動的に用意されます。

LaunchedEffect(Unit) {
    delay(2000)
    showSplash = false
}

本体で起動しない

Composableの本体でコルーチンを直接呼び出すのはバグです。本体は再コンポジションのたびに再実行されるため、処理が何度も起動されてしまいます。

キャンセルは自動的に行われる

ユーザーが別の画面へ移動してComposableが画面から離れると、Composeがコルーチンをcancelsします。手動の後片付けは不要で、リークも発生しません。

状態と組み合わせる

エフェクトでは通常、結果をstateに書き込み、UIを再描画させます。読み込んだデータを保存すれば、再コンポジションによって表示が更新されます。

var data by remember { mutableStateOf<List<Item>>(emptyList()) }
LaunchedEffect(Unit) { data = repo.load() }

複数のキーで複合的なトリガーに対応する

複数のキーを渡すこともできます。anyのキーが変わるとエフェクトが再起動するため、フィルター変更時の再取得などに便利です。

LaunchedEffect(query, sort) {
    results = search(query, sort)
}

典型的な読み込みパターン

一連の処理はレシピのように書けます。loadingをtrueにし、結果を待ってから保存します。Composeがcoroutineのライフサイクルを管理してくれます。

LaunchedEffect(id) {
    loading = true
    item = repo.get(id)
    loading = false
}

クイックチェック

再起動がどのように制御されるか考えてみましょう。

まとめ:LaunchedEffect

よくできました!LaunchedEffectはコンポジションに紐付いたsuspendコードを実行し、keyが変わると再起動し、Composableが離れると自動的にキャンセルされます。🎯

無料で開始

AI チューターと学ぶ Kotlin — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「コルーチン用のLaunchedEffect」レッスンは無料ですか?

はい。「コルーチン用のLaunchedEffect」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Jetpack Compose Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Jetpack Compose Academyコースには全4レッスンが含まれています。

「コルーチン用のLaunchedEffect」で何を学びますか?

コンポジションに紐付いたsuspend処理を開始します。 ブラウザで直接実行するハンズオンコードでJetpack Compose Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Jetpack Compose Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJetpack Compose Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「コルーチン用のLaunchedEffect」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJetpack Compose Academyレッスンでコードを書いて実行できますか?

はい。すべてのJetpack Compose Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. コルーチン用のLaunchedEffect
  2. イベント用のrememberCoroutineScope
  3. DisposableEffectとクリーンアップ
  4. derivedStateOfとsnapshotFlow
← Jetpack Compose Academyに戻る