個人開発。

2026年にAIコーディングツールを使って自分用に開発した41本のアプリのうち、11本を紹介します。デスクトップツール、iPhoneアプリ、クリエイティブ系ソフトウェアについて、それぞれの機能、難しかった点、その解決方法をまとめました。

01SMOFF2026年7月 → 現在iPhone・Apple WatchアプリApp Storeには未公開
9言語に対応(右から左に書くアラビア語を含む)

待ち時間を延ばして禁煙する

禁煙を助ける、無料・オフライン・広告なしのアプリ。緑か赤のライトで今吸ってよいかを示し、待ち時間が毎日少しずつ延びて、1日の本数がやがてゼロになります。

できること

  • ワンタップのダッシュボード:ライト、節約できた金額、今日の本数、つらいときのための追加の「緊急パック」。
  • 統計、金額のマイルストーン、よく吸う時間帯がわかる時計型ヒートマップ。
  • ホーム画面ウィジェットとApple Watchのコンプリケーション:ウォッチをワンタップするだけで、アプリを開かずに1本を記録。
  • 右から左に書くアラビア語を含む9言語、色覚サポートモード、オンにしたときだけ有効なiCloud同期。

難しかった点

罰するのではなく、励ます

最初のバージョンでは、吸うたびに節約額が減って見えました。現在の統計は完了した日だけを数えるので、進捗は常に上がっていきます。

タイマーなしでカウントダウンするウィジェット

ウィジェットではリアルタイムのタイマーを動かせません。そこでアプリはライトが緑に変わる正確な時刻を保存し、アプリが閉じていてもその時点でウィジェットが切り替わるようスケジュールします。

1本も記録を失わない同期

データの持ち主はiPhoneで、ウォッチはそれをミラーします。iCloud同期は記録されたすべてのイベントを結合して端末間をマージするので、オフラインで記録したものも失われません。

SwiftSwiftUIWidgetKitwatchOSCloudKitSwift Charts
02Gitto2026年10月デスクトップアプリ · macOS、Linux、Windows
165+件の自動テスト(多くは実際のGitリポジトリ上で実行)

AIアシスタントを内蔵したGitクライアント

開発者がコードのあらゆる変更を記録するためのツール、Git用のデスクトップアプリ。SourceTreeやGitKrakenのような使い勝手に、コマンドやマージコンフリクトを手伝うAIを加えました。約4週間で開発。

できること

  • 読みやすい履歴グラフ、左右並びの差分比較、変更単位でのワンクリックステージング。
  • ワークスペース:複数のリポジトリをまとめて開き、統合された1つの履歴で表示。
  • AIマージ:Claudeが各コンフリクトの修正案を、理由と確信度つきで提案。承認するまで何も保存されません。
  • どのコミットで各ライブラリが追加・変更されたかを示す依存関係ビュー。脆弱性チェックも任意で実行可能。

難しかった点

複数リポジトリを1本のタイムラインに

別々のリポジトリのコミットがIDを共有することはありません。Gittoはコミットメッセージを照合して並べるので、同時に行ったフロントエンドとバックエンドの変更が、どちらの履歴も壊さずに同じ行に並びます。

フリーズしたように見えるウィンドウ

Touch IDやセキュリティキーでのログインでは、Gitは指が触れるのを黙って待ちます。Gittoはその待機を検知し、代わりに「キーに触れてください」とわかりやすく表示します。

認証情報に触れないAI

AIはすべてユーザー自身のClaude Codeを経由します。テストがソースコードをスキャンし、APIキーにアクセスしようとするコードがあればビルドを失敗させます。

TypeScriptReactElectronZustandMonacoVitestClaude Code
03Nekhon2026年8月デスクトップアプリ · Linux、macOS、Windows
2日仕様書からバージョン1まで

コミックの作画と写植のためのスタジオ

コミックやマンガのページをコマ割りし、描き込み、写植するためのデスクトップアプリ。白紙のページから書籍の書き出しまで対応します。文章で書いた仕様をもとに、Claude Codeで約2日で開発しました。

できること

  • 直線のカットでページをコマに分割。Y字の分割にも対応。
  • 各コマに絵を配置し、筆圧対応のペンで描き込み。
  • クラウドではなくコンピューター上で動くAIモデルで、被写体を選択。
  • キャラクターにひもづいた吹き出しを配置し、PDF、EPUB、画像に書き出し。

難しかった点

Linuxでの筆圧

