(2020年2月)


PDF版はこちら


はじめに

Apple社が提供する「ショートカット」アプリは、さまざまな操作を自動化することができる非常に便利なアプリです。できることがたくさんあるのと、プログラミング的な要素があるのでぱっと見て「難しいなぁ」と諦めてしまう人もいます。でも、この便利さは無限の可能性を秘めていますので、使わない手はありません。

指伝話メモリは、ショートカットアプリで作成したショートカットを呼び出すことができるので、指伝話メモリのカードを選択した時に、iTunesから音楽を選択して再生する、家族にメッセージを送るといったことができるようになります。
指伝話コミュニケーションパックには、Yubidenwa ショートカットがあるので、よく使うショートカットを簡単に呼び出すことができます。このショートカットはバージョンアップの度に機能が追加されていますが、自分専用のショートカットを作りたい方もいらっしゃると思います。

この説明書では、iTunesライブラリから音楽を検索し、再生するアプリを作る過程を説明しています。最初は単純に指定した曲を再生するだけですが、曲を指定したり、再生や一時停止の機能を追加することで、ショートカットを作成する過程を知っていただくように説明しています。
最終的には、指伝話メモリから呼び出して使うことを想定しているので、それに関する説明もありますが、ショートカットは単体で使うこともできますので、初めてショートカットアプリで何かを作ってみたいという方は、参考にしてください。


ショートカットについて

ショートカットは、iOS 12から正式にサポートされたアプリです。iOS/iPadOS 13になって機能が増えました。また、ショートカット作成の方式も大きく変わりました。
この説明書は、基本的にiOS/iPadOS 13を用いて説明します。iOS 12での違いについては補足しますので参考にしてください。
作成したショートカットは、他の人と共有することができます。つまり、自分の作ったショートカットを誰かにあげたり、他の人の作ったショートカットをもらうことができます。
しかし、ショートカットのバージョンが異なると、そのやりとりができない場合がありますのでご注意ください。


ショートカットアプリ

インストール

AppStoreから ショートカット アプリをダウンロードしてください。無料です。

 

最初の設定

設定 アプリ を開き、ショートカット の欄を開くと、信頼されていないショートカットを許可 が選択できない状態になっている場合は、次の手順で選択できるようにします。
選択できる状態になっていれば選択して、次のステップに進んでください。

ショートカットは、誰もが作ることができ、他の人に配布することができます。ギャラリーと呼ばれるショートカット集から気に入ったショートカットを取り込むこともできます。
公式に認められ動作確認を受けたショートカットのことを 信頼されているショートカット と呼び、一般に作られたショートカットは 信頼されていないショートカット と呼ばれています。信頼されていないと言われると不安になりますが、中身がわかって使ってくださいね、という意味です。自分たちで作ったショートカットを他の人にあげたり、もらったりして使う場合は、信頼されていないショートカットを許可 をオンにしておく必要があります。
ショートカットアプリをインストールした直後は、この許可をオンにすることができないようになっています。一旦ショートカットを自分で作成し実行した後に、初めてこの設定を変更することができるようになります。
次の手順で、シンプルなショートカットを作成して実行し、設定を変更できるようにします。

ショートカット アプリを開き、マイショートカット の画面を表示します。
ショートカットを作成 をタップして、作成画面を開きます。

ショートカットの作成画面が開かれました。
画面の左側がアクションを選択する場所で、右側が作成したショートカットが記録される場所になります。

左側の 書類 をタップします。

書類に関するアクションの一覧が表示されます。
テキスト をタップします。
右側に テキスト のアクションが作成されます。
ここでは、一度ショートカットを実行することが目的なので、処理としては何もしません。

画面右下の 再生ボタン をタップします。

ショートカットが実行されますが、処理としては何も動きはありません。

画面中央上部の キャンセル をタップして閉じます。この時に いま作成したショートカットを保存するか削除するかの確認がありますが ショートカットを削除 を選択して閉じてください。

再び 設定 アプリを開き、ショートカットの項目を表示します。
今度は、信頼されていないショートカットを許可 の項目が選択できるようになっています。
これを オン にします。

確認画面が表示されるので、 許可 をタップします。
パスコードの確認を求められた場合は、正しいパスコードを入力します。

信頼されていないショートカットを許可 がオンになりました。
以上で、最初に一度行う設定は終了です。


ショートカットの作成

まずはじめに、実行すると指定したアーティストの曲をiTunesから検索して再生するショートカットを作ります。その後、そのショートカットに手を加えていきますが、最初はシンプルなものからスタートします。

