はじめに
ダイエットのために 筋トレを習慣化 しようと考え,メモアプリ(Obsidian)で記録を取っていました.しかし,ジムでスマホを使って記録するのが不便 でした.
記録の課題
- 📱 スマホのキーボードで数値を入力するのが面倒
- 🤔 前回の重量や回数を思い出せない
- 🏋️ 筋トレ初心者であるため,重量や回数を設定する際に前回の記録を基準にし,それを超えることを目標にしていた
- 📝 メモアプリでフォーマットを統一しようとすると,その分手間が増える
解決策
この課題を解決するため,Pythonista3 の キーボード拡張機能 を使って カスタムキーボード を作りました!
作成したソースコードは GitHubで公開 しています.
▶️ GitHubリポジトリはこちら 🚀
なぜPythonista3 + カスタムキーボード? 🤔
-
Webアプリではダメなの? 🌐
→ 記録を Obsidian に直接保存したかったため,ジムでの入力に最適なキーボード拡張が適切 だと判断. -
iOSアプリ(Swift)で作らないの? 📱
→ Swiftでアプリを作るのも手でしたが,手軽に実装できることを優先.
過去にPythonista3での開発経験があった ため,こちらを選択しました.
開発環境 🛠️
- 📱 iPhone 15 Plus:Pythonista3でキーボード拡張機能を実装
- 💻 MacBook Air M3:Cursorで iCloudで同期 したコードを編集
🔄 開発フロー
- Cursorでコードを編集 ✍️
- iCloudで自動的にiPhoneに同期 🔄
- Pythonista3で動作確認 🛠️
- 実際に使用しながら改善 🏋️♂️
今回,コードエディタとして Cursor を初めて使いましたが,その便利さに感動しました...!
特にボタンの配置など UIの調整は難しかったですが,実際のiPhoneのスクショを見せながらできるのが助かりました.
iCloudとの連携は多少ラグはありますが,Macで編集 → iPhoneでテスト の流れはスムーズに行えました.
反省があるとすれば,Macの iPhoneミラーリング機能を利用しなかったことです,もし利用していれば,さらに開発しやすくなったと感じています.
機能紹介 🚀
1. メニュー選択機能 🏋️♂️
- 部位タグ付きで種目を表示(例:スクワット → [脚])
- ワンタップで選択
-
テキストファイルでメニューを管理(カスタマイズ可能)
- 設定項目:メニュー名 / ターゲット部位 / パラメータ(単位,ステップ,最大値)
2. パラメータ入力機能 🎛️
-
直感的な操作で素早く入力
- スライダーで数値を調整
- プラス/マイナスボタンで微調整
- パラメータの単位はメニューごとに設定
🏆 記録の可視化
- 前回の記録を参考に調整
- 最高記録を超えると文字が赤く変化 🔴
- パラメータが 0 の場合は記録ボタンを無効化
3. 記録機能 📝
-
記録フォーマットを2種類用意
- 種目名のみ
- レッグプレス
- 重量・回数付き
- 80kg, 10回
- 種目名のみ
-
JSONファイルで記録を管理
- 前回記録と最高記録を保存(履歴を活用)
まとめ
Pythonista3のキーボード拡張機能を活用し,トレーニング記録用のカスタムキーボードを作成しました.開発には iCloudと Cursorを組み合わせ, iPhoneと Macの両方で効率的に作業ができるようにしました.実際に使ってみると,トレーニング中の記録がスムーズになり,前回の記録を意識しながらトレーニングできるようになりました.
ソースコードは GitHubで公開しているので,ぜひカスタマイズして活用してみてください!
質問やフィードバックがあればコメントでお願いします!🙌
「いいね」していただけると励みになります!