- Swift phù hợp để xây dựng giao diện người dùng nhờ cú pháp gọn gàng, kiểu tĩnh và các tính năng đặc biệt giúp việc viết mã trở nên dễ dàng hơn
- Adwaita for Swift tận dụng các tính năng này của Swift để cung cấp một giao diện trực quan cho việc phát triển ứng dụng trên nền tảng GNOME
- GNOME là một môi trường desktop mã nguồn mở phổ biến cho Linux, tập trung vào sự đơn giản và khả năng tiếp cận
Ví dụ mã
- Trong ví dụ mã dùng Adwaita for Swift, một view tên là
Counter được định nghĩa để hiển thị phần giao diện người dùng bên trong cửa sổ
- View có thể được lồng trong các view khác hoặc được thêm làm phần tử con của cửa sổ, và nội dung của nó có thể được chỉnh sửa từ bên ngoài tùy theo vị trí trong hệ phân cấp view
- Nhờ đó, việc kết hợp các view để tạo ra nhiều kết quả khác nhau trở nên dễ dàng hơn
Động lực
- Mục tiêu là giúp có thể viết ứng dụng GNOME bằng Swift
- Các binding libadwaita và GTK hiện có theo phong cách lập trình mệnh lệnh, xây dựng giao diện người dùng bằng một chuỗi lệnh
- Adwaita for Swift được xây dựng theo hướng dữ liệu, ví dụ khi nhấn nút làm thay đổi biến
count thì giao diện người dùng sẽ tự động được cập nhật
Tính dễ sử dụng
- Với các binding truyền thống, mỗi khi giá trị thay đổi bạn phải gọi hàm trên đối tượng để widget cập nhật nội dung của nó
- Adwaita for Swift chỉ cần thêm một định danh duy nhất vào biến cần lưu, còn lại sẽ tự xử lý
Khả năng đọc hiểu
- Cách tiếp cận hướng dữ liệu có tác động tích cực đến khả năng đọc hiểu mã
- Nhờ định nghĩa khai báo của chính giao diện người dùng, bạn có thể tập trung vào diện mạo và hành vi của ứng dụng thay vì cách tạo ra kết quả
Phát triển ứng dụng đa nền tảng
- Adwaita for Swift cho phép viết ứng dụng chạy trên Linux, macOS và Windows với một codebase duy nhất
- Có thể chia sẻ mã Swift backend giữa ứng dụng SwiftUI và ứng dụng GNOME
- Có thể dùng Swift để tạo ứng dụng GNOME mới, đồng thời đạt được khả năng đọc mã tốt và an toàn bộ nhớ cao
Phát hành ứng dụng
- Adwaita for Swift hoạt động tốt với Flathub, giúp đơn giản hóa việc cài đặt và phát hành ứng dụng cho desktop Linux
- Có extension Freedesktop SDK cho Swift 5 và một công cụ chuyển đổi dependency của Swift Package Manager thành nguồn Flatpak
Ý kiến của GN⁺
- Sự kết hợp giữa Swift và GNOME mang đến cho các nhà phát triển cơ hội phát triển ứng dụng trên một nền tảng mới; đặc biệt, các tính năng ngôn ngữ mạnh mẽ của Swift kết hợp với môi trường thân thiện với người dùng của GNOME giúp đem lại trải nghiệm phát triển hiệu quả.
- Bài viết này đưa ra một cách tiếp cận mới cho môi trường desktop Linux, đồng thời nhấn mạnh sự tiện lợi và khả năng đọc hiểu của phong cách phát triển khai báo so với các phương pháp phát triển hiện có.
- Bài viết cũng nhấn mạnh lợi thế của phát triển đa nền tảng và làm nổi bật tầm quan trọng của việc cung cấp cùng một trải nghiệm người dùng trên nhiều hệ điều hành khác nhau
- Về nền tảng kỹ thuật, kiểu tĩnh và an toàn bộ nhớ của Swift có thể góp phần nâng cao hiệu năng và độ ổn định của ứng dụng
- Ở góc nhìn phản biện, cần cân nhắc khả năng phát sinh vấn đề tương thích hoặc hiệu năng trên các môi trường desktop khác ngoài GNOME
3 bình luận
https://stuff.mit.edu/afs/athena/…
Cách phát âm chính thức của Gnome không phải là "nôm" mà là "gờ-nôm".
Thật tuyệt.
Ý kiến Hacker News
Thảo luận về wrapper tương tự SwiftUI
Đề cập đến các dự án và công cụ khác
Chia sẻ trải nghiệm dự án cá nhân
So sánh với trải nghiệm trong quá khứ
Vấn đề chạy trên Mac
adwaita.h.Ý kiến về “framework trong mơ” cá nhân
Câu hỏi về hỗ trợ 3D trong gtk4
Ý kiến về việc dùng key trong tham số hàm
Thảo luận về kiểm thử codebase Swift
Nhận thấy Swift đang trở thành một lựa chọn thú vị cho phát triển desktop