oinume journal

Scratchpad of what I learned

iOSのショートカットで朝ごはんの内容を音声でメモアプリに記録する

毎朝息子に朝ごはんを作っているのだけど、レパートリーが少ないため3日間同じメニューになってしまったりするので、最近はメモアプリに何を食べたか記録してなるべく違うものになるように工夫していた。でで、スマホからメモアプリを起動して入力するのが面倒だったので、ショートカットアプリで音声入力でメモアプリに残すように半自動化してみたという話。

具体的には「ぼうやの朝ごはん」というノートに以下のようにテキストが追記されていくイメージ。

04/27月: 夜ご飯のおかずの残り
04/28火: 食パンと目玉焼き
04/29水: ツナサンド
...

完成したショートカットのイメージ

ショートカットの設定手順

iOSのショートカットアプリはできることが豊富であるがゆえに、必要な処理を探すのがわかりづらいと感じたので具体的な手順を書いておく。ちなみにiOS 26での手順なのでバージョンが違うと若干異なるかもしれない。

  1. ショートカットアプリを起動
  2. 右上の+ボタンで新規ショートカットを作成
  3. スクリプティングを選択して、テキストを音声入力を選択
  4. アクションを検索 -> スクリプティング -> 日付をフォーマットを選択
  5. そのままだと「音声入力されたテキスト」を書式設定することになってしまっているので、「音声入力されたテキスト」をタップして「変数を消去」し、「現在の日付」をかわりに設定する
  6. アクションを検索 -> スクリプティング -> 「テキスト」を選択
  7. 「変数を選択」の部分から上2つの入力を組み合わせて「 フォーマット済みの日付: 音声入力されたテキスト」を入力するように設定する
  8. アクションを検索 -> 「メモ」アプリを選択 -> 「メモに追加」を選択
  9. 追記したい先のメモを選択(自分のケースでは「ぼうやの朝ごはん」)

ショートカットの起動

毎回ショートカットアプリを開いて作成したショートカットを起動するの面倒なので、自分はウィジェットで起動できるようにしている。あとはSiriを起動して「ぼうやの朝ごはん」と言うとショートカットを起動してくれる。

Siri経由は、最初のうちはなぜかカレンダーから「ぼうやの朝ごはん」を探そうとして「そんなものはありません」と言われていたのだけど、ウィジェットに登録した後からちゃんと認識してくれるようになった 🤔

実際使ってみて

音声認識の精度が心配だったのだけど、朝ごはんの内容ぐらいであれば音声が誤認識されることはなく特に問題なく運用できている。より難しいテキストを入力する場合はOpenAIなどのAPIとScriptableを使えば良いと思われる。

初めてiOSショートカットで複雑なフローを組んでみたけど、これ単体でかなり高度なことができそうなので他にも音声入力系で自動化を頑張ってみたい

Bashの起動を高速化した

最近Bashを起動する速度がどんどん遅くなっているなと感じたので、Claude Codeに高速化を依頼した。

パフォーマンスの可視化

まず手始めに、Bash起動時に何に時間がかかっているのかをわかるようにしてもらった(PR)。

以下のようにBASH_PROFILE_PROFILING=1 bash -lで起動することで、以下のようにどこに時間がかかっているかが計測可能になる。

BASH_PROFILE_PROFILING=1 bash -l
[profile]      1 ms (+   1 ms) prompt/history
[profile]     48 ms (+  47 ms) brew --prefix
[profile]     49 ms (+   1 ms) .bash_local
[profile]    118 ms (+  69 ms) bash-completion
[profile]   1361 ms (+1243 ms) bash-it
[profile]   1401 ms (+  40 ms) fzf
[profile]   1402 ms (+   1 ms) bash-powerline
[profile]   1403 ms (+   1 ms) tmuxinator
[profile]   1404 ms (+   1 ms) completion (git)
[profile]   1410 ms (+   6 ms) google-cloud-sdk
[profile]   1505 ms (+  95 ms) rbenv
[profile]   1516 ms (+  11 ms) JDK (java_home)
[profile]   1917 ms (+ 401 ms) nvm
[profile]   1947 ms (+  30 ms) mise
[profile]   1970 ms (+  23 ms) wtp
[profile]   1980 ms (+  10 ms) direnv
[profile]   1981 ms (+   1 ms) nvm bash_completion
[profile]   1982 ms (+   1 ms) ===== TOTAL =====

