コルーチン用のLaunchedEffect
コンポジションに紐付いたsuspend処理を開始します。
「コルーチン用の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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- コルーチン用のLaunchedEffect
- イベント用のrememberCoroutineScope
- DisposableEffectとクリーンアップ
- derivedStateOfとsnapshotFlow