懸垂器にかけられた「絶望」という名の服

部屋を整理していたら、ある「動かぬ証拠」と向き合うことになりました。
数年前に意気揚々と購入した懸垂器。それがいつの間にか、ただの「高機能なハンガーラック」に成り下がっていたのです。

「せっかくだし、懸垂でもするか……」

そう思い立ったものの、自分の性格はよく分かっています。
ただ闇雲にぶら下がるだけでは、成果が見えないうちに三日坊主で終わってしまう。

「トレーニングの成果を可視化したい。でも市販のアプリは入力が面倒だ。だったら、自分専用のツールをAIと一緒に作ってみよう」

そこで AI「Gemini」をパートナーに、僕のアプリ開発が始まりました。

Macの「黒い画面」を自分専用のジムに変える

プログラミングはほぼ未経験。まず取り組んだのはMacの環境設定です。
Geminiに教わりながら、以下のステップで進めました。

① Python環境の構築

まずはターミナルにPythonそのものを用意するところから。
Macには最初からPythonが入っていないケースもあるため、Homebrew 経由でインストールします。

$Bash
# Homebrewのインストール(未導入の場合)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Pythonのインストール
brew install python

# バージョン確認
python3 --version

ターミナルに Python 3.x.x と表示されれば準備完了です。

② 仮想環境(venv)の構築

Macのシステムを汚さないよう、筋トレアプリ専用の「隔離された部屋(仮想環境)」を作ります。

$Bash
# フォルダを作って移動
mkdir workout_app && cd workout_app

# 仮想環境を作成して起動
python3 -m venv venv
source venv/bin/activate

③ 必要なライブラリのインストール

ターミナル上にグラフを描画するための plotext というライブラリを導入しました。

$Bash
pip install plotext

④ 設定ファイルとコードの作成

Mac標準のテキストエディタ nano を使い、Geminiが書いたコードを流し込みます。

$Bash
nano routines.json  # メニュー設定
nano workout.py     # メインプログラム

最強のテスト手法は「実機(自分)の稼働」

今回の開発でいちばん面白かった、そして辛かったのがデバッグ作業です。

「1日の合計が正しく集計されるか?」「グラフは正しく描画されるか?」

確認するには、実際にデータを入力しなければなりません。
つまり——コードを修正するたびに、懸垂器にぶら下がる必要があるのです。

  • 計算ロジックの確認のために 10回
  • グラフのエラーを直して、確認のためにまた 5回
  • 「累積がズレてる?」となれば、また 懸垂

デバッグを進めるほど腕がパンパンになっていく。
プログラムを修正するたびに、筋肉がつく。
まさに身体を張った開発体験でした。

04完成した「自分専用」システム

試行錯誤の末、ついに完成。コードの核心部分を紹介します。

▼ 設定ファイル(routines.json)

種目を増やしたい時は、このファイルを書き換えるだけでOKです。

{}JSON
{
    "routines": ["懸垂", "レッグレイズ", "ディップス"]
}

▼ こだわり機能:柔軟な入力と累積表示

「10回を3セット」こなした時に 10*3 と打つだけで自動計算。
さらに「今日これまでの累計」をCSVから読み込んで即座に表示します。

pyPython
# '10*3' のような入力を自動計算する工夫
if '*' in val_input:
    p = val_input.split('*')
    current_val = int(p[0]) * int(p)
else:
    current_val = int(val_input)

05眠っていた懸垂器が「最高の相棒」に

出来上がったのは、派手な画面のアプリではありません。
ターミナル(黒い画面)で動く、武骨なツールです。
でも、そこには欲しかったものがすべて詰まっています。

  • 面倒な計算はAIにお任せ:入力のストレスがゼロ
  • 数字が自信に変わる:人生で累計何回やったかが一目でわかる
  • グラフというご褒美:ターミナルに刻まれるドットの軌跡が、継続の証

さらに「メニューを外部ファイルで管理」する仕組みにしたことで、
メニューを増やしてもこれ一本でこなせるようになりました。

AIは「魔法の杖」ではなく「最高の相棒」

プログラミングが未経験でも、AIに相談しながら進めれば、
自分の「欲しい」を形にできる——今回、それを実感しました。

かつて服を掛けていた懸垂器は、AIと僕で作ったシステムによって、
成長を刻む大切な相棒へと進化しました。

「何をやっても続かない」と思っていた過去の自分に、このグラフを見せてやりたい。

さあ、デバッグ(という名のトレーニング)の時間です。
今日も一回、ぶら下がってきます!

 

FoodVlogを始めました!

YoutubeでFoodVlogを始めました! よかったら見てやってください!