もう一人のY君

iPhoneアプリのレビューやアップデートレビューなどを書いています. たまに数学の記事も書きます.

もう一人のY君 MENU  MENU

【iPhoneショートカット】好きな画像を使ってバナーリンクを作る【iOS15】

f:id:thetheorier:20210915110721p:plain

 iOS15のアップデートに伴う修正です.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS15.0.1

 

 

スポンサーリンク

 


 

 

iOS14で使った方法は使えない

 iOS14までに作ったレシピはiOS15にアップデートするとレシピ名が変わる場合があります.

 名前が変わるだけならいいんですが仕様が変わる場合があるので厄介です.

 

 

blog.thetheorier.com

 先日紹介したバナーリンクのレシピがまさにその影響を受ける一つとなりました.

 

 

f:id:thetheorier:20211010145312p:plain

 くだんのレシピはiOS15にアップデートすると, 先頭の「ファイルを取得」アクションが「フォルダからファイルを取得」という名前のアクションに変わります.

 

 アップデート時に簡単に増えた通り, このアクションはiOS15になって"Shortcuts"より手前のフォルダを指定することが可能になったため, 言ってみれば機能拡張が行われました.

 

 

f:id:thetheorier:20211010150027p:plain

 しかしこのまま実行すると正しく処理されません.

 どうやら, これまで「ファイルを取得」アクションでパスにフォルダを指定できていたのが, 新しく置き換わったアクション「フォルダからファイルを取得」ではフォルダを指定することができなくなったようです.

 

 

正しいアクション

f:id:thetheorier:20211010150300p:plain

  iOS15では, 指定フォルダにあるファイルを使うアクションとして別に「フォルダの内容を取得」があり、こちらを使うことで解決します.

 

f:id:thetheorier:20211010150725p:plain

 「再帰的」のオプションは今回の使い方ならオフにします.

 

 

f:id:thetheorier:20211010150827p:plain

 これでこれまで通り使うことができます.

 

 

 似たような「不具合」が他のアクションでもありそうで不安ですね.

 

 レシピが破損するよりはマシですがアップデートによってこのような形で苦労させられるのは勘弁してほしいです.

 

 

【iPhoneショートカット】大幅な改善を行ったUSLauncher ver3.0をリリース【RoutineHub】

f:id:thetheorier:20211005161446p:plain

 内部処理の仕組みを大幅に変更し, 使いやすくしました.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS15.0.1

 

 

スポンサーリンク

 


 

 

ダウンロード

 

 

www.dropbox.com

 配布データはver2.1.1以前から大幅に変わっているため必ずこちらに差し替えてください.

 

 

USLauncher ver3.0 の変更・修正

 

  • アップデートチェックの廃止
     あれだけで17アクションほどあります.
     よっぽどでない限りアップデートが頻発することはないですしあればここで記事にしてSNSに拡散…で十分と判断しました.
  • カスタム機能の廃止
     ver3.0では検索の仕様に伴い、この機能が使えなくなりました.
     2.xまでは「辞書」アクションのキーを自由に使えたためそのようなことができたのですが、v3.0では下でも説明する通り「ストアID+Appバージョン」で固定するよう変更したため、自由度がなくなりました.
  • 検索仕様の変更
     plistで与えたキーに含まれる文字列を「ファイルにフィルタを適用」アクションで検索にかける方法から、「App Storeで検索」を使う方法に変更(詳細は後述).
  • その他テキストの追加、再実行の追加 

 

 

検索仕様の変更

 これまでは「辞書」のキーに各アプリのタイトルとバージョン、そして値にURLスキームを与えて処理していました.

 キーに含まれるタイトルとバージョンの文字列はこちら側である程度「編集」してあります、具体的には「半角カナを全角カナに」「長過ぎる副題を割愛」などなどで、これを「ファイルにフィルタを適用」アクションでキーワード検索させます.

 しかし「ファイルにフィルタを適用」にしろ「一致するテキスト」にしろ、検索の自由度としては弱いものとなります、例えば「モンスターハンター」を検索したいときに「モンハン」と打っても結果には表示されません、そのためわざわざキーにそれを入れないといけません.

 

 そこで今回はキーに与える文字列を、「タイトル+バージョン」から「ストアID+バージョン」に変更しました.

 というのもストアIDでApp Store検索できるんですね.

 ストアIDなら各アプリ固有であり, 全角半角の心配も不要、特殊文字の心配も不要、アップデートでタイトル改変されても変わりません.

 

 ストアIDは「Ap Store Appの詳細を取得」アクションで得られますから、App Store検索したAppのストアIDがplistデータの各種キーに含まれていればいいわけです.

 

 App Storeでの検索あれば全角や半角の違いだったり略名だったりであっても問題ない上、サムネイル画像の付いていて探しやすく、検索の処理も相対的に速い…といい事ずくめです.

 

 あとは一致したキーから値を取り出し、またキーにつけたバージョンも取り出せば多少の違いを除いてver2.xまでとまったく同じです.

 

 そこまでの説明を下で簡単に行います.

 

 

f:id:thetheorier:20211005162318p:plain

 まずは元データから(画像は全体の一部).

 各々の値はこれまで同様URLスキームになりますが、キーについては

 

ストアID バージョン

 

となります.

 この2つの間には半角スペースがあり, 後で後者を取り出すために使います.

 なおこのバージョンは「URLスキームを調べた」バージョンであり、必ずしも最新のものとは限りません.

 

 

 

f:id:thetheorier:20211005161607p:plain

 「フォルダからファイルを取得」でデータファイルをダウンロードしたパスを指定します.

 この結果を辞書に変換します.

 

 

f:id:thetheorier:20211005162720p:plain

 「入力を要求」と「App Storeで検索」のアクションを使ってアプリを検索します.

 オプションで検索結果をiPadにしたり、地域を変更できるのもこのアクションだからこそですね.

 

 

f:id:thetheorier:20211005162932p:plain

 上で得た検索結果を使って「リストから選択」で一つ選ばせます.

 選択したAppのストアIDとバージョンを「App Stpre Appの詳細を取得」アクションで取得しておきます.

 ただしapp.plistにあるバージョンとここで得られるバージョンのナンバリングが異なるアプリがあったりするので、レシピでは比較する場所を設けてるんですが余り参考にならないかもしれません.

 ストアIDについては次のフィルタアクションで使用します.

 

 

f:id:thetheorier:20211005163223p:plain

 検索した結果が収録するデータに含まれているかどうかは、今回はストアIDで行います.

 plistのデータにあるキーには各アプリのストアIDを含むデータがあり、App Storeで検索した結果のストアIDは上で取得しました.

 なので辞書にあるキーのうち、検索結果のストアIDを含むものがあれば「一致する」…という理屈です.

 なので「ファイルにフィルタを適用」アクションで辞書の「すべてのキー」に対して、(「App Store Appで検索」で得た方の)ストアIDを含む列をフィルタします.

 もし結果が空でなければ、収録するアプリに対応するキーと値の組を取得できます.

 アプリ名は「App Store Appの詳細を取得」から得ればOKです.

 

 

f:id:thetheorier:20211005164030p:plain

 フィルタした結果が空でない、つまり検索したアプリが配布データに収録されている場合は、フィルタの結果である辞書のキーを半角(空白)で分割し、最後の項目を取得することで「URLスキームを調べた時点での」バージョンが手に入ります.
 キーに対応する値を取得すればそのアプリのURLスキームも手に入ります.

 これで必要なものが揃ったので後はこれまで通りです.

 

 もしフィルタした結果が空の場合、それは配布データにないということです.

 画像は割愛していますが「もし「ファイル」が「任意の値」ならば」のifアクションの「その他の場合」でその処理を行っています.

 

 

 また収録にあたりストアIDが存在することがデータ追加の前提条件となったため、ストアから削除されたアプリを追加することができなくなりました.

 それに伴い、編集した配布データのラインナップも前回(9月)に比べかなり減った状態となっています.

 

 

既知の問題

 特定のキーワードをApp Store検索にかけるとエラーになります.

 検索するだけの簡単なレシピを作って試行すると結果を返さず強制終了するため、アクション側の問題と考えられます.

 

 

f:id:thetheorier:20211005175208p:plain

 具体的にはreliphoneさんが先日紹介していたSvadilfariというアプリ名を誤字った"svadifari"(l抜け)で検索すると、本レシピでは上画像のように「"USLauncher ver3.0"ショートカットの実行に問題外ありました」という通知が表示され続きが実行されない場合があります.

 簡単なレシピの方は上の通りで結果を返さずレシピが終了します.

 

 その他、「スドリカ」というアプリをiPadで検索するとレシピが落ちることがあります(問題なく進む時もあります).

 

 ランダムにアプリを選んでいるため他にも同様なケースがあるかもしれません.

 

 

 これまでは検索関連の処理が「ファイルにフィルタを適用」のみだったためオフラインでも使用可能だったんですが、全体の改善のためにApp Storeでの検索を行うよう変更したためネットにつながっていないとダメになりました.

 

 というわけで「App Store Appで検索」アクション辺りに問題がありそうで改善と共に不安が残りますが、しばらくはこのやり方で更新していくつもりです.

 

 

【iPhoneショートカット】基本的なビット論理演算10種

f:id:thetheorier:20210923162014p:plain

 ショートカットアプリにある「計算式」アクションでは論理演算が使用できますが, メジャーな演算の一部にしか対応していないのが惜しまれるところです.

 ということで既存のアクションを使って基本的な論理演算10種ができる式の例を挙げておきます.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS15.0

 

 

スポンサーリンク

 


 

 

計算式アクションで使える論理演算記号

blog.thetheorier.com

 今の所ショートカットアプリの「計算式」アクションで使える論理演算は

 

and
xor
or
nor

 

の4種類です.

 andやxorの否定nandおよびnxorなどは使えないため, これら4つ+αで代用しなければなりません.

 

 ただnorは(おそらく)64ビットの端末では2^64に対して行うため必ずしも使いやすいとは限りません.

 ビット(バイト)指定できるといいんですけどね.

 

 なお今回はビット演算, つまり0と1に対する演算のみ考えます(論理演算の各アクションは任意の整数に対応しています).

 

 また最後にビット演算の結果を計算する簡単なレシピも紹介しています.

 

 

論理積(and)

  0 1
0 0 0
1 0 1

f:id:thetheorier:20210923162922p:plain

 論理積andは「計算式」ショートカットで標準で使えるためそのまま

 

p and q

 

で問題ありません.

 

否定論理積(nand)

  0 1
0 1 1
1 1 0

f:id:thetheorier:20210923163226p:plain

 nandは「計算式」では使えないため他の論理演算などを使います.

 ビット反転は, 値b(=0or1)に対して

 

-1×b+1

 

の通常の演算を行うことで実現できるため, andに対して.

 

-1(p and q)+1

 

がnandの代わりになります.

 

 

非合意

  0 1
0 0 0
1 1 0

f:id:thetheorier:20210923164613p:plain

 非合意は集合論で言うところの P\not\subset Q であり, Pが真, Qが偽の場合のみ真となります.
 これも「計算式」アクションにないのに加え, 式の組み方も複数通りあるのですが例えば

 

p xor (p and q)

 

で求まります.

 

 

合意(条件式)

  0 1
0 1 1
1 0 1

f:id:thetheorier:20210923165201p:plain

 集合論では P\supset Q になります.

 こちらも通常の演算でビット反転させた方が速いので

 

-1(p xor (p and q))+1

 

とします.

 

 

逆非合意

  0 1
0 0 1
1 0 0

f:id:thetheorier:20210923165542p:plain

 集合の P\not\subset Q に対応します.

p xor (p or q)

 

で求まります.

 

 

逆合意

  0 1
0 1 0
1 1 1

f:id:thetheorier:20210923165911p:plain

 集合の P\subset Q に対応します.

-1(p xor (p or q))+1

 

で求まります.

 

 

排他的論理和(xor)

  0 1
0 0 1
1 1 0

f:id:thetheorier:20210923170303p:plain

 「計算式」アクションに対応し, P,Qの真偽が対の場合のみ真となります.

 

p xor q

 

で求めます.

 

 

同値(nxor)

  0 1
0 1 0
1 0 1

f:id:thetheorier:20210923170841p:plain

 xnorは「計算式」アクションで使えないため, xorと反転を使って

-1(p xor q)+1

 

で代用します.

 

 

論理和(or)

  0 1
0 0 1
1 1 1

f:id:thetheorier:20210923171106p:plain

 論理和orは「計算式」アクションで使用可能なので, そのまま

p or q

 

とします.

 

 

否定論理和(nor)

  0 1
0 1 0
1 0 0

f:id:thetheorier:20210923171323p:plain

 否定論理和norはショートカットで使える論理演算なのですが, 64ビット(32ビット端末の場合はおそらく32ビット)に対して演算されるため, ビット演算として使うと18442...という20桁の数になってしまいます.

 これを補完するために結果から 2^{64}-2 を引き,

 

(p or q)-(2^(64)-2)

 

とします.

 

 

 

(補足:ビット演算レシピ)

 画像で紹介したような, 式の組み合わせに対応する真理値を返すレシピです.

 

 

f:id:thetheorier:20210923173624p:plain

 先頭においた「リスト」アクションに好きな論理式を書き, 先頭に置いたものを対象に処理する内容にしてあります.

 2つの命題を半角アルファベットp,qで書くと約束します.

 

 リストの最初の項目を取得しておき, 01という文字列を分割してその列をP,Qの変数で置きます.

 このPとQはどちらも0と1のリストということになります.

 

 

f:id:thetheorier:20210923174020p:plain

 0と1のリストに対して「各項目を繰り返す」を行うことで0,1の4つの組み合わせに対応します.

 Pの繰り返しインデックスの項目, Qの繰り返しインデックスの項目を取り出し, それぞれ変数p,qで置きます.

 

 

f:id:thetheorier:20210923174428p:plain

 レシピの初めにリストから取り出した最初の項目に対して文字pおよびqをそれぞれ上で得た変数pおよびqに置き換えます.

 これでp,qの箇所が繰り返しに応じて0または1に置き換わるのでこれをそのまま「計算式」に代入します.

 あとは「テキスト」アクションで体裁を整え, 好きな変数に追加します.

 

 繰り返しが終わったら追加した変数を表示されて完了です.

 

 

 iOS15になってnxorだったり底を指定できる対数だったりが追加されてるかと期待したんですが残念ながらダメなようです.

 

 論理演算は使用する演算子によって同値となる式があります.

 ここで紹介したものが一通りでないので色々試してください.

 

 

【iPhoneショートカット】USLauncherのコンテンツを追加しました【210930】

f:id:thetheorier:20201201145203p:plain

 定例のデータ更新です.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS15.0

 

 

スポンサーリンク

 


 

 

ダウンロード

www.dropbox.com

 基本的には過去に保存した場所と同じフォルダーにすると楽です.

 ※リクエストに伴い個別配布した方もこちらに差し替えてください.

 

 USLauncher自身の更新はありません.

 

 

URLスキームの追加・削除

 バージョンの後ろに"?"がついているものは, 調べたバージョンより古いバージョンから変更された可能性があります.

 

 

  • CapCut v5.0
    削除:lkjm7alrogk16o7uq9://
  • Github v1.3
    削除:appcenter-35457a3e-bc59-47f6-a7c8-058356f73911://
  • Identity V v1.0.83
    追加:com.googleusercontent.apps.794264502560-je4o0dcv0l3icc0pe9h1i9jqqbjfl001://
  • Microsoft Edge v93.961.64
    削除:appcenter-7404ab89-123d-4f7f-8e4a-9f070467e91f://
    削除:appcenter-7404ab89-123d-4f7f-8e4a-9f070467e91f-intunemam://
    追加:microsoft-edge-x-callback://
    追加:microsoft-edge-x-callback-intunemam://
    追加:msauth.com.microsoft.msedge://
  • Microsoft Teams v3.15.1
    追加:com.googleusercontent.apps.445112211283-i3tvsbc5dhp3p0n5co5c1in6ih4v23un://

 

 

 昨日ツイートしましたが, USLauncherのver3.0を作成しました(リリースはまだです).

 ただそれに伴ってデータ構文も変わったためその改変作業に時間がかかっています.

 リリース時にも報告すると思いますが, データ編集に関わりすでにストアにないアプリを収録することができません.

 そのようなアプリでver2.x以下で対応しているものは引き続きそちらで確認してください.

 

 予定通り進めばver2.x向けのデータ更新は今回が最後となり, 次からはver3.0向けに移行します.

 

 

【iPhoneショートカット】充電のサイクル数やバッテリー寿命チェックのレシピに実質容量を追加

f:id:thetheorier:20201207112250p:plain

 これまでバッテリー容量は二項目でしたが, もうひとつ追加しました.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS15.0

 

 

スポンサーリンク

 


 

 

ダウンロード

routinehub.co

 

 これまで通り, レシピをインストールしたら設定アプリの「プライバシー」>「解析および改善」>「解析データ」と進み, log-aggregated-xxx~の項目を開いて画面右上の共有アイコンからこのレシピを呼び出します.

 「解析および改善」のページ最上部の「iPhone解析を共有」がオフになっていると対象の解析データが作成されないため利用できません.

 その場合は「iPhone解析を共有」をオンにして一日待つ必要があります.

 前日の解析データがその日の午前9時過ぎに追加されます.

 

 

 項目を増やしたのに合わせて, バッテリー寿命を他と改行で分けておきました.

 順序も少し変わったので注意してください.

 

 ①CycleCount:バッテリーのサイクル数です. Appleはこの数字が500を超えたとき, 本来の容量の80%を維持するよう設計している…としています.

 

 ②design_capacity:端末のもともとのバッテリー容量です.

 

 ③nomial_charge_capacity:バッテリーの名目容量で今回追加した項目です.

 

 ④raw_max_capacity:バッテリーの実質容量です. 経済や統計などのそれに従うなら, ③は「外部要因を排除して評価した値」であり, ④は「実際に計測された値(実測値)」と考えられます.

 じゃあ「外部要因とは?」となるんですがあるとしてもバッテリーの劣化や端末の温度変化くらいしか思いつきませんね. それどころか前者がどうやって具体的な値として影響するのか…と思うとなんだか違う気がします.

 今までこの違いがイマイチ分かっていなかったんですが無価値でないのは明らかなので追加しました.

 

 このnominal_charge_capcityを追加したことでバッテリー寿命の指標が一つ増えたことになるため, これを含めた3項目

 

  • nominal-battery.health
  • raw-battery.health
  • battery.MaximumCapcityPercent

 

を分けておきました.

 

 

 前回から変わらずチェックしていますが, battery.MaximumCapcityPercentが設定アプリで確認できるバッテリー寿命の値に一致するのを確認しています.

 

 

【iPhoneショートカット】集中モードを利用してショートカットを実行【フォーカス】

f:id:thetheorier:20210925142716p:plain

 iOS14まで「おやすみモード」として使われていた機能が, カスタマイズ可能となった「集中モード」に代わり, それまでの「おやすみモード」は集中モードの一つとして統合されました.

 そして集中モード自体もショートカットでの使い場があることから, 色んなレシピを組んで, 好きな集中モードのオンオフに応じてアクションを実行できるようになっています.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS15.0

 

 

スポンサーリンク

 


 

 

集中モード

f:id:thetheorier:20210925143106p:plain

 集中モードにはデフォルトで

 

  • おやすみモード
  • 睡眠
  • パーソナル
  • 仕事

 

の4つが存在し, これらは削除できません.

 画面右上の+アイコンをタップすることで, 好きな集中モードを作ることが可能となります.

 

  • 個々の連絡帳およびAppで通知を許可するかどうか
  • メッセージを送った相手に現在通知が知らされない状態であることを伝えるかどうか
  • ホーム画面のページ表示の制限、通知バッジの非表示
  • ロック画面を暗くする、知らされなかった通知の表示
  • 時刻・場所・App・スマートアクティベーションをトリガーとして自動的にオンにする機能(オフにするオプションはここにはありません)

 

などをカスタマイズ可能です.

 

 色んな組み合わせで作っておくと良さそうですね, ただ通知や着信が欲しいAppや相手のチェックは必ずしておかないといけません.

 

 

f:id:thetheorier:20210925144253p:plain

 こうして作った新しい集中モードはショートカットのオートメーションでもトリガーとして使うことができます.

 トリガーは「オンになったとき」「オフになったとき」のいずれか、または両方を選択できます.

 

 

f:id:thetheorier:20210925144441p:plain

 「実行時に尋ねる」はオフにできます.

 

 というわけでこれを利用して今回は壁紙を変更してみましょう.

 

 

例:壁紙変更

f:id:thetheorier:20210925144831p:plain

 今回はメニューから選択して変更するようにします.

 タップしやすいよう, あらかじめ改行付きのメニュー用テキストを用意しておきます(タップしやすくなるだけで必須ではありません).

 

 

f:id:thetheorier:20210925145004p:plain

 それぞれの選択肢に応じて「集中モードを設定」で対象のモードをオンないしオフにします.

 

 

f:id:thetheorier:20210925145347p:plain

 上で作ったレシピは集中モードのオンオフだけです.

 オートメーションの方で, オンの場合とオフの場合でそれぞれ異なるアクションを追加しておきます.

 

 

blog.thetheorier.com

 今回は先日紹介したレシピを実行させることで代用しています.

 

 

 

f:id:thetheorier:20210925150123p:plain

 実際に試してみます.

 今回はレシピを使って手動で集中モードを変更することになります.

 

 

