Compose Multiplatformで使えるライブラリまとめ

2023/09時点でのCompose Multiplatformを利用した開発は、JetBrainsが提供する公式ライブラリの他にサードパーティ製のライブラリを組み合わせて、進めるのが一般的な方法になります。

Compose Multiplatformで利用するライブラリはKotlin Multiplatform対応のライブラリになるのですが、あまりにも数が多く探しづらいので、Compose Multiplatformを利用した開発にて使えるライブラリを本記事にまとめます。

Table of Contents

Kotlin

名前メモf
kotlinx.coroutinesKotlinの非同期処理実行ライブラリ
kotlinx.serializationKotlinのシリアライズ・デリシアライズ処理実行ライブラリ
kotlinx-datetimeKotlinで日付・時刻の取り扱いを楽にするライブラリ
KtorKotlinのWeb アプリケーションフレームワーク
アプリ開発では主にHTTPクライアントを作成するのに利用する

HTTP Client

名前メモ
ktrofitAndroidアプリ開発でよく使われるRetrofitにインスパイアされて作られたHTTPクライアントで、内部的にはKtorのHTTPクライアントが使われている
KtorKotlinのWeb アプリケーションフレームワーク
アプリ開発では主にHTTPクライアントを作成するのに利用する

UI Component

名前メモ
Compose-Rich-EditorWYSIWYGに対応したエディターライブラリ
bonsaiファイルツリーを表示することができるライブラリ
Calf同じコードベースでiOSとAndroidそれぞれのプラッフォームに適したUIコンポーネントを切り替えて表示してくれるライブラリ

Paging

名前メモ
multiplatform-paging
名前メモ
Voyger簡単に画面遷移ができるのでおすすめ、ダイアログなどのサポートはしていないので、ダイアログに関しては自作する必要がある。
Decompose
Decompose Router・Kotlin MultiplatformでParcelableを提供するessentyに依存しており、essentyでParcelableをKotlin2.0からサポートしないこともあるので、使い勝手は良いが移行リスクが高そう。
・Parcelableを利用する分、画面遷移を構築するのは楽だがセットアップがかなり面倒なライブラリ
PreCompose
Appyx

Resource

名前メモ
Libres文字列と画像リソースを管理できる。
lyricist文字列リソースのみ管理できる。画像リソースは公式が提供する機能があるのでそちらを使うのが無難である。
moko-resources文字列と画像リソースを管理できる。多機能ではあるが重厚すぎる。
compose.components.resources公式が提供するリソース管理の仕組み、またExperimentalなので機能はそこまで多くない

DI Container

名前メモ
koinKotzillaによって開発されているKotlin Multiplatform向けのDIフレームワーク
kojectKSPを利用しているKotlin Multiplatform向けのDIコンテナ
kodein
kotlin-inject

HTML Parser

名前メモ
ksoupCompose Multiplatform対応しているHTML Parserで、HTMLの構造解析を実施したいときにはこれが役立つ。

Image

名前メモ
coilv3からMultiplatform対応されて、Compose Multiplatformでも使えるようになる見込み
compose-imageloader2023/10時点で一応は読み込みStateを取得できるが、複雑でエラーハンドリングしにくいのが弱点
Kamel読み込みStateを取得できて、エラーハンドリングして呼び出すComposable関数を変更することが可能

Graph

名前メモ
koalaplot-core

License

名前メモ
AboutLibrariesCompose Multiplatform対応しているライブラリ情報を収集して表示してくれるライブラリ。だがCompose Multiplatform向けのUIはないので自作する必要がある。
licenseeCompose Multiplatform対応しているライブラリ情報を収集してくれるライブラリ。UIはないので自作する必要がある。

Service

名前メモ
SupabaseSupabaseはFirebaseに代わるサービスでKotlin Multiplatformをサポートしてくれている。

Logger

名前メモ
NapierFirebase Crashlyticsへのつなぎ込みをサポートしているロガーライブラリ。使い勝手はTimberに似ていそう。
Kermit

Icon

名前メモ
compose-iconsCompose Multiplatformで利用できるOSSプロジェクトのアイコン