0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

iOSショートカットアプリでPythonを実行する

Last updated at Posted at 2024-09-27

概要

iOSのショートカットアプリ単体でPythonを実行するショートカットを作成した。

完成したショートカット

結論以下のショートカットを実装した。

IMG_0269.PNG

背景

翌朝出すべきゴミの種類を、夜にHomePodからアナウンスさせる仕組みを作成しようと考えた。最初はChatGPTのショートカットを使って自動化を試みたが、バージョンによって回答が不安定だったり、スマホがロック中にショートカットを実行できないという問題があった。これらの課題を解決するために、ショートカットアプリ内でChatGPTの処理をPythonに置き換える方法を検討した。

実装

方針

ショートカットアプリでPythonコードを実行する方法はいくつか考えられたが、すでにインストール済みのa-shellがショートカットから直接実行できるため、これを利用することにした。a-shellのショートカットからは任意のシェルコマンドを実行でき、a-shell経由でPythonも実行可能である。

「外部にPythonスクリプトを置き、SSH経由で実行する」という方法も考えたが、スクリプトを設置するサーバのメンテナンスが面倒であるため、この方法は採用しなかった。

手順

ショートカットアプリ上でPythonスクリプトを編集・確認したいので、以下の流れで処理を実装した。

  1. テキストとしてPythonのコードを定義
  2. PythonのコードをBase64でエンコード
  3. a-shellから以下のコマンドを実行
    3.1. 2. で生成したBase64コードをデコード( echo {base64でエンコードされたコード} | base64 -d )
    3.2. そのコードをPythonにパイプで実行させる( python - )

結論

これでショートカットから任意のPythonスクリプトを編集・実行することが可能になった。これをもとに「ゴミの日チェックショートカット」を作成して、その実行内容をインターコムで HomePod からオートメーションで通知させることに成功した。

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?