高速化

とりあえず bash-it が遅すぎるのでこれを読み込まないようにした。これだけど 1243ms 速くなり、体感的にもかなり快適になった。

次に遅いのがnvm関連。ちょうどmiseに移行しようと思っていたので、移行を済ませてnvmを読み込まないようにした。これで400ms速くなった。

同様にrbenvもmiseに移行して消せるので削除。

まとめ

そんなこんなで色々削って起動時間が 1982ms -> 273ms になり爆速になりましたとさ

mineoに乗り換えて1年経った

スマホのSIMをMVNOのmineoに切り替えて1年以上が経って、かなり満足しているのでここにその良さを書いておく。mineoの前は、新規契約はストップしているOCNモバイルONEを使っていた。

mineoに切り替えた理由

  • 新規契約をストップしていることから、OCNモバイルONEには将来性がなさそう
  • mineoは以前も契約していたことがあり、速度制限がある状態でも1.5Mbps(当時は1Mbpsだったかも?)の速度が出ることは知っていた
  • 価格的には日本通信も候補に上がったけど、DoCoMoではなくauの回線を使いたかったのでmineoに決めた

自分のユースケース

週3,4は通勤しているので主にその隙間時間で以下をやっている。mineoに切り替えてからは月に30GBぐらいのギガを使っている。

  1. ストリーミングで音楽を聴く
  2. YouTubeを見る
  3. 移動中にテザリングでPC作業をする
  4. Podcastを聴く
  5. SNSを見る
  6. Kindleなどで本を読む

mineoにしてどうだったか

OCNモバイルONEは10GB / 月の容量しかなかったので通勤中にYouTubeを観ることは不可能だったけど、mineoにしてからは移動中に動画を見れるようになったので生活が大きく変わった。Netflixも見たいものがあれば事前にダウンロードする必要があったけど、これもストリーミングで再生できるようになったので便利になった。

また、速度制限がある状態でもテザリングでなんとか作業できるため、移動中にやれることの幅が広がったように思う。

さらに、2026年3月から速度制限状態でも最大で1.5 -> 3Mbps出るようになり1、より快適になった。自分は 15GB / 月のプランを契約しているけど、速度制限がある状態でもほとんど用が済んでしまうため、ギガが毎月半分以上使い切れていないという状態になっている。

というわけで

よほど改悪されない限りは、ずっとmineoでいこうと思うほどに快適です。

Claude Codeの設定の差分を吸収するsettings.jsonの管理方法

背景

会社のPCと個人PCでClaude Codeを使っているのだけど、

  • 会社PCではAPI Keyによる従量課金方式
  • 個人PCはサブスクのProプラン

となっている。permissionsの設定などで秘伝のタレ化している ~/.claude/settings.json は共通化して管理したいが、会社PCの ~/.claude/settings.json にはAPIキーやその他会社環境固有の環境変数を定義する必要があるため、会社PCと個人PCで発生する差分をどうにかしたい。

まとめ

  • macOSの場合は、PC固有の設定を /Library/Application\ Support/ClaudeCode/managed-settings.json に保存する
  • 共通の設定は dotfiles リポジトリ内で settings.json を管理

このやり方でうまいこと差分を吸収できたよ、というただそれだけの記事。

参考リンク: Claude Code settings - Claude Code Docs

Apple Developer Programに加入せずにReact Native(expo)でiOSアプリを実機にインストール

「こんなアプリがほしい」と思ってExpoで作ってみたものを実機にインストールして使ってみたかった。調べたらApple Developer Programのお布施を払わなくてもインストールする方法があったのでメモ。

必要なもの

手順

expoはexpo prebuildコマンドでネイティブのコードを生成できるので、これを使ってXcodeでアプリを実機にインストールする。

npx expo prebuild

次にこの投稿に書いてある設定をする

なお、上の投稿では6.で以下のように書かれているが、

Build bundle with npx expo export:embed --entry-file='node_modules/expo/AppEntry.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'

自分の場合は以下のように--entry-fileを修正する必要があった。

npx expo export:embed --entry-file='node_modules/expo-router/entry.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'

あと依存ライブラリがインストールされずにビルドに失敗していたので、以下を実行する必要があるかもしれない

cd ios
pod install