Kotlin Multiplatform (KMP) の使い方やお勧めのライブラリの紹介

kyamada,KotlinCompose

概要

先日、K2コンパイラを搭載したKotlin2.0がリリースされました。 K2コンパイラは、根本からマルチプラットフォームに対応し、コンパイル速度を 2 倍に高めるようです。

この記事では Kotlin Multiplatform (KMP) の使い方やお勧めのライブラリを紹介します。

Kotlin Multiplatform プロジェクト作成

以下のウィザードでプロジェクトを作成します。

https://kmp.jetbrains.com/ (opens in a new tab)

チュートリアル

公式の以下のチュートリアルが参考になります。

ナビゲーション

ナビゲーションライブラリはVoyager (opens in a new tab)を利用するのがお勧めです。タブナビゲーションなども実装出来ます。

また、Compose Multiplatform 1.6.10-beta01 から実験的にナビゲーションライブラリが追加されたので、そちらの方法でやることもできます。

参考: Navigation and routing (opens in a new tab)

アイコン

androidx.compose.material.icons (opens in a new tab)に用意されているアイコンであれば、以下のように使用できます。

Icon(Icons.Default.PlayArrow, contentDescription = "play")

画像が用意されていない場合は、commonMain/composeResources/drawable ディレクトリ以下に、vector形式のxmlを配置すれば使用できます。

vector形式のxmlは以下の方法で作成できます。

  1. AndroidStudioで androidMain/res/drawable ディレクトリを右クリック > New > Vector Asset
  2. Asset Typeを Clip Artにして、適当なClip Artを選択して作成する。
  3. xmlファイルが作成されるので、commonMain/composeResources/drawable 以下に移動する。

そして、以下のように使用します。

Icon(painterResource(Res.drawable.text_to_speech), contentDescription = "text_to_speech")

ファイル操作

Okio (opens in a new tab)を使うとsharedからファイルの操作が可能です。 zipの解凍も可能ですが、zip圧縮はできません。

ネットワーク

ネットワークライブラリは、チュートリアル (opens in a new tab)でも紹介されている Ktor (opens in a new tab)がおすすめです。

データベース

Google製のRoom (Kotlin Multiplatform) (opens in a new tab)がおすすめです。

SharedPreferences, NSUserDefaults

私は russhwolf/multiplatform-settings (opens in a new tab) というライブラリで共通化しています。

© 品川アプリ.RSS