ステップ1:ショートカットの作成

ショートカットアプリを起動し、新規ショートカット をタップし作成画面を開きます。

左側の メディア をタップします。
メディアに関するアクションの一覧が表示されます。

どのカテゴリーにどんなアクションがあり、どのように使うかについては、興味を持って見ていくのが良いです。ショートカットのバージョンによってアクションは変わってきていますし、特にiOS/iPadOS 13以降は機能が多く追加されています。
iOS 12までとiOS/iPadOS 13以降では、アクションの記述の仕方も大きく変わっています。

ミュージック の項目を表示します。
ミュージックを検索ミュージックを再生 を、それぞれ順番にタップします。
右側にアクションが表示されます。

ミュージックを検索 のアクションは、条件を指定してミュージックを検索する処理です。
フィルタを追加 をタップします。

検索条件が
アーティスト 次と等しい すべて
となっています。このままだとすべてのアーティストが検索されます。
すべて のところをタップしてアーティスト名を入れます。

例では、森高千里 と入れました。これで、森高千里さんのミュージックを検索するアクションとなりました。
ミュージックを再生 のアクションは、前のアクションで検索した結果を再生するアクションです。特に変更はしませんが、 表示を増やす のところをタップして、シャッフルやリピートの指定をすることができます。
画面右上の 次へ をタップします。

ショートカット名を入力する画面が表示されます。
ここでは MyMusic と入力し、右上の 完了 をタップします。

マイショートカットに戻ると、いま作成した MyMusic ショートカットが確認できます。
MyMusic をタップすると、検索されてミュージックが再生されます。

新規にショートカットを作成する手順は、上記の通りです。
一度作成したショートカットを編集するには、マイショートカットの一覧で、ショートカットの右上の のアイコンをタップして開きます。

ショートカット名の右側にある アイコンをタップすると、ショートカットの詳細(属性)を指定する画面が表示されます。
名前やアイコンを変更することができます。

ショートカット名の左側のアイコンをタップします。

アイコンの カラー を変更することができます。

グリフ(アイコンの中のデザイン)は用意されているものから選択して変更することができます。
終わったら右上の 完了 をタップして元に戻ります。

ウィジェットに表示オン にすると、ホーム画面でウィジェットにショートカットが表示され、直接タップして実行することができるようになります。
ホーム画面に追加 をタップすると、アイコンをホーム画面に追加することができます。あたかもアプリを1つ追加したように見せることができます。

ホーム画面のウィジェットに表示されたショートカットと、アイコンで表示されたショートカット

 

ステップ2:指伝話メモリから呼び出すための方法と改良

作成したショートカットを、指伝話メモリから呼び出せるようにします。指伝話メモリはカードを選択すると音声で伝える機能を使うのが基本ですが、カードを選択すると音楽をかけるといったことができるようになります。
指伝話メモリからショートカットを呼び出すことができるということは、ショートカットでできることはすべて指伝話メモリから実行することができるということになります。
指伝話メモリからショートカットを呼び出す方法の詳しい内容は、「指伝話メモリ 1-2-3! アプリを呼び出そう編」をご参照ください。

指伝話メモリのカードの編集画面でアプリ呼び出しのところに次のように設定します。(説明欄に書いてからコピーペーストすると楽です。)

shortcuts://run-shortcut?name=MyMusic

この設定によって、このカードがタップされた時に、MyMusic ショートカットが起動されます。

指伝話メモリからショートカットを呼び出して実行することはできますが、音楽を再生した後にショートカットの画面に留まってしまいます。指伝話メモリに戻るには、画面左上の Yubidenwa M をタップする必要があります。

この画面は、指伝話メモリから呼ばれてショートカットを実行した後の状態です。
画面右上に Yubidenwa M と表示されており、ここをタップすると呼び出し元の指伝話メモリの画面に戻ります。

しかし、音楽をかけるような処理では、ショートカット画面にとどまる必要はありませんので、ショートカットの実行が終わったら、自動的に指伝話メモリの画面に戻るようにしておくのが良いです。
作成した MyMusic を開き、左側の スクリプティング (表示は スクリプティ になっている)をタップします。
スクリプティングに関するアクションの一覧が表示されます。

一覧から Appを開く をタップします。

アプリを開くためのアクションが右側の作成されています。
選択 のところをタップして、開くアプリを選びます。

ここでは、指伝話メモリ を選択します。

これで、指伝話メモリから MyMusic を呼び出した時は、ミュージックを検索して再生した後に、指伝話メモリを呼び出して戻るようになりました。

 