Nekhonが動作するWebビューは、どのペンタブレットも筆圧が固定されたマウスとして扱います。NekhonはKritaと同じ方法で、Linuxのディスプレイシステムから実際の筆圧を直接読み取り、キャンバスに渡しています。

元画像を決して壊さない編集

読み込んだ画像は一切変更されません。消しゴムや描画は別のレイヤーに保存され、取り消し(Undo)は各ストロークが触れた範囲だけを記録するので、メモリ使用量が一定に保たれます。

即座に反応するローカルAI

4つのAIモデルがRustでローカルに動作します。選択モデルの重い半分は画像ごとに1回だけ実行されるので、ペイントしたヒントを選択範囲に変えるのは数ミリ秒です。

RustTauriTypeScriptReactPixiJSONNX Runtime
04Debate2026年10月デスクトップアプリ · Linux、macOS
50人のAIペルソナを1回の生成で作成

アイデアを大勢のAIの人々で試す

アイデアを書き、「これに3000ドル払いますか?」のように問いかけると、AIがシミュレートした人々がそれについて議論します。それぞれがスコア、賛成と反対の論点、そしてあなたの説明では答えられなかった質問を返します。

できること

  • 「南イタリアの引退した農家12人」のような簡単な説明から、職業、年齢、好み、気質を持つペルソナを生成。
  • ペルソナごとに1つの議論を並列で実行し、書かれている最中の進捗をリアルタイムで表示。
  • 答えられなかった質問は、短く返答するだけで新しい事実になり、次の実行ではより強い説明が使われます。
  • リトライを含め、すべてのAI呼び出しのコストを記録。

難しかった点

お世辞ではなく、議論を

AIモデルは何にでも同意しがちです。擁護役はあなたが書いた事実しか使えず、未確定の点は認めなければなりません。スコアは明確な基準に従い、しぶしぶの「はい」は本当の熱意よりはるかに低く評価されます。

1つの回答からリアルタイムの進捗を

各議論は1分以上経ってから1つのデータの塊として返ってきます。独自のパーサーがストリーミング中のデータを読み取り、現在のターン、スコア、書かれている最中の発言を表示します。

モデルを鵜呑みにしない

すべての応答はチェックされ、整形されます。中心となる項目が欠けた実行は、空欄を表示する代わりにはっきりとエラーになります。

TypeScriptReactElectronAnt DesignClaude Code
05Fireduck2026年9月デスクトップアプリ · macOS、Linux
1回のパスワード入力で連続した変更に対応(変更ごとではなく)

アプリがサーバーに送るものを見て、変える

アプリとサーバーの間に入る開発者向けツール。すべての通信が完全に記録され、アプリにもサーバーにも手を加えずに、小さなルールでその場で書き換えられます。

できること

  • すべてのリクエストとレスポンスの完全なログと、絞り込みのための小さな検索言語。
  • データの書き換え、エラーの強制、遅延の追加、レスポンスを解放するまで保留するルール。
  • 実在のWebアドレスをマシン全体で引き受けるので、設定を変えられないアプリの通信も経由させられます。
  • Claude Codeがキャプチャした通信を検索・タグ付け:「チェックアウトのエラーをすべてタグ付けして、共通点を教えて」。

難しかった点

パスワード入力を減らす

システムの変更には管理者権限が必要です。1つの安定したプロセスから、利用できる場合はTouch IDで呼び出すことで、連続した変更でも入力は1回だけ。最初は4.9秒、その後は約25ミリ秒です。

ループせずにドメインを横取りする

実在のドメインをFireduckに向けた後も、Fireduck自身は本物のサーバーに到達しなければなりません。ローカルのhostsファイルを飛ばしてDNSサーバーに直接問い合わせるので、通信がループすることはありません。

システムを元どおりに残す

システムファイルへの変更はアトミックに行われ、マーカーで囲まれます。クラッシュで残ったものは、次回の起動時にすべて片付けられます。

TypeScriptReactNode.jsExpressElectronMCP
06DnD Maker2026年8月 → 現在デスクトップアプリ · Linux優先
約470件の自動テスト

テーブルトークRPGのキャンペーン運営ワークスペース

メモ、ページ、画像が入ったただのフォルダを、生きたダンジョンズ&ドラゴンズのキャンペーンに変えます。リーダーとエディター、インタラクティブなマップ、ダイス、タイムライン、PDF書き出し、そして作者と一緒に書くAIアシスタント。

