rubyist.appでiOS操作を自動化しよう

2 min read読了の目安(約2000字

rubyist.appをご存知でしょうか。

iOS上でmrubyのコーディングと実行ができるアプリで、公開されたばかりの11/'20時点ではBeta版をTestFlightから使用することが可能です。

Hello World

なにはともあれ"Hello World"ですね。
rubyist.appにはいくつかサンプルコードがあり、そのうちの"Hello World"を実行してみます。

これを実行すると↓のように、アウトプットが表示されます。

またrubyist.app内で、rubyist.appのcoreライブラリとmrubyの標準ライブラリのドキュメントを参照できるといういう、なかなかの手厚さです。

なるほど、なるほど。

iOS操作を自動化する

では、ちょっとだけ自動化を味わってみます。

やりたいこと

  • iPhoneの残バッテリーを取得して、SlackのAPIを叩いて投稿する

(本当はクリップボードの内容を取得をしたかったのですが、ショートカット経由だと上手くできませんでした。iPhoneの世代にもよるかもしれません)

やるだけであれば、すでにiOSのショートカットに備わっている機能だけで完結します(それはそれで便利)が、今回はショートカット+rubyist.appで実現してみます。

ショートカット

SlackのAPIを叩くためのトークンを、rubyist.appのScriptに渡してやります。

Script

前述のcoreライブラリを使用して、デバイス情報の取得と、Httpリクエストをすることができます。

api = 'https://slack.com/api/chat.postMessage'
token = ARGV[0]
channel = 'rubyist'
text = "#{Device.battery_level}%"

http = HttpRequest.new

res = http.post("#{api}?channel=#{channel}&text=#{text}&token=#{token}")
json = JSON.parse(res.body)

if json['ok']
  puts 'success!!!'
  puts json['message']['text']
else
  puts 'failed...'
  puts json['error']
end

実行

ショートカットを実行します。

Slackも見てみましょう。

👏🏿 👏🏼 👏🏽 👏 👏🏾

iOSはショートカットそのものが非常にパワフルなので、トリガーや取得できるデータとrubyist.appの組み合わせ次第で、様々なことができそうですね。


提案やフィードバックは、rubyist.appのtwitterやmailで募集中とのことです。

今後は使用可能なライブラリも増えていくと思われます。
アイディア次第でいろいろできると思うとワクワクしますね。

その名の通り、Rubyistのためのアプリ。
興味のある方は、ぜひ一度試してみてはいかがでしょうか。