androidx.graphics:graphics-shapes:1.1.0 にて追加された SvgPathParser.parseFeatures() を使用した際、SVGのパスが正しくパースされず、形状が歪むバグに遭遇しました。 本記事では、その原因とコード上で解決す...
Kotlin
本記事の内容はalpha版のソースコードで確認しています。今後のアップデートで大きく変わる場合があります。 はじめに Jetpack Navigation 3(Nav3)の1.2.0-alpha021にて、画面間の結果受け渡しをサポートする新しいAPIとして Re...
はじめに Kotlin 2.4.0からexplicit backing fieldsがstableになりました1。本記事では、これまでの「よくあるコード」がどう変わるのか、その仕組みと注意点について紹介します。 今までの書き方とこれからの書き方 class / obje...
はじめに タイポグラフィを考えるとき「アルファベットはフォントAを、日本語はフォントBを表示したい」という和欧混植の要望もあるでしょう。Jetpack Composeで開発しているAndroidアプリでも、この要望に応えたい場面があります。 しかし、FontFamily(...
はじめに Jetpack Navigation 3(以下Nav3)は、Composeによる状態管理を前提に構築された新しい画面遷移ライブラリです。高い柔軟性とカスタマイズ性を備えています。 この記事では、Nav3による画面遷移の設計について、個人的な結論1に至るまでの試行...
はじめに Jetpack Navigation 3(以下Nav3)は柔軟性が高い一方で、実装方針が1つに定まっているわけではありません。そのため、実運用ではアプリの要件に応じて設計する場面が多く、実装が複雑になりやすいです。 本記事では、Nav3において状態の保持と描画を...
はじめに Composeで List を扱うとき、mutableStateListOf で生成される SnapshotStateList を利用することは多いでしょう。 しかし SnapshotStateList の toString / equals / hashCod...
はじめに KotlinにはContractsという、関数の内部動作に関するヒントをコンパイラに提供する機能があります。これにより、コンパイラはスマートキャストや変数の初期化判定をより賢く行えるようになります。 通常、コンパイラは関数の内部の実装まで深く解析しませんが、co...
本記事は、Kotlin Advent Calendar 2025の17日目の記事です。 はじめに Kotlin Multiplatform(KMP)でiOSアプリを開発する際、SwiftとKotlinの相互運用は避けて通れません。KMPは非常に便利ですが、トラブルなく使い...