できること

  • インポート作業もデータベースも不要:ディスク上のフォルダがそのままキャンペーンになり、編集は触れた部分だけを変更します。
  • インタラクティブな戦闘マップ、クリックできるダイスロール、3Dダイスローラー。
  • キャラクター、場所、アイテムのつながりを描くボード。
  • シミュレーション:AIのゲームマスターがAIプレイヤーとアドベンチャーを遊び、実際の卓の前にテストします。

難しかった点

ファイルを壊せないAI共著者

Claudeはファイルロックのプロトコルと3方向マージのもとで編集し、削除したものは復元できるゴミ箱に移ります。アプリで入力している人もロックを取るので、AIは順番を待ちます。

ルールはお願いではなく、ツールで守らせる

ゲームの卓では、アシスタントは読み取り専用です。プロンプトでお行儀よくするよう頼んでいるからではなく、編集ツールがオフになっているからです。

測ってから、直す

アートワークを他のアプリにドラッグする操作が、何も言わずに失敗していました。計測すると82ミリ秒の遅れがあり、画像を事前に準備することで4ミリ秒に短縮し、ドラッグが動くようになりました。

TypeScriptReactElectronthree.jsCodeMirrorClaude Code
07Spaghetti2026デスクトップアプリ · ネイティブRust
1.7万行の純粋なRust(Webビューなし)

AI画像生成のためのシンプルなフロントエンド

ComfyUIはAIで画像を生成するための強力なツールですが、ワイヤーでつなぐキャンバスとして作られていて複雑です。Spaghettiはワークフローをシンプルなフォームに変え、複数のプロジェクトで1枚のグラフィックカードを共有できるようにします。

できること

  • まずは低コストな低解像度のプレビュー。選んだ画像だけに、コストの高い高解像度処理をかけます。
  • 複数のプロジェクトが同時に生成し、どれの番かをスケジューラーが決定。
  • Civitaiと連携したスタイルライブラリ(LoRA)。オフラインで使えるようキャッシュ。
  • 「どれが好き?」と人に聞くための、番号つきPDFコンタクトシート。

難しかった点

ドキュメントのない変換処理を作り直す

ComfyUIがキャンバスを実行可能なジョブに変換するのは、ブラウザ上のフロントエンドの中だけです。Spaghettiはその変換をRustで再実装し、実際に使われているワークフローのコレクションで検証しています。

1つのGPUを公平に分け合う

重みづけされたスケジューラーが、最も緊急なタスクを1ステップだけ実行してから次を選び直すので、高解像度のレンダリングが50枚のプレビューの後ろで待たされることはありません。

速さを保つギャラリー

画像はバックグラウンドのスレッドでデコードされ、サイズ上限のあるキャッシュに入るので、数百枚の画像もスムーズにスクロールできます。

RusteguiwgputokioPythonComfyUI
TODO · 開発した月を追加
08Mija2026年9月iPhoneアプリ
1.9万語を練習可能(オープンな辞書から整理)

日本語のかなを読めるようになる

日本語の2つの音節文字、ひらがなとカタカナを学ぶための、完全オフラインで動く小さなiPhoneアプリ。クイズと、本物の日本語フリックキーボードで入力する単語モードを備えています。iOS 26のLiquid Glassデザインで構築。

できること

  • 双方向のクイズ:文字を見て読みを選ぶ、またはその逆。
  • 学習中の文字だけに絞った独自の12キー・フリックキーボードで、実際の単語をつづる。
  • 選んだ行だけを練習。正答率と連続正解は、モードごとに保存されます。
  • コードで合成したサウンド、触覚フィードバック、VoiceOver、ライト・ダークモード。サードパーティのコードもネットワーク通信もなし。

難しかった点

辞書まるごと1冊から単語リストを

ビルドスクリプトがオープンなJMdict辞書を整理し(珍しい語、古語、下品な語を除外し、短い英語の意味を追加)、押したキーと一致する独自のローマ字表記を生成します。

ランダム、でもうっとうしくない

クールダウンつきの「シャッフルバッグ」で、同じ文字がすぐにまた出ないようにし、オンになっている行の数に合わせて調整します。

SwiftUIでフリックキーボード

画面の端近くでもフリックが反応するよう余白を設け、ガラス上でも読みやすいプレビューを表示し、キーで入力できるすべての文字にVoiceOverのアクションを用意しました。

SwiftSwiftUIAVFoundationPython
09ApiLynx2026年10月デスクトップアプリ · macOS、Linux、Windows

APIをビジュアルに設計する

アプリとサーバーの間の取り決めであるAPIを、長い仕様ファイルを手書きする代わりにビジュアルエディターで設計するためのデスクトップアプリ。Gitによるチーム作業と、AIが生成するサンプルデータに対応しています。

