本記事の内容はalpha版のソースコードで確認しています。今後のアップデートで大きく変わる場合があります。 はじめに Jetpack Navigation 3(Nav3)の1.2.0-alpha021にて、画面間の結果受け渡しをサポートする新しいAPIとして Re...
Compose
はじめに タイポグラフィを考えるとき「アルファベットはフォントAを、日本語はフォントBを表示したい」という和欧混植の要望もあるでしょう。Jetpack Composeで開発しているAndroidアプリでも、この要望に応えたい場面があります。 しかし、FontFamily(...
はじめに Material Youは、Android 12で導入されたパーソナライズ機能であり、壁紙やユーザー設定に基づいてシステム全体のカラースキームを動的に生成します1。 この仕組みにより、アプリはユーザーの好みに合わせた配色を実現しやすくなりました。一方で、標準の ...
はじめに 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...