f:id:thetheorier:20210925150226p:plain

 これで集中モードのオンオフによって壁紙が変わります.

 

 

 

コントロールセンターから実行

f:id:thetheorier:20210925151018p:plain

 iOS15ではすべての集中モードがコントロールセンターからオンオフできます.

 遠回しになりますが集中モードとオートメーションによってコントロールセンターがランチャー代わりになるわけですね.

 

 

f:id:thetheorier:20210925151218p:plain

 三点アイコンのある集中モードは, 条件を満たす間までオンにする…ということも可能です.

 項目の並び替えができるといいんですがそれは現在はできなさそうです.

 

 

 β版の時点で話題になっていたTipsです.

 仕事やゲームなど, 状況に応じた環境設定をより自由にこなすことができます.

 

 

【iOS15】設定アプリのURLスキーム一覧(標準アプリ)

Modified:2022/09/13

f:id:thetheorier:20210922085649p:plain

 iOS15のiPhoneで使用可能な設定アプリおよび標準アプリのURLスキームを紹介しています.

 前回(iOS14)と異なる場合は可能な限りその点について言及しています.

 

 

スポンサーリンク

 


 

 

検証

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 初期起動確認のバージョン : iOS15.0

 

 起動確認はiOSショートカットの「URLを開く」アクションで行っています.

 

 

環境および先頭の文字列について

 前回iOS14と同じく, 設定アプリについては先頭が

 

app-prefs:root
prefs:root

 

である, またはappの"a"ないしprefsの"p"が大文字の場合に使用できます.

 

 同じく, 本バージョンでも以下であることを確認しています.

 

  「設定」のみ  可能なものすべて 
prefs:root    ○ 
Prefs:root    ○ 
app-prefs:root  ○   
App-prefs:root  ○   
app-Prefs:root  ○   
App-Prefs:root  ○   

 ようは下4つについては末尾に何を付けても無視され, 設定アプリトップにしか飛べません.

 

 よほどの事情やこだわりがない限り, prefs:rootを使っておけばまず問題ありません.

 

 

設定アプリ(起動)

prefs:root
app-prefs:root

 

 appの"a", およびprefsの"p"を大文字にしても起動します.

 以降ではいづれも小文字で統一します.

 ※以降はapp-prefs:rootあるいはApp-prefs:rootでは使用できません(設定アプリトップへしか飛べない)

 

 

アカウント

itms-ui://

 

Apple ID

prefs:root=APPLE_ACCOUNT

 

ファミリー共有

prefs:root=APPLE_ACCOUNT&path=FAMILY

 

サブスクリプションの編集

prefs:root=APPLE_ACCOUNT&path=SUBSCRIPTIONS

 

Apple Pencil

prefs:root=Pencil

 

iCloud

prefs:root=CASTLE

 

iCloud > バックアップ

 

prefs:root=CASTLE&path=BACKUP

 

Wi-Fi

prefs:root=WIFI

 

Bluetooth

prefs:root=Bluetooth

 

モバイル通信

Prefs:root=MOBILE_DATA_SETTINGS_ID

 

通信のオプション(シングルSIMの場合)

Prefs:root=MOBILE_DATA_SETTINGS_ID&path=CELLULAR_DATA_OPTIONS

iOS15.0~iOS15.7:起動確認
iOS15.1.1:起動未確認(起動しないという報告あり)下記参照

 

通信のオプション(デュアルSIMの場合)

Prefs:root=MOBILE_DATA_SETTINGS_ID&path=MOBILE_DATA_SETTINGS

iOS15.0~iOS15.1:未確認

iOS15.1.1:有志による確認

 

通知

prefs:root=NOTIFICATIONS_ID

 

各Appの通知画面

prefs:root=NOTIFICATIONS_ID&path="バンドルID"

 

blog.thetheorier.com

 AppのバンドルIDはこちらで紹介しているショートカットレシピから調べることができます.

 

サウンドと触覚

prefs:root=Sounds

 

着信音

prefs:root=Sounds&path=Ringtone

iOS15.0:起動不可

iOS15.0.1~15.0.2:未確認

iOS15.1~15.7:起動確認

 

集中モード(旧おやすみモード)

prefs:root=DO_NOT_DISTURB

 

着信を許可

prefs:root=DO_NOT_DISTURB&path=Allow%20Calls%20From

 iOS15で「おやすみモード」は「集中モード」の一項目となり階層が変わったため, 引き続き使用できません.

 

スクリーンタイム

prefs:root=SCREEN_TIME

 

休止時間

prefs:root=SCREEN_TIME&path=DOWNTIME

 

App使用時間の制限

prefs:root=SCREEN_TIME&path=APP_LIMITS

 

通信/通話の制限

prefs:root=SCREEN_TIME&path=COMMUNICATION_LIMITS

 

常に許可

prefs:root=SCREEN_TIME&path=ALWAYS_ALLOWED

 

コンテンツとプライバシーの制限

prefs:root=SCREEN_TIME&path=CONTENT_PRIVACY

 

一般

prefs:root=General

 

情報

prefs:root=General&path=About

 

情報>証明書信頼設定

prefs:root=General&path=About/CERT_TRUST_SETTINGS

 

ソフトウェア・アップデート

prefs:root=General&path=SOFTWARE_UPDATE_LINK

 

AirDrop

prefs:root=General&path=AIRDROP_LINK

 

AirplayとHandoff

prefs:root=General&path=CONTINUITY_SPEC

 

AirplayとHandoff>自動的にTVへAirPlay

prefs:root=General&path=CONTINUITY_SPEC/AIRPLAY_TO_TV

 

ピクチャ・イン・ピクチャ

prefs:root=General&path=PiP_SPEC

 

CarPlay

prefs:root=General&path=CARPLAY

 

ホームボタン

prefs:root=General&path=HOME_BUTTON

 

iPhoneストレージ

prefs:root=General&path=STORAGE_MGMT

 

Appのバックグラウンド更新

prefs:root=General&path=AUTO_CONTENT_DOWNLOAD

 

日付と時刻

prefs:root=General&path=DATE_AND_TIME

 

キーボード

prefs:root=General&path=Keyboard

 

キーボード > キーボード

prefs:root=General&path=Keyboard/KEYBOARDS

 

キーボード > ユーザー辞書

prefs:root=General&path=Keyboard/USER_DICTIONARY

 

キーボード > 片手用キーボード

prefs:root=General&path=Keyboard/ReachableKeyboard

 

言語と地域

prefs:root=General&path=INTERNATIONAL

 

辞書

prefs:root=General&path=DICTIONARY

 

法律に基づく情報および認証

prefs:root=General&path=LEGAL_AND_REGULATORY

 

VPNとデバイス管理 (旧VPN)

prefs:root=General&path=VPN

 iOS15では「プロファイル」とともに「VPNとデバイス管理」という名で統合されました.

 こちらは使えなくなったため2項目下の「VPNとデバイス管理」のURLスキームを使ってください.

 

 旧VPNの項目は3項目下の「VPNとデバイス管理>VPN」になります.

 

NFC

prefs:root=General&path=NFC_LINK

 

VPNとデバイス管理(旧プロファイル)

prefs:root=General&path=ManagedConfigurationList

 

VPNとデバイス管理>VPN

prefs:root=General&path=ManagedConfigurationList/VPN

iOS15.0~15.1.1:未確認

iOS15.2~15.7:起動確認

 

各々の構成プロファイル画面

prefs:root=General&path=ManagedConfigrationList/"構成プロファイル名"

 

 構成プロファイル名の部分はURLエンコードする必要があります.

 

転送またはiPhoneをリセット(旧リセット)

prefs:root=General&path=Reset

 

システム終了

prefs:root=General&path=SHUTDOWN_LABEL

 

コントロールセンター

prefs:root=ControlCenter

 

画面表示と明るさ

prefs:root=DISPLAY

 

Night Shift

prefs:root=DISPLAY&path=BLUE_LIGHT_REDUCTION

~iOS15.4.1:起動未確認

iOS15.5~15.7:起動確認

 

自動ロック

prefs:root=DISPLAY&path=AUTOLOCK

 

テキストサイズを変更

prefs:root=DISPLAY&path=TEXT_SIZE

 

アクセシビリティ

prefs:root=ACCESSIBILITY

 

VoiceOver

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE

 

VoiceOver>読み上げ

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE/Speech

 

VoiceOver>読み上げ>声

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE/Speech/DialectCell

 

VoiceOver>繊細度

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE/Verbosity

 

VoiceOver>繊細度>句読点および記号

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE/Verbosity/voiceOverPunctuationGroup

 

VoiceOver>繊細度>メディア説明サービス

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE/Verbosity/voiceOverMediaDescriptions

 

VoiceOver>点字

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE/Braille

 

VoiceOver>点字>出力

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE/Braille/BrailleDisplayOutput

 

VoiceOver>点字>入力

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE/Braille/BrailleDisplayIntput

iOS15.0~15.1.1:起動確認

iOS15.2~15.7:手前の「点字」まで

 

VoiceOver>点字>点字画面入力

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE/Braille/BrailleGesturesInput

 

VoiceOver>点字>点字表

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE/Braille/tableIdentifier

 

VoiceOver>点字>状況セル

prefs:root=ACCESSIBILITY&path=VOICEOVER_TITLE/Braille/STATUS_CELL

 

ズーム機能

prefs:root=ACCESSIBILITY&path=ZOOM_TITLE

 

ズーム機能>キーボードショートカット

prefs:root=ACCESSIBILITY&path=ZOOM_TITLE/ZoomKeyboardShortcuts

 

ズーム機能>ズームコントローラ

prefs:root=ACCESSIBILITY&path=ZOOM_TITLE/ZoomSlug

 

ズーム機能>ズーム領域

prefs:root=ACCESSIBILITY&path=ZOOM_TITLE/ZoomLensMode

 

拡大鏡

prefs:root=ACCESSIBILITY&path=MAGNIFIER_TITLE

 該当ページに項目が見当たらないため起動確認できません.

 

画面表示とテキストサイズ

prefs:root=ACCESSIBILITY&path=DISPLAY_AND_TEXT

 

画面表示とテキストサイズ>さらに大きな文字

prefs:root=ACCESSIBILITY&path=DISPLAY_AND_TEXT/LARGER_TEXT

 

画面表示とテキストサイズ>カラーフィルタ

prefs:root=ACCESSIBILITY&path=DISPLAY_AND_TEXT/DISPLAY_FILTER_COLOR

 

動作

prefs:root=ACCESSIBILITY&path=MOTION_TITLE

 

読み上げコンテンツ

prefs:root=ACCESSIBILITY&path=SPEECH_TITLE

 

読み上げコンテンツ>読み上げコントローラ

prefs:root=ACCESSIBILITY&path=SPEECH_TITLE/SpeechController

 

読み上げコンテンツ>内容を強調表示

prefs:root=ACCESSIBILITY&path=SPEECH_TITLE/QuickSpeakHighlight

 

