はじめに 個人でAndroidアプリを開発していたとき、Google Playストア用のアイコンやスクリーンショットなどの画像アセットを用意するのが面倒だと感じました。 アプリのUIやデザインを変更するたびに、Figmaなどの外部ツール側も更新して、画像をエクスポートし...
Compose
はじめに Androidアプリを開発していると、ロゴ等のアニメーションを実現する方法の1つに AnimatedVectorDrawable があります。AnimatedVectorDrawable は公式にサポートされたアニメーションで、Android 12以降のスプラッ...
はじめに Roborazziを使ってComposeのスクリーンショットテスト(画像回帰テスト)を行う際、デフォルトではシステムバーが含まれません。 この記事では、テスト時に擬似的なシステムバーを描画し、スクリーンショットの対象に含める方法を紹介します。 なぜシステムバー...
はじめに スマホは画面の四隅が丸くなっています。一方で、Composable はデフォルトでは四角いです。画面遷移アニメーションを作っている時にその形状の差を埋めたいと考えました。これを実現するには、各画面の Composable も端末に合わせて形状を変更する必要があり...
はじめに Navigation 3(Nav3)の NavDisplay では、通常の戻るアニメーション(popTransitionSpec)と、予測型「戻る」(Predictive back)アニメーション(predictivePopTransitionSpec)を別々に...
はじめに Composeでは、remember、retain、rememberSaveable などの関数を用いて状態を保持できます。これらはそれぞれ生存期間や利用目的が異なりますが、中でも retain は、画面回転などの構成変更によるアクティビティの再作成時にも値が破...
はじめに 本記事では、ComposeでMarkdownを描画する方法について紹介します。既存のMarkdown描画ライブラリを使うのではなく、intellij-markdownによりMarkdownをパースし、Composeで描画するという手順を踏みます。 Markdow...
本記事の内容はalpha版のソースコードで確認しています。今後のアップデートで大きく変わる場合があります。 はじめに Jetpack Navigation 3(Nav3)の1.2.0-alpha021にて、画面間の結果受け渡しをサポートする新しいAPIとして Re...
はじめに タイポグラフィを考えるとき「アルファベットはフォントAを、日本語はフォントBを表示したい」という和欧混植の要望もあるでしょう。Jetpack Composeで開発しているAndroidアプリでも、この要望に応えたい場面があります。 しかし、FontFamily(...
はじめに Material Youは、Android 12で導入されたパーソナライズ機能であり、壁紙やユーザー設定に基づいてシステム全体のカラースキームを動的に生成します1。 この仕組みにより、アプリはユーザーの好みに合わせた配色を実現しやすくなりました。一方で、標準の ...