はじめに Material Youは、Android 12で導入されたパーソナライズ機能であり、壁紙やユーザー設定に基づいてシステム全体のカラースキームを動的に生成します1。 この仕組みにより、アプリはユーザーの好みに合わせた配色を実現しやすくなりました。一方で、標準の ...
Compose
はじめに Jetpack Navigation 3(以下Nav3)は、Composeによる状態管理を前提に構築された新しい画面遷移ライブラリです。高い柔軟性とカスタマイズ性を備えています。 この記事では、Nav3による画面遷移の設計について、個人的な結論1に至るまでの試行...
はじめに Jetpack Navigation 3(以下Nav3)は柔軟性が高い一方で、実装方針が1つに定まっているわけではありません。そのため、実運用ではアプリの要件に応じて設計する場面が多く、実装が複雑になりやすいです。 本記事では、Nav3において状態の保持と描画を...
はじめに Composeで List を扱うとき、mutableStateListOf で生成される SnapshotStateList を利用することは多いでしょう。 しかし SnapshotStateList の toString / equals / hashCod...
はじめに Androidには、ユーザーが自分の好みや特性に合わせて設定できるシステムスタイルがあります。テーマ(ダークモード)、フォントスケール(フォントサイズ)、Material You(システムカラー)、色のコントラストなどが代表例です。これらはユーザーの「見やすさ」...
Composable関数内で、Hiltによって @Provides や @Binds で提供されたオブジェクトを直接的に扱いたい場面があります。 通常、Hiltを用いた依存性注入はViewModelを経由して行います。たとえば @HiltViewModel に依存性注入し、...
モバイルアプリにおいてユーザーへの情報伝達は非常に重要です。その中でも、短時間でユーザーにフィードバックを伝える際に便利なUI要素としてSnackbarがあります。 この記事では、ComposeにおけるSnackbarの基本から、画面などのスコープを意識したSnackbar...
はじめに Navigation Compose 2.8.0以降では、シリアル化可能なクラスを用いて、型安全に画面間でデータを渡せるようになりました。 本記事では、「画面遷移時の引数を ViewModel でどの受け取るか」に焦点を当て、4つの方法を紹介し比較します。すべて...
UriHandler とは UriHandler は androidx.compose.ui.platform が提供する、URI(Webページ、ファイル、外部アプリなど)を開くためのインターフェースです。Composable関数からは、以下のようにシンプルに呼び出せます...