読み上げコンテンツ>入力フィードバック

prefs:root=ACCESSIBILITY&path=SPEECH_TITLE/TypingFeedback

 

読み上げコンテンツ>声

prefs:root=ACCESSIBILITY&path=SPEECH_TITLE/QuickSpeakAccents

 

バリアフリー音声ガイド

prefs:root=ACCESSIBILITY&path=DESCRIPTIVE_VIDEO

 

タッチ

prefs:root=ACCESSIBILITY&path=TOUCH_REACHABILITY_TITLE

 

タッチ>3D Touchおよび触覚タッチ

prefs:root=ACCESSIBILITY&path=TOUCH_REACHABILITY_TITLE/ForceTouch

 

タッチ>タッチ調整

prefs:root=ACCESSIBILITY&path=TOUCH_REACHABILITY_TITLE/TOUCH_ACCOMMODATIONS

 

タッチ>通話オーディオルーティング

prefs:root=ACCESSIBILITY&path=TOUCH_REACHABILITY_TITLE/CALL_AUDIO_ROUTING

 

タッチ>通話オーディオルーティング>自動で電話に出る

prefs:root=ACCESSIBILITY&path=TOUCH_REACHABILITY_TITLE/CALL_AUDIO_ROUTING/callAudioRoutingAutoAnswer

 

タッチ>背面タップ

prefs:root=ACCESSIBILITY&path=TOUCH_REACHABILITY_TITLE/SHAKE_TO_UNDO

 末尾の"SHAKE_TO_UNDO"が変わったかどうかは現時点で不明ですが起動確認できません.

 

Face ID

prefs:root=ACCESSIBILITY&path=FACE_ID

iOS15.0~15.3.1:起動確認

iOS15.4.1~15.7:項目なし

 

スイッチコントロール

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle

 

スイッチコントロール>スイッチ

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/SwitchesIdentifier

 

スイッチコントロール>スイッチ>新しいスイッチを追加

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/SwitchesIdentifier/AddSwitchIdentifier

 

スイッチコントロール>スイッチ>Bluetoothデバイス

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/SwitchesIdentifier/BluetoothDevicesIdentifier

 

スイッチコントロール>レシピ

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/RecipesIdentifier

 

スイッチコントロール>ハイライトのスタイル

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/ScanningStyleIdentifier

 

スイッチコントロール>自動ハイライトの時間

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/ScanningSpeedIdentifier

 

スイッチコントロール>最初の項目で一時停止

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/DelayAfterInputIdentifier

 

スイッチコントロール>移動の繰り返し

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/ActionRepeatIdentifier

 

スイッチコントロール>長押し

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/LongPressIdentifier

 

スイッチコントロール>タップの動作

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/TapBehaviorIdentifier

 

スイッチコントロール>タップ後にフォーカスされる項目

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/ScanLocationIdentifier

 

スイッチコントロール>保持継続時間

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/HoldDurationIdentifier

 

スイッチコントロール>繰り返しを無視

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/IgnoreRepeatIdentifier

 

スイッチコントロール>読み上げ

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/SpeechIdentifier

 

スイッチコントロール>読み上げ>声

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/SpeechIdentifier/VoicesIdentifier

iOS15.0~15.0.2:設定アプリが落ちて開けません

iOS15.1:設定アプリが落ちることはなくなりましたが一つ前の「読み上げ」までしか移動できません

iOS15.1.1:未確認

iOS15.2~15.2.1:かなりの確率で設定アプリが落ちます、落ちない場合も手前の項目までしか移動しません
iOS15.3~15.3.1:10回ほど試してアプリこそ落ちませんが手前の項目までしか移動しません

iOS15.4:一度目は強制終了しましたが、二度目以降は開きました

iOS15.4.1~15.7:設定アプリが落ちて開けません

 

スイッチコントロール>メニュー項目

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/CustomizeMenuIdentifier

 

スイッチコントロール>保存済みのジェスチャ

prefs:root=ACCESSIBILITY&path=ScannerSwitchTitle/CustomGesturesIdentifier

 

音声コントロール

prefs:root=ACCESSIBILITY&path=CommandAndControlTitle

 

音声コントロール>言語

prefs:root=ACCESSIBILITY&path=CommandAndControlTitle/COMMAND_AND_CONTROL_LANGUAGE

 

音声コントロール>コマンドをカスタマイズ

prefs:root=ACCESSIBILITY&path=CommandAndControlTitle/CUSTOMIZE_COMMANDS

 

音声コントロール>用語集

prefs:root=ACCESSIBILITY&path=CommandAndControlTitle/VOCABULARY

 

音声コントロール>オーバーレイ

prefs:root=ACCESSIBILITY&path=CommandAndControlTitle/ALWAYS_SHOW_OVERLAY

 

ホームボタン

prefs:root=ACCESSIBILITY&path=HOME_CLICK_TITLE

 

Apple TV リモコン(旧Apple TV Remote)

prefs:root=ACCESSIBILITY&path=APPLE_TV_REMOTE

 

キーボード

prefs:root=ACCESSIBILITY&path=KEYBOARDS

 

キーボード>フルキーボードアクセス

prefs:root=ACCESSIBILITY&path=KEYBOARDS/FULL_KEYBOARD_ACCESS

 

キーボード>フルキーボードアクセス>自動的に非表示

prefs:root=ACCESSIBILITY&path=KEYBOARDS/FULL_KEYBOARD_ACCESS/FKAFocusRingTimeout

 

キーボード>フルキーボードアクセス>カラー

prefs:root=ACCESSIBILITY&path=KEYBOARDS/FULL_KEYBOARD_ACCESS/FKAFocusRingColor

 

キーボード>キーのリピート

prefs:root=ACCESSIBILITY&path=KEYBOARDS/KEY_REPEAT

 

キーボード>複合キー

prefs:root=ACCESSIBILITY&path=KEYBOARDS/STICKY_KEYS

 

キーボード>スローキー

prefs:root=ACCESSIBILITY&path=KEYBOARDS/SLOW_KEYS

 

ヒアリングデバイス

prefs:root=ACCESSIBILITY&path=HEARING_AID_TITLE

 

サウンド認識

prefs:root=ACCESSIBILITY&path=SOUND_RECOGNITION_TITLE

 

オーディオ/ビジュアル

prefs:root=ACCESSIBILITY&path=AUDIO_VISUAL_TITLE

 

オーディオ/ビジュアル>ヘッドフォンオーディオ

prefs:root=ACCESSIBILITY&path=AUDIO_VISUAL_TITLE/AXPAEnableSpecID

 

オーディオ/ビジュアル>ヘッドフォンオーディオ>カスタムオーディオ設定

prefs:root=ACCESSIBILITY&path=AUDIO_VISUAL_TITLE/AXPAEnableSpecID/AXPAPersonalAudioSetupSpecID

 

標準字幕とバリアフリー字幕

prefs:root=ACCESSIBILITY&path=SUBTITLES_CAPTIONING

 

標準字幕とバリアフリー字幕>スタイル

prefs:root=ACCESSIBILITY&path=SUBTITLES_CAPTIONING/currentTheme

 

アクセスガイド

prefs:root=ACCESSIBILITY&path=GUIDED_ACCESS_TITLE

 これより深いページはこの「アクセスガイド」をオンにした状態でないと機能しません.

 

アクセスガイド>パスコード設定

prefs:root=ACCESSIBILITY&path=GUIDED_ACCESS_TITLE/GuidedAccessSecurityLinkList

 

アクセスガイド>パスコード設定>アクセスガイドのパスコードを設定

prefs:root=ACCESSIBILITY&path=GUIDED_ACCESS_TITLE/GuidedAccessSecurityLinkList/GAXPinButton

 

アクセスガイド>時間制限

prefs:root=ACCESSIBILITY&path=GUIDED_ACCESS_TITLE/GuidedAccessTimeRestrictionsLinkList

 

アクセスガイド>時間制限>サウンド

prefs:root=ACCESSIBILITY&path=GUIDED_ACCESS_TITLE/GuidedAccessTimeRestrictionsLinkList/GUIDED_ACCESS_TIME_RESTRICTIONS_SOUND_TITLE

 

アクセスガイド>画面の自動ロック

prefs:root=ACCESSIBILITY&path=GUIDED_ACCESS_TITLE/GuidedAccessAutoLockTime

 

Siri

prefs:root=ACCESSIBILITY&path=SIRI_SETTINGS_TITLE

 

ショートカット

prefs:root=ACCESSIBILITY&path=TRIPLE_CLICK_TITLE

 

壁紙

prefs:root=Wallpaper

 

Siriと検索

prefs:root=SIRI

 

自分の情報

prefs:root=SIRI&path=MY_INFO

 

言語

prefs:root=SIRI&path=LANGUAGE_ID

 

Siriの応答

prefs:root=SIRI&path=VOICE_FEEDBACK_ID

 

Siriの声

prefs:root=SIRI&path=VOICE_ID

 

Touch IDとパスコード

prefs:root=TOUCHID_PASSCODE

 

緊急SOS

prefs:root=EMERGENCY_SOS

 

接触通知

prefs:root=EXPOSURE_NOTIFICATION

 

バッテリー

prefs:root=BATTERY_USAGE

 

バッテリーの状態

prefs:root=BATTERY_USAGE&path=BATTERY_HEALTH

 

プライバシー

prefs:root=Privacy

 

位置情報サービス

prefs:root=Privacy&path=LOCATION

 

各Appの位置情報サービス画面

prefs:root=Privacy&path=LOCATION/"バンドルID"

 

blog.thetheorier.com

 AppのバンドルIDはこちらで紹介しているショートカットレシピから調べることができます.

 

連絡先

prefs:root=Privacy&path=CONTACTS

 

カレンダー

prefs:root=Privacy&path=CALENDARS

 

リマインダー

prefs:root=Privacy&path=REMINDERS

 

写真

prefs:root=Privacy&path=PHOTOS

 

マイク

prefs:root=Privacy&path=MICROPHONE

 

音声認識

prefs:root=Privacy&path=SPEECH_RECOGNITION

 

カメラ

prefs:root=Privacy&path=CAMERA

 

モーションとフィットネス

prefs:root=Privacy&path=MOTION

 

App Store

prefs:root=STORE

 

ウォレットとApple Pay(旧WalletとApple Pay)

prefs:root=PASSBOOK

 

パスワード

prefs:root=PASSWORDS

 

メール

prefs:root=MAIL

 

メール > 通知

prefs:root=MAIL&path=NOTIFICATIONS

 

メール > アカウント

prefs:root=MAIL&path=ACCOUNTS

 

メール > アカウント > アカウントを追加

prefs:root=ACCOUNTS_AND_PASSWORDS&path=ADD_ACCOUNT
prefs:root=MAIL&path=ACCOUNTS/ADD_ACCOUNT

 

iOS15.0~15.2.1:後者のみ起動確認