ステップ3:ショートカットの機能を追加する

ステップ2までに作成したショートカットは、特定のアーティストの曲をかけるものでした。ショートカットの中の条件を設定することで、アーティストの指定だけでなく、曲名を指定したり、アルバム名を指定することもできます。
この方式では、聴きたいアーティストや曲を指定するごとにショートカットを作ることになってしまいます。しかしそれではショートカットが永遠に増え続けてしまいます。
ショートカットでは、テキスト入力を促すダイアログを表示したり、一覧からの選択を促す表示も作ることができますので、最初にそういったダイアログを表示させることによって、汎用的なショートカットにすることも可能です。
こういった工夫をしていくための基礎知識として、ショートカットの考え方について少し説明をします。

3.1 アクションの関係

MyMusic ショートカットは3つのアクションから成り立っています。アクションとは、処理や操作を指します。
アクション1は、音楽を検索する処理です。アクション2は、アクション1の結果を受けてその音楽を再生する処理です。アクション3は、指伝話メモリアプリを開く処理です。
アクションは、前のアクションから結果を受けとり、処理をし、次のアクションに結果を渡す、というのが基本的な仕組みです。それらがアクションに対する入力と出力で、どんなものを入力として受け取ることができるか、また、どんなものが処理の結果として出力できるか、これらはそれぞれの処理ごとに決まっています。

MyMusic の場合、アクション1と2は関連していて、アクション3はそれまでの処理とは関係なく存在しているのがわかります。

3.2 アクション間のデータの引き渡し

ここで、新しいショートカットを1つ作成してみます。
新規ショートカット を作成し、書類 のアクションから、テキストテキストを読み上げる の2つを選択してください。

テキストのアクションに、「おはようございます。」とテキストを入力します。

画面右下の ▶︎ をタップして、ショートカットを実行します。

ショートカットの実行をすると、最後のアクションの下に結果が表示されます。

ショートカットには、データを入れておく場所がいくつかあります。データを一時的に置いておく棚のようなものです。
このショートカットでは、「テキスト」という棚を利用しています。ここではテキスト棚と呼び説明をします。
最初の テキスト アクションで、そのテキスト棚に「おはようございます。」というテキストを入れました。
次は 書類テキストを読み上げる アクションですが、前のアクションが置いたテキスト棚を参照してデータを受け取ることができます。このアクションは、テキスト棚からテキストを受け取り読み上げる処理をします。その後にはアクションはありませんが、結果として読み上げたテキストをテキスト棚に再度戻して次のアクションに引き渡す準備をしてアクションを終えています。
このように、「おはようございます、を読み上げる」という1つの処理をするのではなく、(1)テキスト棚に値を入れ、(2)テキスト棚の値を読み上げる、という処理の流れが、ショートカットの基本的な考え方です。

いま作成しているショートカットに、同じ 書類 カテゴリーのアクションで QRコードを生成 を3つ目のアクションとして加えてみましょう。
2つ目のテキストを読み上げるアクションは、読み上げたテキストを次のアクションに引き渡すことになっていました。
3つ目の QRコードを生成 のアクションは、受け取ったテキストからQRコードを生成して、その画像を次に引き渡すアクションです。

ショートカットを実行すると、3つ目のアクションの結果としてQRコードが作成されているのがわかります。
これをiPhoneのカメラで読み取るとQRコードの内容が「おはようございます。」であることがわかります。

ショートカットのアクションには、入力と結果(出力)が定義されています。何かを受け取って処理をして結果を出す、というのがアクションの基本です。ものによっては、入力がない場合もあります。
アクションの入力と結果は、アクションの一覧で i をタップすると表示されます。
入力や結果はテキストのように1つの種類ではなく、情報の塊として渡されることが多いです。例えば、現在の天気を取得 というアクションの結果は 気象状況 です。気象情報という情報の塊の中には、日付・場所・気温・体感温度・状況・湿度・気圧など、さまざまな情報が入っています。その中から必要なものを取り出して使うことになります。そのアクションが 気象情報の詳細を取得 というアクションです。

 

ステップ4:指伝話メモリから渡されるデータを受け取る

4.1 指伝話メモリからのデータの引き渡し

ここまでは、ショートカットの中でのデータの引き渡しの話しでした。指伝話メモリからショートカットを呼び出す際にデータを引き渡すことができれば、そのデータで曲名を検索して見つかったミュージックをかけるといったことができるようになります。
最初に作った MyMusic は、ショートカットの中で指定したアーティストの曲を検索してかけるだけでしたが、指伝話メモリから指定した内容で曲のタイトルを検索してかけるショートカットに改変していく手順を説明します。
指伝話メモリからショートカットにデータを引き渡すには、次のように書いて呼び出します:
 shortcuts://run-shortcut?name=MyMusic&input=●●
