カテゴリー

Androidアプリ (2 / 2)

Flutter Hot Reloadが Touch Barに表示されない時の対処法 【MacBook Pro】【Flutter】【Android Studio】

2021/04/04・Androidアプリ

Android StudioでTouch Barをカスタム Android Studio、もといIntelliJ IDEA(Android Studioのベースソフト)にはTouch Barをカスタマイズする機能が搭載されています。 軽く方法を解説しますと、 ⌘ + , でSettingsを開く 「Appearance & Behavior」→「Menus and Toolbars」→「Touch Bar」の中身を編集 と言う感じでできます。(⌘との同時押しなどで機能するフォルダーもあるため、よくフォルダー名を見て編集してください) 私は普段Flutterでアプリ開発をしているので、Flutter Hot ReloadがTouch Barにあるとかなり便利です。そこで、「Default」→「Touch Bar Run/Debug Actions」に「Flutter Hot Reload」を追加しようとしたわけです。 しかし表示されません。 明らかに追加されていますが、 上のように、Hot Reloadが表示されません。 というわけで、対処法を作りました。 Touch BarにHot Reloadを表示させるには 結論から言うと、直接表示させることはできません。いくら試しても出てきませんでした。なので、回り道をして別のアプローチで登録します。 手順1. キーマップ設定の確認 ここでは、ショートカットキーとマクロを利用する方法で実現します。 まず、⌘ + , を押して設定画面を開き、「Keymap」をクリックします。その中の検索ボックスで「Hot Reload」と検索します。すると「Flutter Hot Reload」が表示されるはずです。ここで、日本語配列のMacだと注意。日本語配列のMacには 「\」キーが存在しません 。そのため、初期設定のショートカットキーは使えません。 「Flutter Hot Reload」をダブルクリックし、「Remove ⌘\」をクリックして削除し、再度ダブルクリックし「Add Keyboard Shortcut」をクリックします。そして⌘キーと、Windowsキーボードでは「\」のある「_」キーの同時押しに設定します。 手順2. マクロの作成 次はマクロを作成します。Edit→Macros→Start Macro Recordingをクリックし、先程のショートカットキーを同時押しし、右下に表示される停止ボタン(赤い四角)をクリックします。 マクロ名を入力します。「Flutter Hot Reload」としてください。 手順3. アイコンのダウンロード このままマクロをTouch Barに登録すると「Flutter Hot Reload」という文字になってしまって格好悪いし分かりにくいので、それっぽいアイコンをダウンロードします。 以下のサイトから「lightning」で検索にかけて、稲妻アイコンをSVG形式でダウンロードしてください。(右下) https://jetbrains.design/intellij/resources/icons_list/ ダウンロード後は解凍してください。 手順4. Touch Barへの登録 ⌘ + , →「Appearance & Behavior」→「Menus and Toolbars」→「Touch Bar」(右側の画面)→「Default」→「Touch Bar Run/Debug Actions」→「Run」をクリックし、上部の「+」→「Add Action...」をクリックします。 「Macros」→「Flutter Hot Reload」をクリックし、下部の「icon:」の右側のフォルダーアイコンをクリックし、ダウンロードしたアイコン(lightning.svg)を選択して「Open」をクリックし、「Set Icon」をクリックし、OKをクリックします。最後に設定画面でOKをクリックして完了です。 上のようになりました。位置を変更するには、設定上部の上下三角アイコンをクリックして並び替えます。 環境について 今回の説明で利用した環境です。 Android Studio 4.2 beta6 Material Theme UIプラグイン導入済み Flutter Plugin 55.0.2

【備忘録】カスタム通知でAndroid 10のダークテーマに対応させる方法

2020/04/19・Androidアプリ

困ったこと Android 10は、ダークテーマをオンにすると背景と文字色が反転し、黒基調のカラーになります。通知も黒基調の色になるのですが、カスタム通知を作る時に少し困りまして… 普通、背景色と文字色などはそれぞれ以下の値で呼び出せます。 ?android:attr/colorBackground ?android:attr/colorForeground しかし、これらは通知のRemoteViewでは**機能しません。**かなり困った。 解決法 文字色の場合は、style属性に専用のスタイルを設定してあげると治ります。 style="@style/TextAppearance.Compat.Notification.Line2" Vectorは諦めて白と黒の中間色にします。 android:tint="?android:attr/textColorSecondary" ※ダークテーマかどうかで色が変わるわけではない

【Android】ProgressDialogがDeprecatedになっている理由、正しく理解してます?

2020/01/03・Androidアプリ

Androidプログラミングコラム第2回です。多分 今回は、Androidでユーザーに処理を待ってもらうために出すProgressDialogについて取上げます。 ProgressDialogについて ProgressDialogは、結構前から非推奨(Deprecated)となっています。にも関わらず、私も含め多くのアプリでこのProgressDialogを見かけます。おそらく、実装が楽なんでしょうね。何も考えず表示すればいいだけなので。 通常、Deprecatedになるものといえば、代替の仕組みやメソッド、定数などが出来たり、サポート外になったものなどですよね。しかし、ProgressDialogがDeprecatedとなっている理由は少し変わっています。 ProgressDialogがDeprecatedとなっている理由 っていうか、非推奨である理由は明記するための仕組み(Javadoc)がちゃんとあるので、普通に見ることができます。 そこには、こういう記載が。 ProgressDialog is a modal dialog, which prevents the user from interacting with the app. Instead of using this class, you should use a progress indicator like [ProgressBar](https://developer.android.com/reference/android/widget/ProgressBar.html), which can be embedded in your app's UI. Alternatively, you can use a notification to inform the user of the task's progress. (訳:ProgressDialogはモーダルダイアログであり、ユーザーのアプリ操作を妨げます。このクラスを使うのではなく、ProgressBarのようなUIに埋め込めるプログレスインジケータを使用するべきです。あるいは、タスクの進行状況を知らせるためにNotificationを使うこともできます。) https://developer.android.com/reference/android/app/ProgressDialog 要するに、ProgressDialogが表示されている間はユーザーが何も出来なくなり、UXが低下するということです。あなたも、「間違えてタップしちゃったけどProgressDialogが邪魔で読み込み終わるまで前の画面に戻れない」なんて経験があるでしょう。そういうことを引き起こすので、GoogleとしてはなるべくProgressDialogは使わせたくないようです。 つまりは、ProgressDialogの代替を自力で作らなければならない訳ではなく、ProgressDialogの概念自体が非推奨ということです。 そこを少し勘違いした投稿を見つけたので記事を書きました。ProgressDialogを表示させるのはユーザーに操作をさせたくない時だけにしましょう。進行状況を表示したい際も、少し面倒でもProgressBarをUIに直接埋め込むようにしましょう。