iPhone15から搭載されたアクションボタンは、デフォルトではよくある機能が割り振られていますがショートカットレシピをあてがうことが可能です.
しかしiPhone14以前のシリーズには当然ボタンはありません.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS17.0.3
スポンサーリンク
レシピ自体は作れる
God mode: Action Button change based on orientation ‼️
— Dan Vittorini (@vittortech) 2023年9月23日
Portrait = Toggle Silent Mode
Landscape Right = Take Photo
Landscape Left = Take Video#iPhone15ProMax #iPhone15 #actionbutton pic.twitter.com/D5QuQtprrQ
仕組みはアクションボタンを押下した際に端末の傾きで場合分けして様々なアクションを実行する…というものです.
しかしデフォルトのままでは傾きを判定するアクションはないため、ショートカットを補助するアプリのひとつであるActionsというアプリを使います.
このアプリをインストールしておくとショートカットから(今回の場合)"Get Device Orientation"というアクションが使えるようになります.
このアクションによって端末の傾き次第で
- unknown
- portrait
- portraitUpsideDown
- landscapeLeft
- landscapeRight
- faceUp
- faceDown
を出力するので各々に応じて最大7種類の機能を使い分けることができます.
…と言っても通常unknownを出力することはまれであるため、実際には6種類とするのが妥当です.
これで実行時の端末の傾きによって好きなアクションを実行できます.
アクションボタンのない端末の場合
アクションボタンを持つiPhone15シリーズはボタンを使うことで自らタイミングを選ぶことができます.
そうでないシリーズは主にアクセシビリティや背面タップ、NFCタグから実行するのが妥当でしょう.
しかしこれらは傾き次第ではうまく実行し辛い場合があります.
例えば背面タップでfaceUpの判定はテーブルに置いている状態では不可能ですしシールタイプのNFCタグは傾きの判定が著しく制限されます.
なのでそのデメリットを少しでも軽減させる工夫が必要です.
妥当な解決策として考えうるのは実行時に少しだけ待機させることです.
画像のようにレシピのはじめに1秒ないし2秒ほど「待機」アクションで待たせ、その間に自ら傾きを整えるという理屈です.
端末が伏せられた状態など、レシピが実行されたか分からない状況を想定して最初に「デバイスを振動させる」アクションを入れるのも良いです(iPadは対応していません).
いずれにしろActions自体は他のシリーズでも使えますから、あとはどうやってレシピを実行するか…の違いでしかありません.
工夫次第ではアクションボタンなしでもある程度便利に使うことができます.
Get Device Orientationの出力について
先に書いた通り、Actionsの"Get Device Orientation"はunkownを除いて6つの結果を出力します.
英語なのでどれがどういう意味か分かりづらいというDMがあったのでここで簡単に説明します.
まずは前後の傾きです.
手前を0°とした場合、0~45°および315~360°の90°の場合は"faceDown"を出力します.
45~135°の場合は"portrait"を出力します.
135~225°の場合は"faceUp"を出力します.
225~315°の場合は"portraitUpsideDown"を出力します.
普段遣いなら使用時はportraitやfaceUpが多いでしょうね
テーブルに伏せている場合はfaceDownです.
ポケットに上下逆で入れる場合はportraitUpsideDownです.
次は左右の傾きです.
iPhone15シリーズの場合コネクタ左にラインがかかっている(画像の赤矢印)ので端末が起きている状態を0°とします.
0~45°および315~360°の場合は"landscapeRight"を出力します.
45~135°の場合は"faceUp"を出力します.
135~225°の場合は"landscapeLeft"を出力します.
225~315°の場合は"faceDown"を出力します.
手で持って使う場合はfaceUpやfaceDown寄りになりますがスタンバイモードなど横向きでスタンドに置いている場合はlandscapeRightやlandscapeLeftになるでしょう.
〆
これは傾き判定自体の影響だと思いますが、伏せた状態で持っている場合の判定は曖昧だったりします.
いずれにしても傾き判定は他の目的でも使える面白いアクションですね.