記事一覧に戻る
技術ノート4分で読めます

GitHub IssuesをDBにする「人生管理アプリ」を自作したら、最高に捗るようになった話

Qiitaに投稿したMarkdownを、このサイトにも同じ内容で載せています。Qiitaで読む

1. はじめに:きっかけは一つの記事

エンジニアなら一度は、タスク管理やナレッジ管理の最適解を探して迷走したことがあるはずです。 私もその一人でしたが、数年前に話題になった「GitHubで人生を管理する」という考え方に触れ、「これだ!」と直感しました。(参考記事:githubで人生を管理する

しかし、実際にIssueをDBにして運用してみると、一つの壁にぶつかりました。 「PCを開いていないとき、ちょっとしたメモやタスク追加が面倒」なのです。

そこで、GitHub APIをフル活用した自分専用のAndroidアプリを自作することにしました。IssueOpsの概念をモバイルに持ち込んだことで、私のタスク管理は完成を迎えました。

Todo App.jpg

2. システムの全体像:IssueOps Ecosystem

このシステムは、GitHubリポジトリを唯一の「正」とするエコシステムです。

  • データ実体: 全てGitHubリポジトリ(Issues / YAML / Markdown)
  • 自動化 (Rust): macOSの launchd で動く自作ツールが、毎朝のタスク生成や夜の日報作成を自動化
  • フロントエンド (Android): 今回自作した、生活のすべてをハンドルするための専用クライアント

3. 私の1日:アプリでどう人生を回しているか

① 朝:自動生成されたタスクを確認する

朝、目が覚めてアプリを開くと、すでに「今日やるべきこと」が並んでいます。 Rustで書かれたバッチ処理が、routines.yaml のスケジュール設定に基づき、その日のタスクを自動でIssueとして起票してくれるからです。

優先度(p:high)や状況(c:dev)でフィルタリングできるので、寝ぼけた頭でも「今、何に集中すべきか」がひと目で分かります。

② 昼:タスク未満の思考を「Notes」に吐き出す

「洗剤を買う」「このライブラリ試したい」といった、タスクにするまでもない些細な思考は、Twitter(X)風のタイムライン画面「Notes」に投稿します。 これは type:note ラベルが付いたIssueとして保存され、その日の分だけがフィルタリングして表示されます。

③ 夕方:アプリから設定を変える「IssueOps」

「来週から週3で読書をしたい」と思ったら、アプリのフォームからルーチンを追加します。 ボタンを押すと、アプリがGitHub上の routines.yaml を直接書き換えます。「アプリの操作で自分の生活設定(コード)をデプロイする」。これぞIssueOpsの醍醐味です。

④ 夜:自動生成される「日報」でニヤリとする

夜になると、Rustバッチがその日に完了したタスクを集計し、Markdown形式の「日報」を自動コミットします。 これをアプリのReports画面で読み返しながら、「今日も一日やりきった」と実感して眠りにつきます。

4. こだわりの独自機能

  • Knowledge Base: リポジトリ内の技術メモをMarkdown形式で閲覧・編集できます。WikiとToDoを行き来する必要がなくなりました。
  • Archive: 過去の全 Closed Issue を検索可能。「去年の今頃何してたっけ?」がすぐ解決します。
  • データ主権: サービス終了に怯える必要はありません。データは全てテキストとして自分のリポジトリにあります。

5. 技術的なエッセンス(簡単に)

  • Android: Kotlin + Jetpack Compose (Material 3)。
  • GitHub API: since パラメータを活用して、その日の更新分だけをスマートに取得しています。
  • Rust: CLIツール側でビジネスロジック(タスク生成・集計)を高速に処理。

6. おわりに

既存のタスク管理アプリに自分を合わせるのではなく、「自分の理想のライフサイクルにアプリを合わせる」。これができるのが個人開発の楽しさです。

GitHubで人生を管理したい皆さん、専用アプリという「ラストワンマイル」を自作すると、世界が変わりますよ。