この●●の部分が、テキストとしてショートカットに引き渡されることになります。
この方式であれば、ショートカットは1つであっても、いろいろな曲を検索して聴くためのカードを指伝話メモリで作成しやすくなります。
この時の引き渡される内容を 引数(ひきすう) と呼ぶことが多いです。「曲名を引数にしてMyMusicを呼び出す」というような言い方をします。
他の説明を読んだ時にも目にすると思いますが、そういうものなんだと知っていれば難しいことはありません。

4.2 ショートカットが引数を受け取るための処理

ショートカットが呼び出された時に渡される引数を受け取るために、ショートカット側で行なっておく準備をします。
MyMusic ショートカットの詳細を開きます。

共有シートに表示 を オン にし、完了 をタップして閉じます。

一番上に 受け入れる というアクションが表示されます。
その右側に 特定なし となっており、受け取りの種類は特に指定されてないことがわかります。

作成された 受け入れる アクションをタップします。

どんなものを受け取れるかを指定することができます。
今回は、指伝話メモリからの呼び出しはテキストを受け取るので、テキスト だけをチェックし、他のものはチェックを外します。

4.3 検索方法の変更

ミュージックの検索条件を変更します。
アーティスト → タイトル
次と等しい → 次を含む

アーティスト名を条件として指定していたところを削除します。

代わりに文字を入力しようとすると、キーボードの上に候補が表示されます。ショートカットとして指定できるものが自動的に表示されます。
ショートカットの入力 を選択します。これで、ショートカットが呼ばれた時に引き渡されて入力として渡されたものを参照することになります。

これで、指伝話メモリからタイトルの一部を指定してミュージックを再生するカードを作ることができるようになりました。

 

話題:ショートカットの中身を検討する

作成した MyMusic ショートカットを見直して考えてみると、いろいろと思いつくところがあります。
・指定したタイトルで曲がみつからなかった場合のこと
・同じタイトルで複数のアーティストがいた場合のこと
・同じ曲をずっと聞いていたいこともある
・アーティストやアルバムで指定したい時もある
・停止もしたいし、そうなると再生ボタンも欲しくなる
・音量調整もできたらいいな
・出力先をiPadではなく外部スピーカーにできないだろうか

これらは、すべてショートカットで実現できることです。そして、それをどう実現させるかは別な問題です。
最初に作った MyMusic ショートカットは、指定した一人のアーティストの曲を検索して聴くだけでした。それを、タイトルで検索して曲を聴くようにしたことで、指伝話メモリから呼び出す時にタイトルを条件として渡すことができるようになり、1つのショートカットでできることが増えました。
しかし、ショートカットを汎用的に作る方法だけでなく、アーティストごと、タイトルごとにショートカットを作ることもできます。後者の方が簡単ですが、数が増えてくると管理が大変になるかもしれません。
汎用的なものは、一度できてしまえば便利ですが、完成するまでにいろいろなケースを考えて作らなければならないですから、時間がかかるかもしれません。「中島みゆきさんの曲を聴けるようにして」と言われたその日にその場で指伝話メモリのカードを作って使っていただけるようにしたら満足度は高いですが、1ヶ月後では興味が変わっているかもしれません。でも、1ヶ月後に「森高千里さんも聴けるようにして」と言われた時に汎用的なショートカットがあればすぐに対応ができます。
汎用的であり、メンテナンスされ、機能が追加されていくのは、専門の人が作るものであり、それを真似してみんなが同じようにプロ仕様で作る必要はありません。どこに資源を投入するかは、置かれた状況によって考えればよいと思います。

 

ステップ5:プログラミングっぽくしてみる

MyMusic をさらに改訂して、次のような機能を加えてみました。
・引数に Stop が指定された時は、一時停止する。
・引数に Play が指定された時は、再生する。

1.1 外部から引き渡される値を受け入れます。
1.2 コメントは、このショートカットの機能など、忘れないようにメモするもので、処理としては何も行われません。

2.1 引き渡された ショートカットの入力 の内容を受け取ります。受けとったものは
どこにあるかというと、テキスト として参照される場所に入っています。
 2.2 MyText という名前の 変数 を作り、その中身として テキスト の値を設定します。

変数 というとびっくりするかもしれませんが、値を入れておく箱と理解してください。
つまり、「MyText という名前の箱に、引き渡された値をしまっておいた」ということになります。あとで「MyTextの中身をちょうだい」と言って受け取ることができます。

