**タイトル:**  
「アプリ(2025)を書きたいのですか?」

2026/03/10 5:50

**タイトル:** 「アプリ(2025)を書きたいのですか?」

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

概要:
著者は、Standard C、POSIX/Unix CLI、Linux GTK/GNOME、Linux Qt/KDE、Windows WinUI 3、macOS/iOS SwiftUI、および Android Jetpack Compose の 7 つのプラットフォームでサイコロ投げプログラムを構築し、クロスプラットフォーム開発を評価しました。
すべてのプラットフォームにおいて「永続設定」(ダイス面)と少なくとも一つの英語以外の言語へのローカリゼーションが必須でした。
Standard C バージョンは

rand()
を使用し、範囲処理を慎重に行いました。POSIX ビルドは最小限で実装されましたが、macOS での RNG の奇妙な挙動と高品質
/dev/urandom
サポートの欠如が判明しました。
GTK/GNOME 開発では GLib/GObject ドキュメントの不完全さ、アクションとシグナル処理の混乱、Flatpak での GSettings スキーマインストール問題、および翻訳ローディングの破損が課題でした。
Qt/KDE(Kirigami/C++)は主に CMake エラー(ECM が不足、ターゲット名が間違っている)が障害となりましたが、解決後はシグナル・スロットと KConfig が円滑に機能し、エラーメッセージも優れています。
WinUI 3 はモダンな XAML レイアウトを提供しましたが、ビルドパイプラインの遅さ、スレッド例外の混乱、および WPF/UWP/WinUI 2/3 で分散したドキュメントが問題でした。
SwiftUI はライブプレビューと
@AppStorage
設定を提供しましたが、Apple ハードウェア/言語に依存し、頻繁な API の変更(例:NavigationStack が欠如)に直面しました。
Jetpack Compose はドキュメントの断片化、Studio デバッグの不安定さ、非同期 DataStore による永続設定の扱い難さ、および全体的に磨きが足りない印象を受けました。
まとめとして、Qt/KDE が最も「実装できる」環境であると同時に、GNOME は意見が強く、新規ユーザー向けのドキュメントが不足していると評価されます。結論では、CMake の問題を解決した Qt をネイティブクロスプラットフォームアプリ開発の優先選択肢として推奨しています。

注記: この改訂概要はリストからすべての主要ポイントを保持し、新たな推論や仮定を追加せずに明示された内容のみを反映しています。

本文

「Dice‑Roller」プラットフォーム実験のまとめ

私はいくつかの言語と UI ツールキットでシンプルなサイコロ振りプログラムを作成し、各プラットフォームにおける 開発者体験 を評価しました。
核心となるロジックは単純(乱数生成)なので、以下の点に集中することができました。

プラットフォーム重要ポイント強み弱み
Standard C純粋なテキスト、外部依存なしISO‑C コンパイラならどこでもポータブル。古いハードウェア上で永続的に動作UI が無く、永続化や国際化がない
POSIX (Unix‑style)
make
・シェルフレンドリー、
/dev/urandom
は標準外
シンプルなビルド、コマンドライン規約が明確macOS での乱数品質問題。POSIX の RNG サポートが限定的
GNOME / GTKC + GtkBuilder XML、GObject、GSettingsネイティブに近い外観、デスクトップ統合GObject やアクション vs シグナルのドキュメント不足、Flatpak の奇妙さ、翻訳作業が面倒
KDE / QtC++/QML、CMake、KConfig強力なシグナル‑スロット機構、エラーメッセージが明確CMake に慣れないと混乱。クロスコンパイルの問題、ドキュメントが散在
WinUI 3 (C++/WinRT)XAML レイアウト、AppData ストレージモダンでレスポンシブな UI、IDE ツールが充実ブランド混乱。ビルドパイプラインが遅い。スレッドに関する奇妙さ
SwiftUI宣言型 Swift コード、ライブプレビュー迅速な反復、簡単な永続化 (
@AppStorage
)
Apple 固有でクロスプラットフォームの再利用性が低い。API が頻繁に変更される
Jetpack ComposeKotlin + Compose UI、DataStoreAndroid のモダン UI ツールキットドキュメントが断片的。デバッグが難しい。非同期設定が複雑

主な結論

  • ドキュメントが最大の障壁。
    GNOME の GObject に関する説明不足や KDE の国際化ガイドが散在していることで、技術的制限よりも多くの摩擦を生みました。

  • ビルドシステムは重要。
    CMake は時に手間がかかりますが、単純なプロジェクトでは

    make
    が驚くほど信頼でき、Flatpak/meson は追加の複雑さをもたらします。

  • 永続化と国際化は「nice‑to‑have」ではない。
    各プラットフォームで設定保存や翻訳読み込みに手間がかかりました。WinUI と SwiftUI が最も簡単、Jetpack Compose が最も難しいと言えます。

  • モダン UI ツールキット(WinUI 3、SwiftUI、Compose)は柔軟性より開発者エルゴノミクスを優先します。
    ライブプレビューやレスポンシブレイアウトが提供されますが、ベンダーのエコシステムに縛られます。


最終的なおすすめ

*「すべてで動く単一コードベース」を求めるなら、Qt(CMake を使わず) が最も実用的です。
強力な UI フレームワークと明確なエラーメッセージ、クロスプラットフォームビルドツールを兼ね備えつつ、学習コストを抑えることができます。

(モバイル専用なら Android/Jetpack Compose も選択肢に入りますが、ドキュメント作業とデバッグ学習曲線がより steep になるでしょう。)

同じ日のほかのニュース

一覧に戻る →