はじめに launchMode を singleTask や singleTop に設定し、アプリ起動中に通知やディープリンクから Activity を再利用する設計はよく使われます。このとき、新しく届いたパラメータは onNewIntent(intent) の引数から受...
Android
はじめに 個人でAndroidアプリを開発していたとき、Google Playストア用のアイコンやスクリーンショットなどの画像アセットを用意するのが面倒だと感じました。 アプリのUIやデザインを変更するたびに、Figmaなどの外部ツール側も更新して、画像をエクスポートし...
はじめに Androidアプリを開発していると、ロゴ等のアニメーションを実現する方法の1つに AnimatedVectorDrawable があります。AnimatedVectorDrawable は公式にサポートされたアニメーションで、Android 12以降のスプラッ...
はじめに Roborazziを使ってComposeのスクリーンショットテスト(画像回帰テスト)を行う際、デフォルトではシステムバーが含まれません。 この記事では、テスト時に擬似的なシステムバーを描画し、スクリーンショットの対象に含める方法を紹介します。 なぜシステムバー...
はじめに スマホは画面の四隅が丸くなっています。一方で、Composable はデフォルトでは四角いです。画面遷移アニメーションを作っている時にその形状の差を埋めたいと考えました。これを実現するには、各画面の Composable も端末に合わせて形状を変更する必要があり...
はじめに Navigation 3(Nav3)の NavDisplay では、通常の戻るアニメーション(popTransitionSpec)と、予測型「戻る」(Predictive back)アニメーション(predictivePopTransitionSpec)を別々に...
はじめに Composeでは、remember、retain、rememberSaveable などの関数を用いて状態を保持できます。これらはそれぞれ生存期間や利用目的が異なりますが、中でも retain は、画面回転などの構成変更によるアクティビティの再作成時にも値が破...
はじめに ライブラリの依存関係やOSSライセンス情報を抽出する際、既存の多機能なツールでは「ブラックボックスな処理が多い」「不要な処理まで巻き込まれる」といった課題があります。 本記事では、依存関係のPOMを参照しJSONを出力する実装を紹介します。なお、記事中にはソース...
androidx.graphics:graphics-shapes:1.1.0 にて追加された SvgPathParser.parseFeatures() を使用した際、SVGのパスが正しくパースされず、形状が歪むバグに遭遇しました。 本記事では、その原因とコード上で解決す...
本記事の内容はalpha版のソースコードで確認しています。今後のアップデートで大きく変わる場合があります。 はじめに Jetpack Navigation 3(Nav3)の1.2.0-alpha021にて、画面間の結果受け渡しをサポートする新しいAPIとして Re...