প্রকল্প সম্পর্কে
swift-adwaita হলো GTK4 এবং libadwaita-এর জন্য একটি ইম্পেরেটিভ Swift 6 র্যাপার লাইব্রেরি, যা নেটিভ GNOME ডেস্কটপ অ্যাপ্লিকেশন তৈরির জন্য ডিজাইন করা হয়েছে। এটি 178টি উইজেট র্যাপার প্রদান করে—74টি অটো-জেনারেটেড Adwaita উইজেট এবং 104টি হাত-লেখা GTK উইজেট—সাথে WebKitGTK 6.0-এর জন্য একটি WebView র্যাপার (আলাদা AdwaitaWebKit প্রোডাক্টের মাধ্যমে অপ্ট-ইন)।
লাইব্রেরিটি তিন-স্তরের আর্কিটেকচার অনুসরণ করে: CAdwaita (সিস্টেম লাইব্রেরি বাইন্ডিং), GObjectSupport (ARC, সিগন্যাল, Variant এবং GValue সহ GObject লাইফসাইকেল ম্যানেজমেন্ট), এবং Adwaita (উইজেট র্যাপার)। সব raw পয়েন্টার Swift টাইপের আড়ালে লুকানো, এবং পাবলিক API raw স্ট্রিংয়ের পরিবর্তে 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.