iOS15.3~15.3.1:起動不可(URLの表記ミスが発覚したため、起動する可能性あり)

iOS15.4~15.4.1:後者のみ起動確認

iOS15.5~15.7:両方の起動確認

 

メール > データの取得方法

prefs:root=MAIL&path=FETCH_NEW_DATA

 iOS15からはこの項目が削除されています.

 

メール > 署名

prefs:root=MAIL&path=Signature

iOS15.0~15.3.1:上に同じ.

iOS15.4~15.7:項目はありますが起動しません.

 

連絡先

prefs:root=CONTACTS

 

カレンダー

prefs:root=CALENDAR

 

メモ

prefs:root=NOTES

 

リマインダー

prefs:root=REMINDERS

 

デフォルトリスト

prefs:root=REMINDERS&path=DEFAULT_LIST

 

ボイスメモ

prefs:root=VOICE_MEMOS

 

電話

prefs:root=Phone

 

メッセージ

prefs:root=MESSAGES

 

FaceTime

prefs:root=FACETIME

 

マップ

prefs:root=MAPS

 

コンパス

prefs:root=COMPASS

 

計測

prefs:root=MEASURE

 

Safari

prefs:root=SAFARI

 

検索エンジン

prefs:root=SAFARI&path=SEARCH_ENGINE_SETTING

 

自動入力

prefs:root=SAFARI&path=AUTO_FILL

 

ダウンロード

prefs:root=SAFARI&path=DOWNLOADS

 

カメラ

prefs:root=SAFARI&path=Camera

 

履歴とWebサイトデータを消去

prefs:root=SAFARI&path=CLEAR_HISTORY_AND_DATA

 消去ボタンまで誘導されます.

 

詳細

prefs:root=SAFARI&path=ADVANCED

 

株価

prefs:root=STOCKS

 

ヘルスケア

prefs:root=HEALTH

 

ショートカット

prefs:root=SHORTCUTS

 

ミュージック

prefs:root=MUSIC

 

イコライザ

prefs:root=MUSIC&path=com.apple.Music:EQ

 

TV

prefs:root=TVAPP

 

写真

prefs:root=Photos

 

カメラ

prefs:root=CAMERA

 

フォーマット

prefs:root=CAMERA&path=CameraFormatsSettingsList

 

設定を保持

prefs:root=CAMERA&path=CameraPreserveSettingsSwitch

 

 

ブック

prefs:root=IBOOKS

 

Game Center

prefs:root=GAMECENTER

 

TVプロバイダ

prefs-tvprovider://
prefs:root=VIDEO_SUBSCRIBER

 

ニュース

prefs:root=NEWS

 

アプリの設定

prefs:root="バンドルID

 バンドルIDについては以下を参照してください.

blog.thetheorier.com

 

 

 

標準アプリ

 ここからは標準アプリのURLスキームです.

 

 

App Store

itms-apps://itunes.apple.com

 

Apple Store

applestore://
applestore-sec://
applestore-alipay://

 

Facetime Audio

facetime-audio://01234566789
facetime-audio-prompt://0123456789

 

Facetime Video

facetime://01234566789
facetime-prompt://0123456789

 

Game Center

gamecenter://
itms-gc://
itms-gcs://

iOS15.0~15.0.2:起動未確認

iOS15.1~15.7:起動不可

 

iTunes Store

itms://
itmss://

 

Podcast

itms-pcast://
itms-pcasts://
itms-podcast://
itms-podcasts://
pcast://
podcasts://

 

Safari

x-web-search://

 iOS15.0~15.2:起動確認

 iOS15.3~15.7:起動不可

 

TV

videos://

 

アラーム

Clock-alarm:

(最後に開いたものが起動します)

 

カメラ

camera://
Camera://

 

カレンダー

calshow://
x-apple-calevent://

 

写真

photos-redirect://

 

ショートカット

shortcuts://

 

ショートカット>レシピの新規作成

shortcuts://create-shortcut

 

ショートカット>レシピのインストール

shortcuts://[shortcutsID]

 [shortucutsID]はレシピのiCloudリンクを作成した際の

https://www.icloud.com/shortcuts/xxx~xxx

の末尾xxx~xxxの部分です.

 

ショートカット>ギャラリー

shortcuts://gallery

 

ショートカット>レシピを開く

shortcuts://open-shortcut?name=[recipe_name]

[recipe_name]にレシピの名前を入れます(URLエンコードする必要があります).

 

ショートカット>レシピを実行する

shortcuts://run-shortcut?name=[recipe_name]

 

ショートカット>クリップボードを入力として実行

shortcuts://run-shortcut?name=[recipe_name]&input=clipboard

 

ショートカット>任意の値を入力として実行

shortcuts://run-shortcut?name=[recipe_name]&input=text&text=[any string]

 

診断

diagnostics://
diags://

 

ストップウォッチ

Clock-stopwatch://

(最後に開いたものが起動します)

 

世界時計

Clock-worldclock://

(最後に開いたものが起動します)

 

タイマー

Clock-timer://

(最後に開いたものが起動します)

 

天気1

Weather://?index=0

 iOS14では末尾の数字nに対して上からn+1番目の天気を表示しましたが, iOS15では数字に関係なく現在地の結果を表示します.

 

天気2

weather://

 現在地の結果を表示します.

 

電卓

calc://

 

電話

tel:0123456789
telprompt:0123456789

(どちらでも確認のためのプロンプトが表示されます)

 

よく使う項目

MobilePhone-favorits://

 iOS14では使えませんでしたがiOS15.0で使用可能なのを確認しました.

 

履歴

MobilePhone-recents://

 

留守番電話

Vmshow://

 

探す(旧友だちを探す,iPhoneを探す等々)

findmyfriends://
fmf1://
grenada://
fmip1://
findmy://
findmy://items

 「人を探す」「デバイスを探す」「持ち物を探す」「自分」のうち, 最後に開いた状態で開きます.

 

ニュース

applenews://
applenewss://

 

ファイル

shareddocuments://

 

サーバーへ接続

smb://

 

フィードバック

applefeedback://

 

ブック

ibooks://
itms-books://
itms-bookss://

 

ヘルスケア

x-apple-health://
x-argonaut-app://

 

ボイスメモ

voicememo://
Voicememos://

 

ホーム

x-hm://

 

翻訳

translate://
Translate://

 

マップ

map://
maps://
mapitem://

 

メール(起動)

message://

 

メール(新規作成)

mailto://

 サードパーティ製アプリが起動する場合があります.

 

メッセージ(起動)

messages://

 

メッセージ(新規作成)

sms://

 

メッセージ(app store)

itms-messages://

 

ミュージック

music://
musics://
audio-player-event://

 

メモ

mobilenotes://

 

ラジオ

itsradio://
itsradios://
itunesradio://
itunesradios://

 

リマインダー

x-apple-reminder://
x-apple-reminderkit://

 

連絡先

contact://

 

 

 

 多くがiOS14と変わらないですが, 項目変更や移動により使えなくなったものが少しあります.

 とはいえ設定アプリトップまでしか使えない頃に比べたら遙かに恵まれていますね.

 

 

 

追記

2022/9/13

 iOS15.7での起動確認を行いました.

 

  • 「設定 > スクリーンタイム > 休止時間」が開かず、手前の「スクリーンタイム」が開く

 

2022/8/19

 iOS15.6.1での起動確認を行ったところ、iOS15.6と同じ結果となりました.

 

2022/08/11

 以下を追加しました.

  • 各Appの通知画面
  • 各々の構成プロファイル画面
  • 各Appの位置情報サービス画面

 

2022/07/22

 iOS15.6での起動確認を行ったところ、iOS15.5と同じ結果となりました.

 

2022/07/04

 以下を追加しました.

  • 設定 > 画面表示と明るさ > Night Shift
  • 設定 > Safari > 詳細

 

2022/05/17

 iOS15.5での起動確認を行いました. 以下を除いてiOS15.4.1の時点と同じ結果となりました.

 

  • 「設定>メール>アカウント>アカウントを追加」が2つとも起動可能であるのを確認しました

 

2022/04/02

 iOS15.4.1での起動確認を行いました.

  • 「設定>サウンドと触覚>着信音」は引き続き起動可能です
  • 「設定>アクセシビリティ>VoiceOver>点字>入力」は前回同様、手前の「点字」が開きます
  • 「設定>アクセシビリティ>スイッチコントロール>読み上げ>声」は設定アプリが落ちて開けません
  • 「設定>メール>アカウント>署名」は引き続き起動できません
  • 「Game Center」アプリは引き続き起動できません
  • 「Safari」アプリは引き続き起動できません

 

2022/03/15

 iOS15.4での起動確認を行いました.

  • 「設定 > アクセシビリティ > Face ID」「設定 > ニュース」はそれぞれ項目自体が見当たりません
  • 「設定 > アクセシビリティ > スイッチコントロール > 読み上げ > 声」について、二度目以降は安定して開くようになりました
  • 「設定 > メール > アカウント > アカウントを追加」について、スペルミスを訂正しました
    それに伴い、起動不可としたiOS15.3.0~15.3.1でも起動できる可能性があります
  • 「設定 > ニュース」は項目が見当たりません.

 

2022/02/12

 iOS15.3.1での起動確認を行いました.

 結果は前回iOS15.3と同じとなりました.

 

 

2022/01/27

 iOS15.3での起動確認を行いました.

 前回iOS15.2.1と比べて以下の変更があります.

 

  • 設定>アクセシビリティ>スイッチコントロール>読み上げ>声
    …アプリこそ落ちないものの、手前の項目に移動
  • 設定>メール>アカウント>アカウントを追加
    …使用不可

 

 

2022/01/14

 以下を追加しました.

 

  • 設定>カメラ>フォーマット
  • 設定>カメラ>設定を保持
  • 設定>メール>アカウント>アカウントを追加

 

 iOS15.2.1での起動確認を行いました.

 以下について起動できないのを確認、それ以外はiOS15.2時と同様でした.

  • Safari (app)

 

 

2012/12/14

 iOS15.2での起動確認を行いました.

 以下を追加しました.

  • 設定>一般>VPNとデバイス管理>VPN

 

2012/11/26

 iOS15.1.1の端末で「設定アプリ>モバイル通信>通信のオプション」が開かない(モバイル通信が開く)という報告を受けました.

 SIMの状況で項目自体が異なり、それに合わせて別のURLスキームが割り当てられているのを有志の方が指摘くださいました.

 

2021/11/21

 誤字を訂正.

 

2021/11/11

 「カメラ」を追加.

 

2021/11/03

 大量の記入漏れがありました、以下を追加しました(順不同、起動不可の場合は省略).

 

[設定]

  • 設定>サウンドと触覚>着信音 (少なくともiOS15.1から使用可)
  • (App)ファイル>サーバーへ接続
  • ボイスメモ(追加)
  • メッセージ(起動)
  • メッセージ(app store)
  • ミュージック(追加)

