初心者が開発でハマったらMacが「質問しろ」というアプリ作った
エキサイト Advent Calendar 2018 10日目の記事です。
はじめまして、新入社員のaharenchiです。初投稿です。
今回は、
「わからないよ」とつぶやいて時間が経過したらMacが「質問しろ」とアドバイスしてくれるアプリ
を作りました。
はじめに
作業に集中していると分からないことにハマってしまうときがありますよね?私はよくあります。
私「わからない」
私「質問したら解決できそうだけど、自分の力で頑張ってみたい...!!」
1時間後
私「ぜんぜんわからないめう...」
30分悩んだ時点で質問すべきです。
そこで、
「わからないよ」とつぶやいて時間が経過したらMacが「質問しろ」とアドバイスしてくれるアプリ
を作ってみました。macOSで動きます。
デモ1
Macの音声入力でアプリを起動して30分後にダイアログが表示される様子
デモ2
Macの音声入力でアプリの起動と終了を行っている様子
作り方
Macの音声入力コマンドとAppleScriptで作りました。
アラームアプリケーションの作成
(1) スクリプトエディタを起動して、File > New を選択します。
(2) AppleScriptを選択し、下記のコードを書きます。
set delayTime to 60 * 30
set timeStar to current date
repeat
delay delayTime
set timeLap to current date
display dialog "あなたが悩んで" & ((timeLap - timeStar) / 60) div 1 & "分が経過しました。質問してみませんか?" buttons {"質問する", "自力で頑張る"} default button 1
if the button returned of the result is "質問する" then
exit repeat
return
end if
end repeat
(3) File > Exportを選択し、File FormatポップアップメニューをクリックしてApplicationを選択しスクリプトをアプリケーションとして保存します。
Macの音声入力操作を設定
(1) System Preferences > Keyboard > Dictationを選択し、DictationをOnにします。
(2) System Preferences > Accessibility > Dictationを選択し、「まっく」とキーフレーズを入力します。
(3) Dictation Commandsを選択し、アラームアプリ起動コマンドと終了コマンドを設定します。
アラームアプリ起動コマンド
「わからないよ」と話しかけると、Open "worryTime.app"でアラームアプリを起動するように設定します。
アラームアプリ終了コマンド
「わかった」と話しかけると、アプリ強制終了(command + option + shift + esc)でアラームアプリを終了します。
通常のアプリ終了(command + q)よりもAppleScriptのrepeatが優先されるので、強制終了でアプリを終了させています。
感想
さっそく今日から使ってみようと思っていたのですが、開発で支給されているiMacのマイクが自分と離れているので、つぶやくレベルではなく大声で話しかける必要が..。
周りの席の方に、突然大声でMacに「わからないよ!」と話しかけるやばい新卒と心配されそうなので、音声入力の方法が改良するまではやめておこうと思います。
次回のバージョンアップを楽しみになさってください。
MacBookでしたら比較的つぶやく程度で使うことができるので、ご興味のある方は使って見てください!
次のエキサイトAdvent Calendarもよろしくお願いします!
参考文献
Author And Source
この問題について(初心者が開発でハマったらMacが「質問しろ」というアプリ作った), 我々は、より多くの情報をここで見つけました https://qiita.com/aharenchi/items/b3c61efea95ac3369b7b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .