アプリである必要はないです、目的次第ですね.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS17.4
スポンサーリンク
基本
まずは最低限の仕様で作ってみます.
ショートカットアプリを開いてオートメーションタブにして画面右上の+アイコンをタップし、トリガーから「アプリ」を選択します.
対象のアプリを選択し、まずはアプリを開いた場合のみ作るので「開いている」のみにチェックを入れた状態にし、一番下は「すぐに実行」にチェックを入れ「実行時に通知」がオフになっているのを確認して次へ進みます.
ページが変わったら「開始」の項目にある「新規の空のオートメーション」を選びます.
編集画面に移るので「外観モードを設定」アクションを追加し、「ダーク」に「変更」の状態にして完了です.
このままでは元に戻せない
上のオートメーションでは、特定アプリを開けばダークモードになりますがそれで終わりです.
アプリを閉じてもダークモードのままです.
普段ライトモードを使用している場合はそのアプリを閉じた場合も考えなければなりません.
というわけで該当アプリを閉じた場合のオートメーションも追加します.
この場合はダークモードは「ライト」に「変更」ですね.
(応用)アプリを開く前の外観モードに戻したい場合
特定アプリを開く前にライトモードかダークモードかが不明な場合もあります.
しかしアプリを開いた時点でくだんのオートメーションが働くのでその前にどちらだったかはもうわかりません.
そのため何らかの形でレシピ実行時にどちらのモードかをどこかに記憶させ、閉じる時にそれを取得して戻す工夫が必要となります.
ショートカット関連でそういったデータの読み書きができるアプリは主に標準のメモやファイルアプリですが、今回はData Jarというアプリを利用することにします.
しくみはショートカットアプリの「辞書」アクションに似せており、キーとその値の組み合わせでデータを管理します.
アプリを開いて「Add Value」をタップし、キーと値を入れます.
データの種類がデフォルトのテキスト以外も選べますが今回はテキストのままで構いません.
またレシピの仕組み上キーの値は空のままで問題ありません.
これを使ってまずアプリを開いた場合のオートメーションを組み直します.
ダークモードに変更する前に、実行前の外観モードをData Jarの指定キーの値に書き込みます.
まず「デバイスの詳細を取得」アクションで現在の外観モードを取得します.
Data Jarの「Set Value」アクションで指定キー(画像では"darkmode")の値に上で取得した現在の外観モードを代入します.
オプションが3つあるのですが画像の通り
- Store Value As(画像の形式)
→"Text"にしていますがデフォルトの"Automatic"でもいいです - Overwrite(上書き)
→"Yes"に - Filename
→空のまま
とします.
これらを組んでから外観モードをダークモードにします.
そしてアプリを閉じた場合です.
Data Jarの「Get Value」アクションで先程と同じキーの値を取り出します.
「Get Value」には"If Value Does Not Exist"という、値が無かった場合のオプションがありますが今回は触る必要はありません.
この結果をif文の入力として、ライトモードなら「外観モードを設定」でライトモードに、そうでなければダークモードに変更します.
ただし、「Get Value」の結果をif文の入力にそのまま代入するだけでは条件に「次に等しい」を選ぶことができません.
そこで代入したif文の入力をタップし、下から出てくるオプションで「名前」を選択します.
これで条件に「次に等しい」などを選択することができます.
〆
iPhone15シリーズと共に注目されたActionsをはじめ、ショートカットをサポートするアプリのひとつとして古くからあるのがData Jarです.
データのやり取りができるアプリとして先程挙げたメモやファイル、その他はそれぞれにメリットとデメリットがあり、総合的に見てもData Jarはグローバル変数を扱うのに便利です.