[App]

  • ファイル>サーバーへ接続
  • ボイスメモ(追加)
  • メッセージ(起動)
  • ミュージック(追加)
  • App Store
  • Apple Store
  • ブック
  • 電卓
  • 連絡先
  • Facetime Audio
  • Facetime Video
  • フィードバック
  • iTunes Store
  • マップ
  • ラジオ
  • ニュース
  • Podcast

 

2021/11/02

 

 有志により以下2点の訂正と2点の追加を行いました.

 

[訂正]

設定 > 一般 > キーボード > キーボード
誤:prefs:root=General&path=Keyboard/KEYBOADS
正:prefs:root=General&path=Keyboard/KEYBOARDS

 

設定 > 連絡先

誤:prefs:root=CONTSCTS

正:prefs:root=CONTACTS

 

[新規追加]

設定 > 一般 > iPhoneストレージ
設定 > Safari > 履歴とWebサイトデータを消去

 

 

【iPhoneショートカット】iOS15で新規追加されたアクション、変更されたアクションなど

f:id:thetheorier:20210921112928p:plain

 とうとうiOS15がリリースされました.

 それに伴いショートカットアプリもいくつか追加や変更がなされています.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS15.0

 

 

スポンサーリンク

 


 

 

動作

 手持ちのiPhone8である程度動かしたところ, 残念ながら良くありません.

 まだ全部確認したわけではないですが以下の現象を確認しています.

 

  • 一定の条件を満たす(?)と、同じ操作で必ずクラッシュする(例:変数の名前を書く、それも特定の一文字で必ずアプリが落ちます)
  • iOS14.xと比べて全体的な処理速度に違いは感じられないものの, 少なくとも「計算式」アクションの処理にこれまで以上に時間がかかる
  • アクションを削除するための「×」ボタンの反応が悪い

 

 まだあるかもしれませんし他の方で同じことが起こってない場合もありえます.

 iPhone8はiOS15をサポートする機種の中ではかなり古い方である影響も考えられます.

 

 

追加・変更されたアクション

 続いて機能追加されたり仕様変更されたアクションについてわかる範囲で書き下しておきます.

 

 

日付などのセレクトボックスがドラム型に

f:id:thetheorier:20210921114431p:plain

 日付などのセレクトボックスが, 多くのユーザーに不評だったカレンダー型からドラム型に戻りました.

 ドラム型自体も評価は良くないものの, iOS14でのあの仕様に比べれば遙かにマシです.

 とくに日付の選択はともかく, そこから時刻を指定するのにわざわざキーボードを出して打ち込まないといけない, 加えて端末によっては肝心の時刻表示がキーボードに隠れて見えないという余りにも酷いものでした.

 

 なお, リストから選択する際の仕様は前回と同じでした.

 大量の項目から選ぶ際にフィルタなどを使う手間は今後1年引き続きかかるようです., 残念.

 

 

設定

f:id:thetheorier:20210921115334p:plain

 設定アプリのショートカットのページにオプションが追加されました.

 

  • スクリプトの実行を許可
  • 大量のデータを共有することを許可
  • 確認なしに削除することを許可
  • 大量のデータを削除することを許可

 

 うっかりミスを防いだり, セキュリティ上のものと考えることができます.

 いづれもアップデート時はオフになっています, 必要に応じてオンにしましょう.

 

 

停止して出力

 新しく追加されたアクションの1つ目です.

 

 

f:id:thetheorier:20210921120704p:plain

 「ショートカットを終了」と異なり, 現在のショートカットの実行を停止した上で, 指定内容を出力させることができます.

 自己完結型のレシピでは余り使わないかもしれませんが, 他のレシピに値を渡したい場合, 好きな場所でこのアクションを使って元のレシピの入力として渡すことができます.

 

 

イメージからテキストを抽出

 予め出力しておいたイメージを指定し, テキストを抽出するアクションです.

 

 

f:id:thetheorier:20210921120947p:plain

 シンプルにレシピを組むなら画像の通りです.

 

 

f:id:thetheorier:20210921121139p:plain

 ただこのアクション, 正直OCRとしての性能はよくなさそうです.

 

 

f:id:thetheorier:20210921121318p:plain

 日本語はおろか手書きの1が斜めになったり2の最後がちょっと伸びただけで画像の有様です.

 

 

ファイル・フォルダ

f:id:thetheorier:20210921121549p:plain

 iOS15ではファイルやフォルダをシンプルに出力するだけのアクションが追加されています.

 マジック変数も使えますが使う場があるかは今は思いつかないですね.

 「ファイル」の方は問題ないのですが「フォルダ」の方はなぜか説明も含めて英語表記になっています.

 

 

ファイルの名前を変更

f:id:thetheorier:20210921122042p:plain

 指定したファイルの名前を変更します.

 このアクションだけでは保存されないことに注意です.

 

 

f:id:thetheorier:20210921122259p:plain

 「ファイルを移動」アクションは指定のファイルを好きなフォルダへ移動させます.

 移動先に同名ファイルがあった場合のオプションもあります.

 

 

フォルダの内容を取得

f:id:thetheorier:20210921122530p:plain

 「フォルダの内容を取得」は, 指定したフォルダの内容すべてを出力します.

 iOS15ではファイルやフォルダの指定にファイルピッカーを使う機会が増えている印象ですね.

 

 表示が隠れたままですが, オプションにある「再帰的」というのは, 指定したフォルダのすべてのサブフォルダのコンテンツを含むかどうか…を指定するものです.

 

 

フォルダからファイルを取得

 iOS14までは「ファイルを取得」という名前のアクションでした.

 これまではShortcutsフォルダにあるファイルに限定されていましたが, iOS15ではiCloud内のShortcuts以外のフォルダにもアクセスできるようになっています.

 それに伴い, 「フォルダ」と「ファイルパス」をそれぞれ指定する仕様に変わったようです.

 

 

f:id:thetheorier:20210921123019p:plain

 入力枠の1つ目にファイルパスを, 二つ目の枠にフォルダを指定します.

 画像の場合は「ショートカット」フォルダにあるtmp_image2/01-prefs.pngを指定しています.

 

 なお二つ目のフォルダ枠は, 項目を削除するとデフォルトで「ショートカット」となります.

 iOS14→iOS15では自動的にこうなっています.

 ファイルピッカーでフォルダを指定すると, 「ショートカット」でなく「Shortcuts」になります, どちらも同じフォルダなので問題ありません.

 

 

f:id:thetheorier:20210921123311p:plain

 iOS14の「ファイルを取得」との比較です.

 フォルダである赤枠とファイルパスである青枠の位置関係が逆転していますね.

 そもそも日本語がおかしいです, 「"フォルダ"の"ファイルパス"からファイルを取得」の方がまだスッキリします.

 

 

f:id:thetheorier:20210921124032p:plain

 これまでShortcutsで固定だったフォルダが自由に指定できるようになったため, ファイルの位置によって「フォルダからファイルを取得」の「フォルダ」と「ファイルパス」の組み合わせが複数通り考えられるようになりました.

 今回の場合iCloud以下のファイルパスは

 

Shortcuts/tmp_image2/01-prefs.png

 

ですから, フォルダとしてShortcutsを指定してもいいですしその下のtmp_image2でもよく, ファイルパスはそれに応じて変わります.

 結果今回の場合画像の3つのアクションはすべて同じ結果を返します.

 

 この仕様変更はファイル指定における汎用性を高める結果となりました.

 どういう名前か, 作成した時点で確定していない場所からはファイルパスの方で指定して分けることができます.

 

 

共有

f:id:thetheorier:20210921125244p:plain

 「共有」自体はこれまでもありましたが, 共有から受け取る入力の種類の指定がレシピ側から行うよう変更されています.

 

 

f:id:thetheorier:20210921125417p:plain

 また受け取った入力がない場合のアクションを選択できるようになっています.

 

 

f:id:thetheorier:20210921125521p:plain

 例外処理として対応させて終了したり, 「入力を要求」で入力を手打ちしたりクリップボードを入力として渡すことができます.

 

デバイスの詳細

f:id:thetheorier:20210921125756p:plain

 「デバイスの詳細」はすでにアクションとして存在しますが, iOS15ではマジック変数と並列して使えるようになっています.

 もちろん「デバイスの詳細」アクションも残っています.

 

 

 

 アクションによってはフォームがかなり変わっているため混乱すると思います.

 「フォルダからファイルを取得」のように位置関係まで変わってしまうと双方異なるバージョンで見たとき「そのまま参考にする」ことすら難しくなるので露骨な変化は避けてほしかったですね.

 

 アプリの動作不良についてはまだ初日なので確実な情報がありません.

 β版で報告されたケースがすべてとも限りませんので少し待ちましょうか.

 

 

【iPhoneショートカット】新型コロナウイルスの感染者数データ【内閣官房】

f:id:thetheorier:20210826113535p:plain

 結構前に内閣官房のHPでオープンデータが公開されていました.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS14.7.1

 

 

スポンサーリンク

 


 

 

感染者数などのJSONデータ

corona.go.jp

 データ自体は厚生省のものでですが, 厚生省ではCSVで公開しているものを, ここ内閣官房ではJSONにして公開しています.

 シンプルな構造ならショートカットで扱うことを考えるとどちらでもあまり難易度は変わりませんが後者の方がやはり便利です.

 

 

ダウンロード

www.icloud.com

 

 

レシピ

 今回もレシピを見てみます.

 

f:id:thetheorier:20210826114058p:plain

 ここで公開されている感染者数データは

 

  • 累積の陽性者数
  • 入院治療等を要する者
  • 累積の死亡者数

 

の3つです.

 実際にはもう一つ, 都道府県別のデータがあるのですがJSONの作りが他と異なるため今回は外しました.

 画像の通り, 名前とURLの組で辞書に入れておきます.

 

 

f:id:thetheorier:20210826114459p:plain

 続いて調べたい開始日とそこからの日数を入力させます.

 

 

f:id:thetheorier:20210826114629p:plain

 最初に追加した3つのJSONデータを「Webの内容を取得」で読み込んでおきます.

 

 

f:id:thetheorier:20210826114831p:plain

 ここからは日ごとの繰り返し処理です.

 そのまえに予め内部演算ように開始日を指定した変数(ここではtmp_date)を設定しておきます.

 各感染者数データは日ごとに辞書の形式となっているため, 各々を改行で分割し, 「ファイルにフィルタを適用」で該当日を含む行(のJSON)を取り出し, 「入力から辞書を取得」で辞書にしてから「テキスト」アクションで好きな体裁に整えます.

 

 

 

f:id:thetheorier:20210826115243p:plain

 同じことを他の2つのデータでも行います.

 

 体裁を整えたテキストは何らかの形で結合処理します.

 

 

