ロゴ ロゴ

[iOS]Twitterを開いたとき任意の確率で英単語アプリを開くようにするオートメーション

きっかけ

バズっていたツイートです。

面白いアイディアですよね!

しかし本物のアイコンの場所を覚えてしまうと効果が無くなりそうです。

このアイディアはショートカットアプリのオートメーション機能を使えばうまく実現できるのではと思ったので作ってみました。

それがこちら

作り方

ショートカットアプリはショートカットを共有できてもオートメーションは共有できないようなのでレシピを書いていきます(共有できるようにしてくれ……)。

ショートカットアプリがない人はインストールしてください。

ショートカット作ってる動画も撮りました。

  1. 初めにショートカットアプリを開き下の画像のようなオートメーションの画面を開く

作り方解説画像1

  1. +ボタンを押す

  2. 「個人用オートメーションを作成」を押す

  3. 「App」を押す

  4. オートメーションを適用するAppを選択して、「開いている」にチェック

このときTwitter以外のアプリを選択すれば、そのアプリにオートメーションを設定できます。複数選択も可能です。

下の画像のようになるはずです

作り方解説画像2


次はアクションを編集していきます。アクションは画面下部の検索バーで検索して見つけると速いと思います。


下の画像が完成形です。


作り方解説画像3

if文は条件が成立しないときの処理も分岐して書けるのですが、このUIだとインデントが深くなると見づらいので使いません。if文アクションを追加するとついてくる「その他の場合」の項目は消します。

  1. 「メモを検索」アクションを追加
    フィルタを追加を押して本文名前に変更
    すべてからショートカット用ログに変更
    並び順序最終変更日に変更
    制限をオンにして1件のメモを取得に変更

  2. 「変数を設定」アクションを追加
    変数名ログにして取得したメモを代入する

  3. 「if文」アクションを追加
    前回強制的に英単語アプリが開かれてから5分経過しているか判定します。

ログをタップして最終変更日に変更して日付フォーマットと時間フォーマットを共ににする
比較方法を次と等しいにする
もう一つの比較要素を現在の日付にして日付フォーマットと時間フォーマットを共ににする

—–if文の中—–

ショートカットの機能では時刻をミリ秒の単位で取得できないので、手動で秒数を取得します

「入力から数字を取得」アクションで変数ログから最終変更日を取得
日付フォーマットカスタムにしてカスタムフォーマットHHにする

「計算」アクションで取得した時間に60をかけて、「変数を設定」アクションで変数名前回時刻にして計算結果を代入する

「入力から数字を取得」アクションで変数ログから最終変更日を取得
日付フォーマットカスタムにしてカスタムフォーマットmmにする

「計算」アクションで取得した時間と前回時間を足す

「計算」アクションで取得した時間に60をかける

「変数を設定」アクションで変数名前回時刻にして計算結果を代入する

「入力から数字を取得」アクションで変数ログから最終変更日を取得
日付フォーマットカスタムにしてカスタムフォーマットssにする

「計算」アクションで取得した時間と前回時間を足す

「変数を設定」アクションで変数名前回時刻にして計算結果を代入する

現在の日付に対しても同様にして秒数を取得します

変数名は現在時刻とします

「計算」アクションで現在時刻-前回時刻を計算

「if文」アクションを追加して今回は前回から5分(300秒)経過してるか判定したいので、300より小さいならばとします

—–2重if文の中—–

  1. 「Appを開く」アクションを追加
    使いたい英単語アプリを設定する

  2. 「通知を表示」アクションを追加
    この通知はTwitterを開くのを失敗してからすぐTwitterを開き直したときに表示される通知です
    自分宛てに何かメッセージを入れましょう

  3. 「”ショートカット”を終了」アクションを追加
    無条件終了にしたいので条件はいじらなくていいです

—–2重if文終了—–

—–if文終了—–

  1. 「乱数」アクションを追加
    1から100を設定する

  2. 「if文」アクションを追加
    比較要素を乱数にする
    比較方法を次より大きいにする
    もう一つの比較要素を任意の確率にする
    例えば確率70としたときは70%でTwitterが開きますが30%で英単語アプリが開きます
    自分で好きな確率を設定してください

—–if文の中—–

  1. 「if文」アクションを追加
    ログ(変数)が値がないならばという条件にする

—–2重if文の中—–

  1. 「メモを作成」アクションを追加
    本文ショートカット用ログにする
    フォルダメモ[iPhone]にする

  2. 「変数を設定」アクションを追加
    変数名ログにする
    設定する値は10で作成したメモのノートにする

—–2重if文終了—–

  1. 「メモに追加」アクションを追加
    テキストを現在の日付にする
    日付フォーマットと時間フォーマットを共ににする
    メモログ(変数)にする

  2. 「Appを開く」アクションを追加
    使いたい英単語アプリを設定する

—–if文終了—–

これでアクションの編集は終了です

右上の次にボタンを押して、オートメーションを登録しましょう。

実行の前に尋ねるオフにしておきましょう。

オートメーションの仕様

メモの利用について

メモ帳のショートカット用ログというタイトルのメモにログが溜まっていきます。メモの最終更新を使って判断しているのでメモの中身は何でもいいのですがせっかくなので日付のログをとるようにしておきました。容量が気になるならメモを定期的に消してもいいです。

ショートカットアプリからメモの削除と書き換えと一部だけの読み込みはできないらしい…

英単語アプリが開かれる場合について

Twitterを開くのに失敗して英単語アプリを開いたら、5分間はTwitterを100%開けなくなります。だからといって5分経過したら必ずTwitterが開けるわけではなく、また乱数を使った判定結果によってはTwitterが開けません。

時刻を使った判定について

日付をまたいだ判定はしません。

23:59に英単語アプリが開かれた場合00:00に100%英単語アプリが開かれるのではなく、乱数を使った判定をやり直します。

ショートカットのifは文字列同士の大小比較ができないので時刻を秒数での表現にして取得したいのですがそれもできません。代わりに掛け算を利用して時刻を秒数で表現しましたが、日付は考慮しませんでした。月の日数は月によって変わるので実装しようとするとめんどくさすぎます。

日付フォーマットについてはAppleのユーザガイドを参照してください。

終わりに

ショートカットのオートメーション機能をつかえば、このようにTwitterを開くときに確率で英単語アプリが開かれるようにできます。英語の勉強を習慣づけたい人は是非試してみてください。

私はこのオートメーションのおかげでTwitterを開かなくなりました←

オートメーションは他にも音ゲーアプリをやるときに自動でナイトモードをONにして、アプリを閉じたときにナイトモードをOFFにするということもできます。

是非活用してみてください。

コメント入力

関連サイト