このプロジェクトについて

swift-adwaitaは、GTK4とlibadwaita用の命令型Swift 6ラッパーライブラリであり、ネイティブGNOMEデスクトップアプリケーションの構築を目的としています。74の自動生成されたAdwaitaウィジェットと104の手書きのGTKウィジェットを含む178のウィジェットラッパーを提供し、WebKitGTK 6.0用のWebViewラッパー(別のAdwaitaWebKitプロダクトを介してオプトイン)も含まれます。 このライブラリは3層アーキテクチャに従います:CAdwaita(システムライブラリバインディング)、GObjectSupport(ARC、シグナル、Variant、GValueを用いたGObjectライフサイクル管理)、Adwaita(ウィジェットラッパー)。すべての生ポインタはSwift型の背後に隠され、公開APIは生の文字列ではなく、SignalName、PropertyName、CSSClass、IconNameに型安全な列挙型を使用します。 主な機能には、ウィジェット設定のための流暢なメソッドチェーン、@MainActorクロージャによる型安全なシグナル処理、ファイルダイアログとクリップボード操作のためのasync/awaitサポート、列挙型ベースのKeyとKeyModifiersによるキーボードショートカット、GObjectRef.bind()によるプロパティバインディング、追加/削除操作のための統一されたContainerプロトコル、SwitchRowやPreferencesGroupなどの一般的なウィジェットのための便利なイニシャライザが含まれます。 このライブラリは、GMenuRefとSimpleActionによるメニューとアクション、DragSourceとDropTargetによるドラッグアンドドロップ、CSSProviderと型安全なCSSClass列挙型によるCSSスタイリング、TimedAnimationとSpringAnimationによるアニメーション、DrawingAreaとCairoContextによる描画、ラベルとエントリのスタイリングのためのテキスト属性、MediaStreamとVideoによるメディア再生、gettextセットアップ、複数形およびコンテキストルックアップ、実行時言語切り替え、右から左へのレイアウトを含む完全なローカライゼーションサポートを提供します。 また、型安全なGSettingsバインディングのための@Settingプロパティラッパー、Breakpoint.minWidth()とBreakpoint.maxWidth()による適応レイアウトヘルパー、@MainActor分離とSendable型による完全なSwift 6並行性サポートも提供します。 このプロジェクトには、Linuxで1194件、macOSで1181件のテスト、78のデモ例、UbuntuとmacOSでのCIが含まれています。Swift 6.2+、libadwaita 1.5+開発ヘッダー、GtkSourceView 5開発ヘッダーが必要で、LinuxまたはmacOS 13+(Apple Silicon推奨)をサポートします。 Linuxでの配布は、GTK4とlibadwaitaにGNOMEランタイム、コンパイラにSwift SDK拡張機能を使用するFlatpakを介して推奨されます。このライブラリはMITライセンスの下でリリースされています。