- Swiftは、簡潔な構文、静的型付け、コード記述を容易にする特別な機能のおかげで、ユーザーインターフェースの作成に適している
- Adwaita for Swift は、こうしたSwiftの機能を活用し、GNOMEプラットフォーム向けアプリケーション開発のための直感的なインターフェースを提供する
- GNOMEはLinux向けの人気のあるオープンソースのデスクトップ環境で、シンプルさとアクセシビリティを重視している
コード例
- Adwaita for Swiftを使ったコード例では、
Counter というビューを定義して、ウィンドウ内部のユーザーインターフェース部分を表示する
- ビューは別のビューの中にネストしたり、ウィンドウの子として追加したりでき、ビュー階層内での位置に応じて外部から内容を変更できる
- これにより、さまざまな結果を生み出すためにビューを組み合わせることがより簡単になる
動機
- Swiftを使ってGNOMEアプリを書けるようにするためのもの
- 既存のlibadwaitaおよびGTKバインディングは、コマンドの連なりを使ってユーザーインターフェースを構築する命令型コーディングスタイルに従っている
- Adwaita for Swiftはデータ中心で構築されているため、たとえばボタンを押して
count 変数を変更すると、ユーザーインターフェースが自動的に更新される
使いやすさ
- 従来のバインディングでは、値が変更されるたびにウィジェットが内容を更新するよう、オブジェクトに対して関数を呼び出す必要がある
- Adwaita for Swiftでは、保持したい変数に一意の識別子を追加するだけで、残りは自動的に処理される
可読性
- データ中心のアプローチは可読性にも良い影響を与える
- ユーザーインターフェース自体を宣言的に定義できるため、結果を得る方法よりも、アプリの見た目と振る舞いに集中できる
クロスプラットフォームアプリ開発
- Adwaita for Swiftは、Linux、macOS、Windowsで単一のコードベースから動作するアプリを書けるようにする
- SwiftUIアプリとGNOMEアプリの間でバックエンドのSwiftコードを共有できる
- Swiftを使って新しいGNOMEアプリを作成でき、優れたコード可読性とメモリ安全性を実現できる
アプリのリリース
- Adwaita for SwiftはFlathubとうまく連携し、デスクトップLinux向けアプリのインストールと公開を簡素化する
- Swift 5向けのFreedesktop SDK拡張と、Swift Package Managerの依存関係をFlatpakソースへ変換するツールがある
GN⁺の意見
- SwiftとGNOMEの組み合わせは、開発者に新しいプラットフォームでのアプリ開発の機会を提供し、とりわけSwiftの強力な言語機能とGNOMEのユーザーフレンドリーな環境が組み合わさることで、効率的な開発体験を可能にする。
- この記事はLinuxデスクトップ環境への新しいアプローチを示しており、既存の開発方式と比べて、宣言的スタイルによる開発のしやすさと可読性を強調している。
- クロスプラットフォーム開発の利点を強調し、さまざまなオペレーティングシステムで同じユーザー体験を提供することの重要性を浮き彫りにしている
- 技術的な背景知識として、Swiftの静的型付けとメモリ安全性は、アプリの性能と安定性を高めるのに寄与しうる
- 批判的な観点から見ると、GNOME環境以外のデスクトップ環境での互換性の問題や性能上の課題が発生する可能性も考慮する必要がある
3件のコメント
https://stuff.mit.edu/afs/athena/…
Gnome の公式な発音は「ノーム」ではなく「グノーム」です。
素晴らしいですね。
Hacker Newsの意見
SwiftUIに似たラッパーに関する議論
他のプロジェクトやツールへの言及
個人的なプロジェクト経験の共有
過去の経験との比較
Macでの実行問題
adwaita.hが見つからない問題に遭遇した。個人的な「夢のフレームワーク」についての意見
gtk4での3Dサポートに関する質問
関数パラメータでのキー使用に関する意見
Swiftコードベースのテストに関する議論
Swiftがデスクトップ開発の興味深い選択肢になりつつあるという発見