f:id:thetheorier:20210826115531p:plain

 こうして得られた結果(今回の変数value)は1日分のものです.

 複数日実行することを想定し, これを改めて他の変数(今回はdata)に追加します.

 最後に内部処理用の日付変数(tmp_date)を一日増やし, 変数valueを次の繰り返しでつ使い回すために「ショートカットの入力」でクリアしておきます.

 最後に繰り返しを終えたところで変数dataを表示して完了です.

 

 

f:id:thetheorier:20210826115824p:plain

 これで開始日と日数を指定することで…

 

 

f:id:thetheorier:20210826115918p:plain

 指定日から指定日数分の感染者数データが表示されます.

(画像が見切れていますがちゃんと7日分あります)

 

 

 今回はChartyでのグラフ化は割愛しました.

 

 大本のページでグラフ付きで見れますが, ページ上のメニューが邪魔で見づらいですね(スマホでは見やすいですが).

 

 

【iPhoneショートカット】好きな画像を使ってバナーリンクを作る

f:id:thetheorier:20210915110721p:plain

 パネル型のアプリ・Webランチャーとして使うこともできます.

 

 

blog.thetheorier.com

 iOS15の方は少し仕様が異なるのでこちらを.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS14.8

 

 

スポンサーリンク

 


 

 

「名前」を使う

 ショートカットでは対象の名前を取得したり変更できます.

 そこで予めURLスキームやWebリンクそのものをその画像の名前にしておき, 名前を取得して開けば良いのでは?というのが今回のアイデアです.

 

 

