はじめに
ラップタイマーのアプリを探していたのですが見つからなかったので、自分で作ってみることにしました。
やりたいこと
- ラップ時間を記録したい
- 複数のラベルを使い分けたい
- ラベルの種類は最低7種類
- ラベルカスタマイズ機能があればよいが、無くても可
- ラップ時間が保存(エキスポート)できること
- 一つのウインドウで動作
仕様
- スペースキーで測定開始/停止
- エスケープキーでタイマーリセット
- 数字キー(0〜9)でキー情報とともにラップ時間とタイムスタンプを記録
- 記録結果をCSVファイルとして保存できる
前提
- Claudeには課金済
- Apple Silicon Macを使用
- Homebrewによるパッケージ管理
- 使用言語はPython(Version 3.10.18)
- uv環境は構築済(私のPython開発環境構築〜準備編その1・基礎編)
- uv init simple_lap-time_recorderで作成したディレクトリで作業
プロトタイプ作成
Claude画面で、</>コードボタンを押すとプロンプトをいくつか提案してくれる。その中の一つを選ぶと以下のプロンプトが入力された。
Claudeが提案したプロンプト
こんにちは、Claudeさん!一緒にコーディングしましょうをお願いできますでしょうか?追加情報が必要な場合は、重要な質問を1~2つお聞かせください。より良い結果のために必要な資料がございましたら、お申し付けください。Google Driveやウェブ検索など、利用可能なツールを必要に応じてご活用ください。分析ツールのご使用はお控えください。ご回答は親しみやすく簡潔な形でお願いいたします。
できるだけ早めにタスクを実行していただき、可能であれば成果物を作成していただけると助かります。成果物を作成する場合は、このタスクに最適な形式(インタラクティブ、ビジュアル、チェックリストなど)をご検討ください。ご協力ありがとうございます。
出力
こんにちは!一緒にコーディングできて嬉しいです!
まず、どのようなプロジェクトを作りたいか教えていただけますか?例えば:
- 何を作りたいですか? - ウェブアプリ、ゲーム、ツール、データ可視化など
- 使いたい技術はありますか? - React、HTML/CSS/JS、特定のライブラリなど
もし具体的なアイデアがまだでしたら、人気のあるプロジェクトをいくつか提案できます:
- インタラクティブなToDoアプリ
- シンプルなゲーム(じゃんけん、数当てゲームなど)
- 計算機やユーティリティツール
- データ可視化ダッシュボード
どんなものでも大歓迎です!アイデアを教えていただければ、すぐに実装を始めましょう 🚀
入力プロンプト
macOSで動作するラップタイマーアプリを作りたい。使用言語はPython。タイマーをスタートし、数字を入力すると、入力した時点のタイムスタンプが記録される。スペースキーでスタートし、もう一度スペースキーを押すとストップ。エスケープキーを押すとリセットされる。
出力
macOS用のラップタイマーアプリを作りましょう!PythonとTkinterを使って、シンプルで使いやすいアプリを作成します。
〜コード省略〜
ラップタイマーアプリが完成しました!🏃♂️
主な機能:
- スペースキー: タイマーのスタート/ストップ
- 数字キー (0-9): その時点でのラップタイムを記録
- ESCキー: タイマーをリセット
特徴:
- リアルタイムで時間表示が更新(MM:SS.ss形式)
- ラップタイムの履歴表示(個別タイムと累計時間)
-- 状態に応じて色が変わる直感的なデザイン
使い方:
- ファイルを保存(例:lap_timer.py)
- ターミナルで実行:python3 lap_timer.py
必要な環境:
- Python 3.x(macOSに標準インストール済み)
- Tkinter(Pythonに含まれています)
アプリを実行すると、大きなタイマー表示とラップタイムの履歴が表示されます。数字キーを押すたびに、その番号とタイムスタンプが記録されるので、複数のラップを効率的に管理できます!
何か調整や追加機能があれば、お気軽にお申し付けください!
アプリウインドウ
コンソールにエラーはでるが、想定通りに機能する。
GUIライブラリ変更
後々の機能拡張を考慮して、GUIライブラリにPySide6を使用することにする。
入力プロンプト
GUIのライブラリとして、Tkinterの代わりにPySide6を使用してください。
出力
PySide6を使用したラップタイマーアプリに変更しますね!より現代的でmacOSに適したUIになります。
〜コード省略〜
PySide6版のラップタイマーアプリが完成しました!✨
PySide6版の主な改善点:
- モダンなUI: macOSのネイティブな見た目により近い
- 高DPI対応: Retinaディスプレイで美しく表示
- SF Pro フォント: macOSの標準フォントを使用
- 滑らかなアニメーション: より応答性の高いUI
- 改良されたスタイリング: CSS風のスタイルシート
セットアップ:
# PySide6のインストール
$ pip install PySide6
使い方:
- ファイルを保存(例:
lap_timer_pyside.py) - PySide6をインストール:
pip install PySide6 - 実行:
python3 lap_timer_pyside.py
機能は同じです:
- スペースキー: スタート/ストップ
- 数字キー (0-9): ラップタイム記録
- ESCキー: リセット
PySide6の利点:
- より現代的で洗練されたUI
- macOSとの統合性が向上
- 高解像度ディスプレイ対応
- より柔軟なスタイリング機能
- Qt6の最新機能を活用
アプリを起動すると、Tkinter版よりもmacOSらしい美しいインターフェースが表示されます!何か調整や追加機能があれば、お気軽にお申し付けください 🚀
アプリウインドウ
こちらも、コンソールにエラーはでるが、問題なく動作した。
ここまで、探りながらで1時間程度でした。
機能追加編に続きます。

