アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

Jetpack Compose

【Jetpack Compose】テキストのベースラインとその他の要素の下部を合わせる

テキストのベースラインとアイコン等を下部に揃えます。 ベースラインではなくて、ただ単純に要素の下部を揃えたい場合は Row(verticalAlignment = Alignment.Bottom) で十分です。 テキストのベースラインを揃える まずテキストのベースラインを揃えるには …

【Jetpack Compose】横幅に応じてLayoutをScaleさせる

Usecase デザイン上、1行で表示させたいが、デバイスによっては横幅に収まらない。しかし改行をさせたくないものがあったので作りました。 上の様な感じではなく、下のように表示したい場合に使用します。 両方とも文字サイズ30spを使用し、表示できるデバイ…

【Jetpack Compose】@ComposableをInner関数で使用しないほうが良い

env composeOptions { kotlinCompilerVersion "1.5.10" kotlinCompilerExtensionVersion "1.0.0-rc01" } code 2つ目のViewを押すと called が2回呼ばれています。 TestViewをRoot関数の外に出すと1回だけになりました。 何故か更新の無いはずのRowの最初のVi…

【差分計算の仕組み】@Composableの引数にListを取ると差分計算がされない。 【Stable, Immutable】

このような動的に変更されるtimeがあります。 class TagViewModel(private val coroutineScope: CoroutineScope) { val time: MutableStateFlow<String> = MutableStateFlow("") init { coroutineScope.launch(Dispatchers.Default) { while (isActive) { time.value</string>…

【Android】Jetpack Composeの画像読み込みと加工のバットプラクティス

ネットワークからの画像読み込みと画像加工のベストプラクティス 前提 rc01が出ていますが、プレビュー用のライブラリのパッケージが移動して、Android Studioがプレビューに対応していない為、 1.0.0-beta09 を使用しています。 implementation "com.google…

Jetpack Compose Desktop 0.3->0.4のマイグレーション

自分の観測したものだけですが、記述します。 バージョン from: 0.3.0-build152 to: 0.4.0-build168 build.gradle.kts 0.3.0 compose.desktop { application { mainClass = "MainKt" nativeDistributions { targetFormats(TargetFormat.Dmg, TargetFormat.Ms…

フレームなしウィンドウをダブルクリックで全画面化する【Jetpack Compose Desktop】

バージョン情報 plugins { kotlin("jvm") version "1.4.30" id("org.jetbrains.compose") version "0.3.0-build150" } 本文 フレームなしウィンドウを作成してウィンドウを移動させるまで【Jetpack Compose Desktop】 の続きになります。 https://matsudampe…

フレームなしウィンドウを作成してウィンドウを移動させるまで【Jetpack Compose Desktop】

バージョン plugins { kotlin("jvm") version "1.4.30" id("org.jetbrains.compose") version "0.3.0-build150" } 目標 こんな感じのを作ります。 フレームを消す これだけです。 fun main() = Window( undecorated = true, ) { } 移動する これが大変です。…

Listを作成する【Jetpack Compose (Desktop)】

バージョン情報 0.3.0 で LazyColumnFor が無くなって、LazyColumnに統合されたようなので、そちらを使用します。 plugins { kotlin("jvm") version "1.4.30" id("org.jetbrains.compose") version "0.3.0-build150" } 古い情報はこちら。 https://matsudamp…

ネットワークからの画像読み込み【Jetpack Compose (Desktop)】

バージョン情報 plugins { kotlin("jvm") version "1.4.20" id("org.jetbrains.compose") version "0.2.0-build132" } 以下のようにImageBitmapに変換して返す関数を作成しました。ついでにキャッシュもしてみました。 object ImageUtil { private val cache…

@ComposableのライフサイクルとCoroutine【Jetpack Compose (Desktop)】

バージョン情報 plugins { kotlin("jvm") version "1.4.20" id("org.jetbrains.compose") version "0.2.0-build132" } 注釈 0.3.0-build150 CompositionLifecycleObserver は RememberObserver に名前が変わりました。 ライフサイクル ライフサイクルは以下…

Listを作成する(deprecate:0.2.0)【Jetpack Compose (Desktop)】

バージョン情報 plugins { kotlin("jvm") version "1.4.20" id("org.jetbrains.compose") version "0.2.0-build132" } 0.3.0 で LazyColumnFor が無くなって、LazyColumnに統合されたようなので、最新情報はコチラを見てください。 https://matsudamper.hate…

UIを組むためのDSLとデータの持ち方の考え方【Jetpack Compose (Desktop)】

バージョン情報 plugins { kotlin("jvm") version "1.4.20" id("org.jetbrains.compose") version "0.2.0-build132" } 考え方 普通のKotlinの書き方と全く異なります。Kotlin-Nativeで freeze というものがあるのと同じくらいには違います。Kotlin-NativeやK…

Jetpack Compose Desktopに入門【背景+スタートアップ編】

バージョン情報 plugins { kotlin("jvm") version "1.4.20" id("org.jetbrains.compose") version "0.2.0-build132" } Jetpack Composeに入門してみる Android開発者(Gradleが触れる) AndroidのJetpack Composeは触ったことがない 動機 モダンなJavaのGUI環…