【Android】ComposeMultiplatformでの画面遷移

画面遷移の基礎です

ComposeViewControllerの役割

ComposeViewConrollerはiOS側からComposeの画面を呼び出すために必要です。

KMP経由で画面表示用のメソッドを呼び出し、引数としてコールバック処理を詰めます。そしてそのメソッドの戻り値としてComposeUIViewControllerを返すことでiOS側はUIViewControllerとして受け取ることができ、コールバック関数はComposableに渡すことができる!

Kotlin
fun AScreen(callback: () -> Unit) = ComposeUIViewController() { ComposeAScreen(callback: callback) }

これが基本の型かぁ

configureパラメータとは

ComposeViewControllerにはconfigureパラメータが存在します。型はクロージャになっていて画面が表示される前に設定しておきたい情報などを定義する場所です。

Daoからデータを取得するなど…

最後の引数はComposableを指定

最後の引数はトレイリングクロージャとなっています

Kotlin
@Composable () -> Unit

@Composableがついているとその関数の中ではComposableを呼び出すことが可能になります。

そのため実行されることでクロージャ内で定義したコンポーザブル関数が実行され、コンポーズされて画面にUIが表示される仕組みとなっています。