スクリプトまたはコマンドラインツール
自分の問題。ユーザーは自分だけ
$0 · 最小
△ 他の人も使いたがるが、ターミナルを開けない
図面セット · L0–L3
デスクトップソフトは、ウェブページが決して得られないものを得ます。ファイルシステム、システム音声、GPU、常駐処理。その代わり、見たこともないマシンに、自分が書いたのではない警告を越えてプログラムを届けることになります。この図面セットは、デスクトップソフトの形と、本気度の段階ごとに加わるものを示します。
設計思想
デスクトップソフトは、他人のマシンに何年も住むプログラムです。ファイルとシステムを預かる以上、信頼を得て、守り続けなければなりません。
優れたデスクトップツールの多くは、作者自身の毎日の不満を解くために始まります。本物の問題は毎日本物のテストケースをくれます。
アイドルならアイドルに。隠れた CPU 使用も、裏でのダウンロードも、約束した場所以外への書き込みもなし。ファンが回ればユーザーは気づきます。
失敗するインストーラー、怖い警告、届かない更新。これらは製品の周りの雑用ではなく、製品のバグです。
自分の問題を解いているなら、まずスクリプト、次にそれを包む小さなウィンドウ。インストーラー、署名、自動更新に投資するのは、他人が動かす必要が出てからです。
毎日ぶつかる不満があり、プログラムでそれを消せるか知りたい段階です。ユーザーは自分だけなので、ターミナルで十分です。
手動かログイン時に動かすスクリプトが一つ。決まったフォルダでファイルを読み書きし、何をしたか表示します。ウィンドウもインストーラーもなし。
Δ この段階で追加
地図上の形: スクリプトまたはコマンドラインツール
UI フレームワークの見た目ではなく、難しい部分(音声、ファイル、画像)のライブラリが最も良い言語を選びます。UI は後で足せますが、中核はごまかせません。
他の人もツールを使いたがっていますが、ターミナルは開けないか開きたくありません。相手のマシンは設定も言語も違い、あなたのライブラリは一つも入っていません。
スクリプトにウィンドウがつき、実行環境と一緒にダブルクリックで入るものにまとめられます。設定は OS 標準のユーザーフォルダへ移り、権限は機能が必要なときだけ求めます。
Δ この段階で追加
地図上の形: ネイティブ UI ツールキット(Qt、WPF、SwiftUI) · デスクトップの殻に入れたウェブ UI(Tauri、Electron)
中核が何を必要とするかで UI の方式を選びます。音声・低遅延・省メモリならネイティブ、画面こそが製品ならウェブの殻。開発時の実行ではなくパッケージ版をテストします。壊れ方が違います。
ソフトを販売するか、録音、文書、アカウントを扱うようになりました。署名のないビルドはセキュリティ警告で売上を失い、ユーザーのファイルを失うクラッシュは信頼を失います。
ビルドは CI で署名し、証明書はリポジトリの外に置きます。小さなオンラインサービスがライセンス確認と更新フィードを担い、オフラインでも猶予期間は動き続けます。クラッシュ報告は同意があるときだけ、ファイル内容を含めずに送ります。
Δ この段階で追加
地図上の形: デスクトップアプリ + オンラインサービス
この段階で最も価値あるファイルは署名証明書です。リポジトリにもログにも入れません。サーバーが落ちても、支払ったユーザーをライセンス確認で締め出してはいけません。
その他の選択肢 · 本サイト未検証
数千のインストールが Windows、macOS、場合によっては Linux で、Intel と ARM の両方で異なるバージョンを動かしています。悪い更新は多くのマシンを同時に壊し、その一部は企業のものです。
すべてのリリースは CI が OS とチップごとにビルドして署名します。更新はチャンネル経由で、ベータから安定版の一部へと広げ、悪いバージョンはフィードから取り下げて配信を止められます。
Δ この段階で追加
地図上の形: デスクトップアプリ + オンラインサービス · デスクトップの殻に入れたウェブ UI(Tauri、Electron)
ビルドと署名はすべて自動化します。この段階では、手作業のリリース手順はいつか必ず飛ばされます。
取り得るすべての形。その大半は「まだ作るべきでないもの」を知るためにある。
自分の問題。ユーザーは自分だけ
$0 · 最小
△ 他の人も使いたがるが、ターミナルを開けない
深いシステムアクセス、低遅延、省メモリ(Subtitle-Windows の形)
$0(ツールキットのライセンスに注意) · 中
△ 一つのチームで複数の OS に同じアプリを出す必要がある
一つのウェブコードでクロスプラットフォーム。UI 中心のアプリ
$0 · 低〜中
△ メモリ使用量や起動時間が不満になる、または殻が公開しないシステム API が必要
ライセンス、同期、アカウント、クラウド処理
$5–100/月 + 署名証明書 · 中〜高
△ 数千のインストールがバージョンをまたぐ。段階的な更新チャンネルが必要
各概念に平易な一文とたとえ話をひとつずつ。ツールモジュールをクリックしても同じ解説が出る。