इस प्रोजेक्ट के बारे में
swift-adwaita, GTK4 और libadwaita के लिए एक इम्पेरटिव Swift 6 रैपर लाइब्रेरी है, जो मूल GNOME डेस्कटॉप अनुप्रयोगों के निर्माण के लिए डिज़ाइन की गई है। यह 178 विजेट रैपर प्रदान करता है—74 स्वतः-जनरेटेड Adwaita विजेट और 104 हस्त-लिखित GTK विजेट—साथ ही WebKitGTK 6.0 के लिए एक WebView रैपर (अलग AdwaitaWebKit उत्पाद के माध्यम से ऑप्ट-इन)।
लाइब्रेरी तीन-परत वास्तुकला का पालन करती है: CAdwaita (सिस्टम लाइब्रेरी बाइंडिंग), GObjectSupport (ARC, सिग्नल, Variant और GValue के साथ GObject जीवनचक्र प्रबंधन), और Adwaita (विजेट रैपर)। सभी कच्चे पॉइंटर्स Swift प्रकारों के पीछे छिपे होते हैं, और सार्वजनिक API कच्चे स्ट्रिंग्स के बजाय SignalName, PropertyName, CSSClass और IconName के लिए प्रकार-सुरक्षित एनम का उपयोग करता है।
मुख्य विशेषताओं में विजेट कॉन्फ़िगरेशन के लिए फ्लूएंट मेथड चेनिंग, @MainActor क्लोजर के साथ प्रकार-सुरक्षित सिग्नल हैंडलिंग, फ़ाइल डायलॉग और क्लिपबोर्ड संचालन के लिए async/await समर्थन, एनम-आधारित Key और KeyModifiers के साथ कीबोर्ड शॉर्टकट, GObjectRef.bind() के माध्यम से प्रॉपर्टी बाइंडिंग, append/remove संचालन के लिए एक एकीकृत 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 पर वितरण Flatpak के माध्यम से अनुशंसित है, जो GTK4 और libadwaita के लिए GNOME रनटाइम और संकलक के लिए Swift SDK एक्सटेंशन का उपयोग करता है। लाइब्रेरी MIT लाइसेंस के तहत जारी की गई है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.