オートメーションにも応用できます.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS14.5.1
スポンサーリンク
ダウンロード
前準備と使い方
まず前準備として, カメラロールを含む, アルバム名とステータスを持ったJSONデータを作っておきます.
やり方は簡単で, 画像のように「辞書」アクションのキーに「最近の項目」(=カメラロール)や自身で作成したアルバム名を追加します.
値は「テキスト」「数字」のどちらでも構いませんが, 必ず一つだけ1, その他はすべて0…としてください.
この値を見て現在どのアルバムを参照状態かを判断します.
追加する場合はこのレシピを残しておいた上で「辞書」アクションに必要な項目を追加して実行することで解決します.
こうして作った「辞書」を「ファイルを保存」アクションを使って「ファイル」アプリの好きな場所に保存します.
今回は拡張子をjsonにしていますがtxtでもいいです, いずれにしろファイルパスとしてメインのレシピで使うため覚えておきます.
メインのレシピに移ります.
レシピ先頭にある「辞書」の「filepath」キーの値を先程保存した辞書データのファイルパスに書き換えます.
これを行わないとこのレシピが使えません.
レシピを起動すると画像左のようになります.
メニュー1項目目に現在選択しているアルバム名が表示されています.
これをタップすると保存先を他のアルバムや「最近の項目」に切り替えることができます.
改行で大きくなったメニュー2項目目をタップすることで, 1項目に指定された場所にスクリーンショットが保存され, 終了します.
もし保存先の変更を行った場合, 最初の画面に戻るかどうか聞かれます.
「OK」ならばレシピの最初に, 「キャンセル」はそのままレシピを終了します.
OKにして戻ったとき, 保存先が選択したものになっていることが確認できます.
背面タップで真価
このようなレシピは, ショートカットライブラリは言うまでもなく, ホーム画面にアイコンを設置したりランチャーアプリなどでは意味がありません.
逆に背面タップに登録することで, 臨機応変好きなシーンで撮ったスクリーンショットを指定のアルバムに保存できます.
このレシピはスクリーンショットを撮るのに, 背面タップで直接スクリーンショットを撮るのと比べてワンタップ増えています.
結果的に最初のメニュー画面が誤操作防止に役立ちます, アルバムにこだわらなければ常に「最近の項目」を指定しておけば済むので誤操作防止を目的とする上でのリスクは同等です.
応用:オートメーション
背面タップで価値を見出すこのレシピですが, 状況次第ではオートメーションを組み合わせることで更に便利になります.
例えばあるゲームアプリが起動したとき, 特定のアルバムを保存先に指定するようなオートメーションを組んでおきます.
フローも載せておきます.
まず予め作成したJSONデータを「ファイルを取得」アクションで呼び出し, これを辞書にします.
次の処理のためにこれを変数に代入します.
次にデータ内の各アルバムの値をすべて0にします.
「各項目を繰り返す」を使い, 上で取得した辞書の各キーの値に0を代入し, 上書きします.
この「上書き」の処理が変数なしで行うアイデアが思いつきませんでした.
アプリを開いた時点で「どのアルバムが指定されているか」は分からないので一度すべてクリアするのが一番簡単だと判断した結果です.
これで各アルバムのステータスは0になったので, 今開いているアプリの状況で保存したい場所のアルバムを「辞書の値を設定」で1にし, 「入力から辞書を取得」で辞書を更新します(画像で2つになっていますが画像編集上のミスで実際には1つです).
こうして更新された辞書は忘れずに「ファイル」アプリに上書き保存します.
これで特定のアプリを起動するたび, それに対応する保存先にJSONファイルも更新されます.
同じことを「アプリを閉じたとき」にも行うのもよいでしょう.
基本的にはアプリを閉じたら保存先は「最近の項目」に統一するのが一つの方法ですね, これならオートメーショントリガで複数のアプリを選択できますからオートメーション1つで済みます.
開いたり閉じたりするたびにオートメーションの通知が出てしまいますけどね.
ちなみに「ホームボタンを押す」操作はアプリを閉じるというトリガーにならないんですかね.
Appスイッチャーを開くと途端に閉じた判定がやってくるんですが.
フロー
レシピのフローも見ていきます.
前準備でも貼った通りですが, 予めファイルパスを「辞書」アクションに用意しておきます.
ファイルパスを複数箇所で指定するときはこういうやり方が便利ですね.
「ファイルを取得」アクションで指定のファイルパスを開き, 「入力から辞書を取得」で辞書にします.
上で取得した辞書のキーに対して「各項目を繰り返す」でステータスが1になっているキーを探して, 該当するものを変数(今回は"value")に代入します.
これが現時点での保存先であるはずです.
続いて「メニューから選択」を追加します.
項目は使い方でも説明した通り, 現在指定されている保存先と同時に設定画面を兼ねる1項目目, そして実際にスクリーンショットを撮影する2項目目です.
1項目目は目視あるいはメインでは使わない設定用ですから, 手操作から離れていてかつ小さくて構わないためこの位置にあります.
対してスクリーンショットを撮る2項目目はタップしやすい位置, 大きさであると都合がよいです.
そのため「テキスト」アクションで改行付きのものをプロンプトに代入する形を取ります.
中身はテキストなので他に好きな情報を入れてもいいですね.
こちらはメニューの中身, 設定に当たる方です.
「辞書」に含まれるすべてのキーより「リストから選択」で一つ選択させ, 「辞書」について
- "value"に該当するステータスを0にする
- 「リストから選択」で選んだアルバムに該当するステータスを1にする
という操作を行います.
この順番を逆にすると, 前回と同じものを選択したときすべてのステータスが0になってしまうため重要です.
こうして更新された辞書を「ファイル」アプリに上書き保存します.
これでデータが更新されたので, 改めてスクリーンショットを撮るかどうかを「アラートを表示」で求めさせます.
OKの場合は自分自身を「ショートカットを実行」で呼び出します.
続いてメニューの2項目目.
こちらは指定のアルバムにスクリーンショットを撮影→保存ということになっていますから「スクリーンショットを撮る」に加えて「写真を保存」アクションで指定アルバムに保存します.
・・・というのが基本ですが, 「スクリーンショットを撮る」アクションの仕様で, そのまま行うとスクリーンショットを撮影するときのフラッシュが反映された(残った)まま保存されてしまいます.
そのため2つのアクションの間に「待機」アクションを噛ませています.
時間は2秒にしていますが1秒でも大丈夫かもしれません, 連続撮影は想定していないので2秒でよいでしょう.
〆
現状思いつく無難なレシピとして作成しました.
デフォルトで「最近の項目」なり他のアルバムを指定すると分かっている場合は「ファイル」アプリを使わなくて済みますね.