為さねば成らぬ

retia.verno@gmail.com

useIRとは一体何か

課題

Jetpack Composeを利用する際に、kotlinOptionsに useIR を設定する必要がある。

    kotlinOptions {
        useIR = true
    }

これは何を表すのか。

調査

https://kotlinlang.org/docs/whatsnew14.html#unified-backends-and-extensibility

intermediate representation、つまり中間表現のこと。

Kotlinには最近では Kotlin/JVM Kotlin/JS Kotlin/Native があって、歴史的に前2つは別々に開発されてきたのでコードの多くは別になっていた。 対して Kotlin/Native はKotlinの中間表現でビルドされたインフラものに基づいており、前者2つもこのIRにmigrateしていく\。 3つを同じIRのバックエンドで統一できれば多くの機能追加や最適化、バグフィクスが同時に出来るようになる。

Jetpack ComposeはコンパイラプラグインにこのIRを既に使っている。