asken テックブログ

askenエンジニアが日々どんなことに取り組み、どんな「学び」を得ているか、よもやま話も織り交ぜつつ綴っていきます。 皆さまにも一緒に学びを楽しんでいただけたら幸いです!

iOSアプリ開発をショートカット機能を活用して効率化する

はじめに

こんにちは!iOSエンジニアの三浦です。
弊社 あすけん アプリでは、食事登録機能に加えて、身体データや睡眠、運動の登録機能も提供しています。 登録に際しては、手動登録だけでなくヘルスケアに入力されたデータの読み込み等の外部連携にも対応しています。
ヘルスケアとの連携を含めた動作確認はヘルスケア側でのデータ登録に時間と手間がかかるため、以前から効率化したいと思っていた部分でした。
そんな中、最近出版された「iOSショートカットプログラミング入門」を読んだことがきっかけで、ショートカット機能の便利さと業務への活用方法に気づいたので紹介したいと思います。

ショートカット機能について

基本用語

  • ショートカット:「ショートカット」アプリで事前に作業項目と作業フローを定義しておくことで、手動もしくはイベント検知で自動的に実行する機能のこと。
  • アクション:ショートカットの構成要素で、タスク内の1つの手順のこと。
  • トリガー:ショートカットを起動するアクションのこと。
  • レシピ:ショートカットの構成のこと。
  • オートメーション:イベントの検知をトリガーとするショートカットを設定できる機能のこと。
  • ギャラリー:Appleが用意したショートカットを一覧で見る・ダウンロードできる機能のこと。

ショートカット機能とは

元々は「WorkFlow」というサードパーティ製のアプリだったものをAppleが買収、iOS12からショートカットアプリとして利用可能になり、iOS13からは標準アプリとして採用されるようになりました。その後OSのアップデートとともに標準のアクションの追加や、オートメーションのトリガーにNFCタグのスキャンやサウンド認識などを設定できるようになりました。また、ショートカット用のアクションを提供するサードパーティのアプリも増えてきており、活用の幅が広がってきています。ちなみに、あすけんでも食事登録機能のアクションを提供していますので利用してみてください。

できること

一般的なショートカットの活用例をいくつか紹介します。

  • 毎日通勤前の時間にその日の天気を通知メッセージで表示する。
  • 自宅最寄り駅についたら「もうすぐ帰るよ」など自動でLINEメッセージを送る。
  • サウンド認識で「赤ん坊の泣き声」を検知したら仕事用PCにメッセージを送る。
  • Bluetoothで接続している音声出力先をワンタップで切り替える。

このように、単純に特定機能へのアクセスを簡単にする本来の意味のショートカットというよりは、簡単なシステムを構築できるノーコードツールとして様々な用途に利用できます。
さらにショートカットはファイル形式での配布やiCloudのリンク経由で共有することができるので、自分で作成するだけでなく他の人が作成したショートカットをダウンロードして利用することもできます。 ShortcutsGallery.comRoutineHub といったショートカット共有サイトもあるので、便利なショートカットがないか探してみるのもおすすめです。

開発業務におけるショートカットについて

開発への活用

WWDCの動画では、「決まった時間に学習アプリを起動する」や「Siriから特定の食事配達サービスを頼む」など、一般ユーザーが便利にiPhoneを活用する事例とアプリからアクションを提供するための実装方法が紹介されていました。
一般的な利用以外にも、「SSH経由でスクリプトの実行」や「X-CallbackのURLを開く」といったいかにも使いどころがありそうなアクションが用意されているように、開発業務にも利用できます。

活用例:ヘルスケアへのデータ登録をショートカットを使って効率化してみる

「はじめに」で記載したように弊社iOSアプリでは動作確認のためのヘルスケアのデータ登録作業の効率化が課題でした。
ヘルスケアはアクションとして、「ヘルスケアサンプルを記録」・「ワークアウトを記録」・「ヘルスケアサンプルの詳細を取得」・「ヘルスケアサンプルを検索」の4つを提供している(iOS16.3時点)ので、これらを活用して効率化のための簡単なショートカットを作成してみます。

複数項目の一括登録

まずは、シンプルに血圧・血糖値・体重・体脂肪を一度に登録するショートカットを作成しました。 これだけでもヘルスケアから複数の画面を開いて登録する手間が省けて作業がだいぶ楽になりますね。

データを大量に登録

スマートウォッチなどのウェアラブルデバイスからヘルスケアに連携して登録する場合、機器によっては一定時間ごとの計測データとして記録される場合があります。
このような場合、ヘルスケアから渡ってくるデータの登録件数が一度に数十件になるケースもあるため、この状態を想定した動作確認も必要です。
今回は血糖値に関して、ショートカット実行時に日時を手動入力、入力された日時から15分ごとに指定回数データを登録するショートカットを作成しました。

よかったポイントと今後の改善点

自身の開発における登録作業の効率化に加え、ショートカットを共有することで複数人の間での作業の一貫性を担保することもできそうです。
ただし、テストの観点だと定型化にはデメリットもあります。作業者ごとの操作手順や入力値のランダム性が少なくなるため、予想外の不具合が検知しづらくなる可能性があります。変数にランダム性をもたせるなど別途工夫が必要そうです。また、そうした場合は実行した値をファイルに出力するなどして履歴を取っておくことも必要になります。

おわりに

ここまでiPhoneのショートカット機能について紹介してきました。
今回はヘルスケア側でアクションが提供されていたため単純なレシピで効率化することができましたが、他の例だと同様にはいかないかもしれません。
しかしながら、テスト整備やデバッグモードの導入といった方法に比べ、iPhone側で用意された機能やツールを活用するという観点はあまりなかったので、今回のショートカット活用はその意味でいい学びになりました。
今後は「スイッチコントロール」や「Pythonista」といったツールも開発に利用できるか検討してみたいです。

お知らせ

あすけんではエンジニアを大募集中です!
少しでも興味を持っていただけたら、ぜひ採用情報をご確認ください!

www.wantedly.com

www.wantedly.com

www.wantedly.com

2023/3/9(木)に「iOS×Android エンジニアの生存戦略」をテーマにイベントを開催します。 こちらもぜひご参加ください!

asken.connpass.com

参考