🔥
compose multiplatformで各OSごとに違うUIを実装したい
やりたいこと
各プラットフォームでUIを微妙に変えたい。
今回の自分の場合は、デスクトップではダイアログを表示したくなかった。
思い返すとチュートリアルで、それぞれのプラットフォーム名を表示した気がしたので
コードを見に行った。
手順
- 共通処理のなかで、各プラットフォーム名を取得する
- 各プラットフォームごとに処理を変える
プラットフォーム名の取得
共通フォルダの中にある App.kt内に
expect fun getPlatformName():String
を追加
各プラットフォームのApp.ktファイル(App.android.kt, App.ios.kt, App.js.kt, App.jvm.kt)に以下を追加
actual fun getPlatformName():String {
return "<それぞれのプラットフォーム名>"
}
これにより共通コード側からgetPlatformName()を呼ぶと、それぞれのプラットフォームの名前が返ってくる
各プラットフォームごとに処理を変える
まぁここは割愛します。
if分とかswitch文とか適当に使ってください。
Discussion