Development

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

Katz

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

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

Kotlin

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

HTTP Client

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

UI State Management

名前メモ
Circuit
Rin
molecule

UI Component

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

Paging

名前メモ
multiplatform-paging

Navigation

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

Resource

名前メモ
Multiplatform resources公式が提供するリソース管理の仕組み。基本はこれを使うで問題ないはず。機能に不足があれば以下のライブラリを試す。
Libres文字列と画像リソースを管理できる。
lyricist文字列リソースのみ管理できる。画像リソースは公式が提供する機能があるのでそちらを使うのが無難である。
moko-resources文字列と画像リソースを管理できる。多機能ではあるが重厚すぎる。

Storage

名前メモ
KStore
multiplatform-settings

DI Container

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

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プロジェクトのアイコン
ABOUT ME
Katz
Katz
Androidエンジニア
AndroidエンジニアをやっているKatzです。最近はKotlin Multiplatformを中心にやっています。経歴やお仕事の依頼については、私のプロフィールに詳細を記載していますので、ご確認ください。
記事URLをコピーしました