f:id:thetheorier:20210915111707p:plain

 というわけで画像のように予め画像を作り, 名前もURLスキームやWeb URLにしておきます.

 ただしいくつか注意点と約束事を決めておきます.

 

  1. 今回は「ファイル」アプリに保存した画像を使います. 「写真」アプリでも可能ですが名前の変更といったカスタマイズは「写真」アプリでは直接できないためです(別レシピを用意して名前の変更と確認はできるので不可能ではありません)
  2. 今回組むレシピの都合上アイコンの並びが狂ってしまうため, 名前の先頭にインデックス用の文字列を追加しています.
    例えば3番目をTwtitterを起動させるパネルとしたい場合, 名前を03-twitterとします(twitterはTwtitterのURLスキームの一つ).
    よってあとで不要な部分を取り去る処理が必要です.
  3. 「ファイル」アプリでは名前に:(コロン)が使えません.
    なのでURLスキームやWeb URLはそのままでは使えないためわざと端折ったり別の文字で代用し, 後で戻します.
    今回は画像の通り, URLスキームの場合は://を省略し, Web URLの場合は://の部分を(に置き換えた状態で名前を付けています.
    戻す際はこの(の有無で場合分けします.
  4. 今回は結果を表示するだけにします.

 

 

レシピ

f:id:thetheorier:20210915113049p:plain

 というわけでレシピを組んでいきます.

 まず「ファイルを取得」で用意したパネル画像のフォルダを読み込みます.

 その結果を「ファイルにフィルタを適用」で並び替えます.

 「並び順序」を「名前」にし, 「順序」を「アルファベット昇順」にしておきます.

 これで予め名前の先頭に入れた番号に従って順番が整います.

 

 

f:id:thetheorier:20210915113724p:plain

 取得したパネル画像より「リストから選択」で一つ選ばせます.

 このプロンプトで改行付きの文字列を入れられたら良かったんですが, 対象がイメージの場合は1行目しか表示されないようです.

 

 そして選択したイメージの名前を取得します.

 この名前はdd-xxxx~(ddは数字)となっているため, 「テキストを置き換え」で取り除きます.

 表示を増やして「正規表現」をオンにし, マッチさせたい場所(灰色で「こんにちは」とある方)に

 

\d\d-

 

と書きます(\dは正規表現で半角数字にマッチします).

 今回は削除するので置き換え先(灰色で「世界」とある方)には何も入れません.

 

 今回dd-xxx~としたのに特に意味はなく, 僕がそう決めただけです, なのでハイフンは無くてもいいですし他の決め方でもいいです.

 その場合この箇所はそれぞれに応じて変更する必要があります.

 

 いずれにしろこれで選択したパネル画像の名前で, 不要な番号などを取り除いた結果が得られました.

 

 

f:id:thetheorier:20210915114530p:plain

 ただしこの時点では決め事の3にある通り, 「ファイル」アプリの都合でコロンを含む文字列が代用表記されたまま, あるいはURLスキームの場合は末尾の://がありません.

 なので今回の場合は例えば代用記号として使った(を含むかどうかで文字列の復元を行います.

 (を含まない場合というのは今回はURLスキームなので, 末尾に://を付けます.

 (を含む場合は今回はWeb URLなので(を://に置き換えたものを使います.

 

 これで完了です.

 

 

f:id:thetheorier:20210915114902p:plain

 実行してみると, 画像を選ぶ感覚でURLスキームやWeb URLを取得することができます.

 実際にはこれを「URLを開く」などで開くことになります.

 

 

(応用)パネルを下げる

 このままだと先頭のパネルは画像上に固まった状態になります.

 画面の大きい端末だと片手では届きません.

 

 しかし先程の通りプロンプトの行数を増やして下げることもできません.

 

 というわけで空のパネルをその場で作って無理やり下げることにします.

 

 

f:id:thetheorier:20210915120723p:plain

 まずは行数を決めておきます.

 「辞書」アクションにする必要はないです.

 

 

f:id:thetheorier:20210915120823p:plain

 続いて前回同様パネル画像を読み込んでフィルタを適用します.

 

 

f:id:thetheorier:20210915120941p:plain

 最初に指定した行数分の空のパネルを作ります.

 iPhone8では上の通り1行あたり4枚なので, 行数×4だけパネルが必要です.

 

 そもそもどうやって空のパネル(画像)を作るか…ですが, いくつか試行錯誤した結果, 「テキスト」アクションを対象に「入力からイメージを取得」を行うことで真っ白の画像を作れるようです.

 「テキスト」アクションの中には文字を書いても書かなくても取得した画像は真っ白です.

 これを好きな変数に追加し, 最後に本来のパネルを同じ変数に追加します.

 

 

f:id:thetheorier:20210915121454p:plain

 こうして得たパネルの列を使い, 「リストから選択」で一つ選び, その名前を取得します.

 

 さて, このままだと空のパネルも選択できることとなります.

 その場合, 空のパネル画像の「名前」は一体何なのか…ということで見てみると, どうやら順番に

 

PDF-1, PDF-1-2 ,PDF1-3, PDF-1-4, …

 

となっているようです.

 そこで共通項である"PDF-1"を含むかどうかで空パネルとの区別をつけることにします.

 

 

f:id:thetheorier:20210915121625p:plain

 選択した画像の名前に"PDF-1"を含んでいない場合は, 前回と同じようにして名前から必要な文字を取り出して処理します.

 

 

f:id:thetheorier:20210915134939p:plain

 その他, つまり"PDF-1"を名前に含むパネルの場合は今回はこのレシピを呼び出す, つまり始めに戻るようにします.

 

 レシピはこれで完了です.

 

 

f:id:thetheorier:20210915135056p:plain

 これで行単位で全体のパネルを下に下げることができます.

 

 

f:id:thetheorier:20210915135146p:plain

 ただこの行下げの処理は意外と時間がかかるようで, 3行辺りから処理の重さが気になるレベルです.

 

 

 アイデアが浮かぶきっかけはRedditのとある投稿だったのですが, 早々に削除されたようで執筆しようとした頃にはもう見つかりませんでした.

 

 空パネルはレシピのループに使うだけでは勿体ないのでフラグや何らかのパラメタ編集などの設定に使うといいです.

 

 そもそもメインのパネル操作にしても, アプリやWeb URLの起動だけに使うのは勿体ないですね.

 ショートカットでできるアクションのどれでも適用できますからもっと好きなものに応用してください.

 

 

【iPhoneショートカット】ビットシフトを利用したチェックリスト

f:id:thetheorier:20210907160909p:plain

 先日使えることが分かった論理演算を使って, 簡単なビットシフト操作を検証します.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS14.7.1

 

 

スポンサーリンク

 


 

 

ビットシフトでフラグ制御

blog.thetheorier.com

 前回の投稿でビットシフトについて紹介しました.

 多少強引ですがショートカットでも整数型変数をビットフラグとして扱うことができることが分かったため, これを使ってチェックリストを作ってみます.

 

 前回分かった通り, (最近の)iPhoneの64ビットなので理屈では一つの数で最大64個のフラグを扱えます.

 つまり一度に最大64項目のチェックリストが作れます(数を一つ扱う場合).

 

 

 予めこちらで決めた方針を先に書いておきます.

 

  1. チェックリストの項目と、それぞれの初期値(flg)を予め与えておく
  2. シフト演算を行うためflgを10進数に変換
    なおチェックするごとにループ処理させるために、「ショートカットの入力」の値が存在するかどうかで処理を分けます、つまり以下のようにします
    「ショートカットの入力」が空
      → 1で与えた初期値(を2で10進にしたもの)をflgに代入
    「ショートカットの入力」が空でない
      → 「ショートカットの入力」をflgに代入
    こうして得たflgをその時点での初期フラグとして採用します
  3. 2で与えられたflgに従ってチェックマークあり・なしのチェックリストを新規作成し、「リストから選択」で選択させます
  4. 3で選択した項目に対応するflgのビット値を反転させます
  5. 4で更新されたflgを10進数変換したものを「ショートカットを実行」する際の入力にします
    これで2回目以降は更新されたflgが「ショートカットの入力」となります

 

 10進変換を除けば, ループ処理での値の引き継ぎの流れは基本的にこうなります.

 初期値を保存したい場合は別の変数を入力として繰り返すことになるでしょう.

 

 

 

レシピ(初期値あり)

 ではレシピです.

 見出しにある通り, 初期値を省略した場合も後に加筆してあります.

 

 

f:id:thetheorier:20210907162536p:plain

 まずチェックリストの核となる項目を「リスト」アクションに書き上げます.

 そして「テキスト」アクションに対応する初期値を入れておきます.

 

 

f:id:thetheorier:20210907162657p:plain

 初期値はビットの値が0のとき「オフ」, 1のとき「オン」ということにし, また下位のビットからリストの順に対応するよう今回は定めています.

 今回はチェックリストなので1がチェックされた状態, 0がチェックが外れた状態を意味します.

 実際には逆にしても構いません, そのときは対応するよう以降の中身を変更することになります.

 

 こういったルール決めに絶対はないですが, 下位ビットから順に項目と対応させるのが普通かなぁ…と思います.

 

イメージ
  データ5 データ4 データ3 データ2 データ1
ビット 5 4 3 2 1

 今回はこういうイメージでチェックのオンオフを決めています.

 例えばデータ1とデータ4だけオン, 残りがオフの場合01001(2)なので10進数で9となります.

 

 本当は「辞書」アクションを使いたいところなんですが, 今回のような扱いをする上で「辞書」アクションは却って使いづらいのでこうなりました.

 

 

f:id:thetheorier:20210907164601p:plain

 というわけで方針通り, 「ショートカットの入力」の有無で場合分けします.

 

 まずは「ショートカットの入力」が空の場合です, このときは最初に決めたバイナリ表記の初期値を10進数に直さねばなりません.

 いくつかの方法がありますが, ここでは前回紹介したシフト演算を使います.

 まず予め初期値としたバイナリ値の桁数を計算しておきます.

 続いて初期値の文字列を1文字ごとに分割し, 「各項目を繰り返す」で各桁ずつ10進に直して足し合わせます.

 n桁のバイナリ値におけるk桁目がa(=0or1)のとき、これは10進数だと\displaystyle a\times 2^{k-1} となります.

 しかし「各項目を繰り返す」では分割したバイナリ値の上位ビットから処理するので実際には

 

\displaystyle \text{繰り返し項目}\times 2^{n-\text{繰り返しインデックス}}

 

としなければなりません.

 この結果を足し合わせて改めてflgとすることで, バイナリ表記だったものが10進に変換されます.

 

 

 「その他の場合」は既に一度以上ループしてflgが「ショートカットの入力」に代入された状態なのでこの「ショートカットの入力」を改めてflgに代入するだけです.

 

 

 

f:id:thetheorier:20210907170927p:plain

 次は方針の3, 上で与えたflgに従ってリストにチェックマークを入れます.

 そのためには特定のビットを取得する必要があります.

 

 例えば11=1011(2)を考えます.

 例えばこの3ビット目をどうやって表現しましょう.

 

 一つの方法として, これを2(=3-1)だけ右にシフトして10(2), 更にこれを2で割った余りをとれば0となって値がわかります.

 

 同じことを10進数で考えてみるとわかると思います.

 例えば123の2桁目を取り出すことを考えます.

 これを1(2-1)桁下げて12, 更に10で割った余りを取って2になりますね.

 

 これを「計算式」アクションで表現すると

 

fmod(flg>>繰り返しインデックス-1,2)

 

となります. (この数式は他でも応用ができます)

 この結果が1ならチェックマーク(好きなものでいいです)を入れた状態の「リストからの項目」を新しい変数(今回はvalue)に追加, 値が0なら「リストからの項目」そのままを新しい変数に追加します.

 これで変数valueがチェックマーク付きの新たなリストとなります.

 

 

f:id:thetheorier:20210907174729p:plain

 上で得られた新しいチェックリストを使って「リストから選択」で項目を選択させます.
 「複数を選択」は好みで設定します.

 複数選択の場合は「完了」をタップする必要があるため手間数がループのたびに1回増えます.

 

 

f:id:thetheorier:20210907175013p:plain

 次は方針の4, 上で選択した項目に対応するフラグを反転させます.

 選択した「繰り返し項目」はチェックマークが付いているため予め外しておき, これ(=アップデートされたテキスト)と元のチェックリストが該当する繰り返し項目(=繰り返し項目2)のインデックス(=繰り返しインデックス2)に対応するフラグのみ反転させればOKです.

 

 ビット反転を行うには論理演算のxorを使います.

 現時点でのフラグであるflgと, 一致するビットの該当箇所 2^{\text{繰り返しインデックス2}-1} のxorを取ればそこだけ反転します.

 

 

f:id:thetheorier:20210908065736p:plain

 最後に「ショートカットを実行」でこのレシピを繰り返します.

 「入力」には変数flgを入れておきます, これを忘れるとチェックした操作が反映されません.

 

 

実行

f:id:thetheorier:20210908065917p:plain

 これで, タップした項目のチェックマークが反転するようになります.

 

 

レシピ(初期値0固定)

 上のレシピが汎用版なので基本的に上の通りで問題ないですが, 初期値がすべて0となるように作る場合はレシピ前半を少し簡単にできます.

 その箇所だけ説明しておきます.

 

 

f:id:thetheorier:20210908070314p:plain

 まずチェックするための項目を「リスト」アクションに書き込むのは前回と同じです.

 

 

f:id:thetheorier:20210908070428p:plain

 初期値が0=000...0(2)なのでバイナリから10進に変換する必要がなくなります.

 そのため最初にflgに代入する操作は単純に0を設定するだけで済みます.

 

 以降のレシピは前回とまったく同じです.

 

 

 汎用版はflgの10進変換の処理だけアクション数が増えるので処理時間は増えますが, 体感では余り違いを感じることはないと思います.

 

 

【iPhoneショートカット】シフト演算アクションを使ったビット操作

f:id:thetheorier:20210906104206p:plain

 先日使えることが分かった論理演算を使って, 簡単なビットシフト操作を検証します.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS14.7.1

 

 

スポンサーリンク

 


 

 

シフト演算について

 我々が普段使っている数の操作は10進数ですが今回は2進数です.

 例えば1234という数を右に1桁動かすと123となりますね(小数以下に下がったものはここでは無かったことにします).

 これを2進数で行うのがビットシフトです.

 

 当然シフトする方向は右と左の2通りあります.

 右シフトは上の通りですが左にシフトする場合, 追加された末尾は0を入れます.

 例えば101(2)(2進数であることを表すのに、末尾に(2)を書きます)を左に1つシフトする場合は1010(2)になります.

 

 因みにシフトした結果は元の数とどういう関係があるでしょうか.

 例えば10=1010(2)を右に1シフトすると101(2)であり, これは10進数の5です.

 つまり右シフトは元の数を2で割る操作と言えます.

 

 しかし厳密には異なります, 例えば9=1001(2)は2で割っても整数ではありません.

 これを1右へシフトすると100(2), これは4ですね.

 元の数が奇数である場合, 1右へシフトした結果は元の数を1引いて2で割った結果と同じになります.

 

 言い換えるならば, 右へ1シフトさせる操作は数を2で割った結果を更に小数点以下切り捨てたものです.

 

 対して左シフトは単純に元の数の2倍になります.

 

 但しプログラム言語のように, 対応する値に限界がある場合は単純ではありません.

 例えば4ビットmaxの型で10=1010(2)を左に1シフトするとします.

 単純に考えれば10100(2)になるわけですが今回は4桁までしか表現できません.

 なので4桁に収まるよう, それを越える桁は削除されます, つまり今回の場合0100(2)=100(2)=4となります.

 

 iPhoneを含む昨今のスマホは64ビットなので基本的に2^64=18446...5551616(20桁)という数がビット操作のキーとなります.

 

 

基本演算

f:id:thetheorier:20210906105951p:plain

 シフト演算を「計算式」アクションで使用するには, 画像のように

 

11>>2

 

などと, 対象の数とシフトさせたい数で>の記号2つを挟みます.

 2つの数はともに10進数で書き, また結果も10進数で返ってきます.

 今回の「11>>2」は「11=1011(2)を右に2シフトする」という意味になります.

 1011(2)を右に2つシフトすると10(2)ですから10進数の2, というわけで結果は正しいですね.

 

 

 これを踏まえて, 好きな数を好きな桁だけ右シフトさせた結果を計算してみます.

 

 

f:id:thetheorier:20210906111046p:plain

  まず元となる数(numとしました)の入力をします.

 

 

f:id:thetheorier:20210906111144p:plain

 続いてシフトさせたい桁数(shift)と入力させ, 「計算式」アクションで

 

num>>shift

 

として結果を表示させます.

 

 

f:id:thetheorier:20210906111301p:plain

 結果を確認してみます.

 

 例えば11=1011(2)と3回右へシフトさせると

 

1011(2)→101(2)→10(2)→1(2)

 

なので1になりますね.

 

 

応用:指定桁のバイナリ表示

 今度は対象の10進数をバイナリ, つまり2進数にした値も計算し, それを入力フォームのプロンプトに表示した上で指定の桁だけ取り出してみます.

 

 10進数を2進数に変換するオーソドックスな方法は2で割り続けてその時々の余りを見ることですが, 今回はせっかくなのでこの変換もビットシフトで行います.

 

 

f:id:thetheorier:20210906111757p:plain

 まず前回同様, 元の数numを入力させます.

 numの(2進数での)桁数で繰り返しをするので2を底とする対数を取り, ceilで小数点以下を丸めます.

 但し単純に \displaystyle \text{ceil}\left( \frac{\log{\text{num}}}{\log{2}} \right) としてしまうとnumが2の累乗のとき「桁数」が1減ってしまいます, そこで \displaystyle \text{ceil}\left( \frac{\log{\left( \text{num}+1 \right)}}{\log{2}} \right) と, 分子側の対数の中をnumでなくnum+1とします.

 こうして得た値をnumの桁数としてdigitsの名で代入します.

 

 

f:id:thetheorier:20210906112759p:plain

 上で桁数が分かったのでこれを使って繰り返し操作を行います.

 論理演算の一つである論理積andはともに1である場合のみ1を返します.

 なのでチェックしたい桁を1の位までビットシフトし, 1と論理積をとればその桁が1か0かがわかるというわけです.

 例えば11=1011(2)の3ビット目は0ですが, これを右に2シフトさせると10(2), この結果と1の論理積を取ると0となります.

 この操作をきちんと書くと

 

(11>>2)and1

 

となります.

 この考え方を使えば好きな桁のビットがなんであるか…がわかるわけです.

 今回の場合は

 

(num>>tmp)and1

 

であり, この結果を順番につなぎ合わせれば対象の数numの2進表示が得られます.

 

 

f:id:thetheorier:20210906113910p:plain

 あとはこれを「入力を要求」のプロンプトなどに使いつつ, 先ほどと同じビットシフトを行った結果を計算, 表示させます.

 

 

f:id:thetheorier:20210906114036p:plain

 これで対象の数とそのバイナリ, ついでにその桁数がわかる状態で桁を指定できるようになりました.

 

 

f:id:thetheorier:20210906114958p:plain

 因みにはじめに指定する10進数の限界は16桁のようで, それを越えると下の桁が0に丸められてしまいます.

 

 

応用:NOT演算

 執筆時点でショートカットにはNOT演算はありません.

 ただ0と1を反転させるだけじゃ…と思うんですが無い以上は諦めるか, 他の手段を使うしかありません.

 

 

f:id:thetheorier:20210906115331p:plain

 というわけで考えられるもっともシンプルな代替案は

 

-1xor数

 

です.

 ショートカットではいわゆる「符号付き整数型」を使っているようですが, 表記上は-1で問題ないわけです.

 今回は試験的に0から10に対してnotの代わりにこの操作を行った結果を見ていきます.

 

 

f:id:thetheorier:20210906120812p:plain

 結果がこちらです.

 整数型が64ビットであること, そして2^64-1で反転していることもわかります.

 

 

f:id:thetheorier:20210906121543p:plain

 もちろん, -1と等価な2^64-1に置き換えても結果は同じです.

 

 

 次回はこのシフト演算を使った実用レシピを紹介します.