できること

  • グループとエンドポイントのツリーとしてAPIを組み立て、各フィールドを構造化されたエディターで編集。
  • 標準のOpenAPI 3.1ファイルを、何も失わずにインポート・エクスポート。
  • 「保存」でGitリポジトリにコミット・プッシュ。コミットメッセージは変更内容から自動で作成。
  • Claudeが生成するリアルなサンプルデータ。スキーマに照らして検証され、エンドポイントが変わると警告されます。

難しかった点

情報を失わない往復変換

ビジュアルモデルは、OpenAPIで表現できる以上の情報を持っています。追加の詳細はベンダー拡張に載せて運び、他のツールから取り込んだ仕様は修復して報告します。黙って捨てることはありません。

Gitを使わない人のためのGit

コミットされるのはひもづいたファイルだけで、拒否されたプッシュはリベースして1回だけ再試行します。本当のコンフリクトが起きた場合は、コミットはローカルに安全に残り、ユーザーに対処方法が伝えられます。

正直さを保つAIデータ

各エンドポイントには「形のフィンガープリント」があります。形が変わるとサンプルは古いものとしてマークされますが、名前の変更や言い回しの変更は対象外です。

TypeScriptReactElectronZustandOpenAPIClaude Code
10StrataLab2026年5月 – 6月デスクトップアプリ · Windows、macOS、Linux主要機能は動作中。SSHトンネルとAIアシスタントは未完成
46種類のクエリステージをビジュアルビルダーで利用可能

MongoDBデータベースのためのデスクトップツール

Studio 3TやCompassと同じ分野の、MongoDBデータベースを閲覧・編集するデスクトップクライアント。複雑なクエリをビジュアルに組み立てて理解できます。仕様を先に書き、AIコーディングエージェント(Gemini CLI)が実装しました。

できること

  • ツリー、テーブル、生のJSONでデータを検索・閲覧・編集。
  • 複数ステップのクエリを表すビジュアルなタイムライン。各ステップの前後のデータと処理時間を表示。
  • インデックスでクエリがどれだけ速くなるかを測る、ワンクリックのテスト。
  • ペイン間でタブをドラッグできる分割ビュー。

難しかった点

アプリを壊していたデータ型

MongoDBの特殊な型は、アプリのプロセス間で受け渡しができません。双方向の変換レイヤーがそれをプレーンなデータに変え、戻すときに正確な型を再構築します。

大きな結果でフリーズするUI

すべての行がそれぞれ専用の編集ダイアログを持っていました。イベント経由で開く共有ダイアログ1つにまとめたことで、数千行でも再び高速になりました。

表示位置を保つ編集

編集後は該当するドキュメントだけを再読み込みして差し替えるので、展開したツリーやスクロール位置はそのまま保たれます。

TypeScriptVue 3ElectronMongoDBMonacoGemini CLI
11Hive2026デスクトップアプリ · macOS、Linux複数段階の開発のステップ1:プランナー、レビューの流れ、ファイル形式は動作中。次はClaude Codeとの連携

アプリを図として設計し、AIで作る

設計の主導権を人間が持ったまま、AIでアプリを作るためのツール。アプリのロジックと画面を、つながった図として描きます。その後の検証ステップは、あなた自身の説明が必要とする変更だけを提案します。

できること

  • 分割されたキャンバス:片側にロジック、もう片側に画面を置き、ワイヤーでつなぐ。
  • 型つきの接続:型が合わないワイヤーは拒否されます。
  • レビュー画面:提案された変更を1つずつ承認・却下。ビフォー・アフターの切り替えつき。
  • プロジェクトをまたいで再利用できる、コーディングルールの共有ライブラリ。

難しかった点

主導権を奪わずに手伝うAI

提案できる変更は、ポートか接続の追加だけです。ノードの作成や説明の書き換えは、そもそも表現できません。空の回答も成功とみなされ、すべての変更には根拠となる要件の引用が必要です。

図への変更をレビューする

各変更には、それが追加するワイヤーやポートの位置にアルファベットが表示されます。ワイヤーを承認すると必要なポートも承認され、ポートを却下するとそのワイヤーも却下されます。

安全な保存

自動保存は20秒ごと、しかも変更があったときだけ。書き込みはアトミックなので、クラッシュしてもプロジェクトファイルは壊れません。

TypeScriptReactElectronReact FlowZustandMonaco
TODO · 開発した月を追加