3.1 If文 です。条件を提示しその条件に合っている時に処理を行うという時にIf文を使いま
す。If文の終了は、3.3 にあります。
If文の条件は、「MyText の中身が _Play と等しい」となっています。その場合に、
このショートカットでは 3.2 の内容が実行されることになります。
3.2 iPad で 再生 します。
3.3 If文の終了場所です。

4.1 別な If文 です。
If文の条件は、「MyText の中身が _Stop と等しい」となっています。その場合に、
このショートカットでは 4.2 の内容が実行されることになります。
4.2 iPad で 一時停止 します。
4.3 If文の終了場所です。

5.1 別な If文 です。このIf文では、条件に合っている場合と合っていない場合とに分けて
処理をするような記述になっています。5.2 が条件に合っている場合、5.4〜5.5 が条件に合っていない場合の処理です。
5.2 何もしない という処理です。記載しなくてもいいのですが、こうして置いてあると、ここは条件にあっている場合の処理を記述するところだな、というのがわかりやすく
なるので、あえて置いてあります。
5.3 If文の条件に合ってない処理を書く場所を示しています。
5.4 MyText に入っているテキストが、タイトルに含まれる曲を検索します。
5.5 検索された曲を再生します。
5.6 If文の終了場所です。

6.1 アプリ(指伝話メモリ)を呼び出す処理です。

今回、MyText という 変数 を使いました。その中身は テキスト に入っていたものをセットしましたが、テキスト に入っていたのは何かというとそれは ショートカットの入力 でした。
それであれば、テキスト でもなく MyText も使わずに ショートカットの入力 を使えば良いのでは?と考えるかもしれません。実際にそのようにショートカットを記述することもできます。
それでも敢えて テキストMyText を使ったのは、今後の拡張性を考えてのことです。まず、テキスト は、ショートカットの中で使われるテキストタイプの値を置いておく場所のことです。今回は受け取った値を置いておいただけなので、その棚の中身は変わることはありませんでしたが、テキストを読み上げる処理のように別なテキストを扱う処理を行った場合は、テキスト の棚の中身はかわってしまいます。そこで、MyText という自分が管理しておける変数に値を入れておきました。
処理の書き方は、人によって様々です。目的によっても変わります。ショートカットの良いところは、それなりに複雑なことを簡単に1つの処理にしてしまえることです。それを指伝話メモリから呼び出せるので、カードを1枚選ぶことができるなら、できることはたくさんあるということになります。


ショートカットの共有

作成したショートカットは、他の人にコピーして渡すこともできます。
その場合、受け取り側のiPadでも設定アプリの中にある「信頼されていないショートカットを許可」をオンにしておく必要があります。

共有するには、ショートカットの画面で共有アイコンをタップします。

次に共有方法を選択します。

AirDrop での共有が簡単ですが、なぜだかうまく行かない時があります。その場合は、メモに書き出して、そのメモをAirDropで共有して相手に渡すことをお勧めします。

ショートカットのバージョンが異なる場合は共有を受け取れません。
iOS 12では、ショートカットをファイルとして書き出すことができましたが、iOS/iPadOS 13からは、ショートカットは必ずiCloudを経由して共有することになりましたので、共有に祭してはネットワーク環境が必要になります。

ショートカットを受け取った側では、ショートカットを追加するかどうかの確認画面が表示されます。
一番下までスクロールします。

信頼されていないショートカットを追加 ボタンをタップすると、ショートカットが マイショートカット の中に表示されます。


ショートカット作成の練習

ショートカットを試しに作る際、本当に結果が正しく設定されたかどうかが心配になります。処理が続くショートカットを作る時には、途中で結果を確認したいものです。
その時に便利なアクションが 結果を表示 アクションです。このアクションを使って、途中経過を確認しながら、ショートカットを作成していくことができます。最終的に動作に問題がなくなった時に、このアクションを削除すれば良いです。

例題1
現在地の天気をメッセージで知らせる。

ヒント
使うと便利なアクション
場所 のカテゴリーの 現在の天気を取得気象状況の詳細を取得場所の詳細を取得
App のカテゴリーの メッセージメッセージを送信
書類 のカテゴリーの テキスト

例題2
迎えにきてもらうために、いまいる場所をメッセージで知らせる。

ヒント
使うと便利なアクション
場所 のカテゴリーの 現在地を取得マップのURLを取得
App のカテゴリーの メッセージメッセージを送信
書類 のカテゴリーの テキスト