26
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Siri湯婆婆(iOS ショートカット入門)

Last updated at Posted at 2020-11-09

元ネタ:Javaで湯婆婆を実装してみる


天邪鬼なので簡単に流行りに乗るのもいかがなものかと思ったのですが、これなら他人と差別化もできてるし……というわけで書きました。果たしてショートカットは技術記事なのか疑問ですが、まあ大丈夫でしょう。

ショートカットについて

AppleがWorkflowというアプリを買収して改良?1したものです。iOS 12からApp Storeで提供され、iOS 13からプリインストールされています。__簡単なツールを作る__のにはもってこいだと思います。自分用のCLIコマンドみたいイメージです。(もちろんShortcutsGallery.comなんかで広く共有されているものもあります。)iOS 14ではアプリのアイコンが変えられる!なんて巷では話題になってましたが、ここでは本来の使い方をしてあげましょう。

完成形

リンクはこちらです。他人の作ったショートカットを追加するには設定->ショートカット->信頼されていないショートカットを許可する(Allow untrusted shortcuts)をオンにする必要があります。

作り方

簡単なんでどこまで書くべきかわからず、無駄に詳細まで書いてしまいました。

開く

何はともあれ開かないと始まりません。iOS端末を持ってない人は買い、iOS 12未満の人はOSアップデート、iOS 12の人はApp Storeからインストール。ただ今回使うアクションがいつからあるものかは調べてません。下手したらiOS 14以降でしか使えないかも。

名前を聞く

アクションを追加(Add Action)ボタンを押して、入力を要求(Ask for input)を追加します。スクリプティング(Scripting)の中にありますが、数が多いので検索したほうが早いです。設定と画面サイズによってはスクリプティまでしか表示されないクソ仕様付き。僕はこれが嫌で端末の設定を英語にしてます。

half_modal.jpg

追加したアクションのプロンプト(Prompt)に「契約書だよ。そこに名前を書きな。」と書きます。

ask_for_input.jpg

デバッグするのは簡単です。右下の▶️ボタンを押すだけ。実行している箇所もわかるので普通にインタプリタ言語感覚で使えます。

debug.png

文字列埋め込み

次に湯婆婆に喋らせたいので、アラートを表示(Show Alert)を追加します。内容は「フン。<名前>というのかい。贅沢な名前だねえ。」ですから先ほど取得した名前を表示させるため、文字列を埋め込む必要があります。と言ってもキーボードの上に常に表示されてるので迷う人はいないでしょう。指定入力を選択し、そのまま後半を入力すればOKです。

interpolation.jpeg

ついでに表示を増やす(Show more)から"キャンセル"ボタンを表示をオフにしておきました。

1文字抜き出す

残念ながらショートカットのテキストはコレクションではないのでSwiftみたいにtext.randomElement()みたいな便利な方法はありません。とはいえ2アクションで実装できます。

random_character.jpeg

テキストを分割をアクションに追加して、テキストに指定入力と入力します。改行ごと1文字ごとに変更しましょう。リストから項目を取得で分割したテキスト(テキストを分割)からランダム項目を取得します。

完成

最後に「今からお前の名前はリストからの項目だ。いいかい、リストからの項目だよ。分かったら返事をするんだ、リストからの項目!!」とアラートを表示するだけです。

あとは右上の三点ドットから(一番上までスクロールしてないと表示されないおまけ付き!)ショートカットの名前とアイコンを変えれば完成です。

config.PNG

Siri

ショートカットで作ったものはそのままSiriから呼び出せます。

これで冷たいプロンプトと湯婆婆ごっこする必要はありません。Siriと湯婆婆ごっこを楽しみましょう!

おまけ

簡単なTipsとか。

変数名

指定入力とかリストからの項目とか変数名にしたくないというそこのあなた、朗報です。ショートカットには変数名を設定する方法が複数存在します。1つ目、変数を設定というアクションを使うとその変数にアクセスしやすくなります(うまく言語化できない……。下の写真の通りです)。

set_variable.png

そしてもう1つは名前だけ変える方法。今回のようにアクション数が少ない場合に有効な手です。変数をタップすると何やら色々設定が出てきますが、その中の名称変更から自由に名前を変更できます。元の名前でわかりやすかった「どこからきた値なのか」はアクションを表示から簡単に確認できるので、困ることはありません。

rename_variable.jpg

ネスト

ショートカットは処理を関数に切り出せません。__ネストが自然と深くなってしまう__ので、if2つがネストする場合にうまく1つにするなどする必要があります。実はもう1つ方法があって、_他のショートカットに切り出せばいい_のですが、これをすると人に共有しづらくなるためなるべく避けたほうがいいです。

ただショートカットを関数として扱えるということは再起関数も書けるということです。再起が書けるからって使うか?って話ではあるんですが、どうせならTipsらしくということで書いときました。下の動画はフィボナッチを作った時のやつです(昔作ったんですが動画がなかったのでさっき撮りました)。

ドキュメント

まあなにせ簡単なので適当にいじるだけで十分だと思いますが、ショートカット ユーザガイドに割と色々載ってるので、見てみるのもいいかもしれません。

  1. ショートカットの愚痴

26
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?