프로젝트 소개
swift-adwaita는 GTK4 및 libadwaita용 Swift 6 명령형 래퍼 라이브러리로, 네이티브 GNOME 데스크톱 애플리케이션 구축을 위해 설계되었습니다. 178개의 위젯 래퍼(자동 생성된 Adwaita 위젯 74개, 수작업으로 작성된 GTK 위젯 104개)와 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 라이선스로 배포됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.