2 điểm bởi GN⁺ 2025-03-31 | 1 bình luận | Chia sẻ qua WhatsApp
  • Đã phát hành phiên bản ổn định đầu tiên của swiftly, công cụ quản lý phiên bản chính thức giúp đơn giản hóa quá trình cài đặt, quản lý và cập nhật phiên bản Swift
  • Trước đây chỉ có thể dùng phiên bản Swift mới nhất thông qua Xcode, nhưng giờ đây đã có thể cài đặt độc lập trên macOS và nhiều bản phân phối Linux
  • Bắt đầu là một công cụ của cộng đồng Swift, swiftly nay đã được tích hợp vào tổ chức GitHub chính thức của Swift và được hỗ trợ chính thức
  • Có thể cài đặt Swift mà không cần Xcode, đồng thời dễ dàng quản lý phiên bản cho nhiều mục đích như công cụ phát triển và môi trường máy chủ

Tóm tắt các tính năng chính của swiftly

  • Có thể cài đặt và chuyển đổi giữa nhiều bộ công cụ Swift
    • Cung cấp các lệnh như swiftly install, swiftly use, swiftly list-available
    • Có thể ép dùng phiên bản nhất quán giữa các thành viên trong nhóm thông qua tệp .swift-version
  • Có thể cài cả phiên bản snapshot và phiên bản cũ
    • Ví dụ: cũng có thể dễ dàng cài các phiên bản như main-snapshot-2025-03-25
    • Có thể chạy tạm thời với một phiên bản cụ thể thông qua cú pháp swiftly run +버전명
  • Bao gồm tính năng tự động cập nhật
    • Có thể áp dụng các tính năng mới nhất bằng lệnh swiftly self-update
  • Hỗ trợ macOS và nhiều bản phân phối Linux
    • Hỗ trợ Ubuntu, Debian, Fedora, Red Hat Enterprise Linux, Amazon Linux, v.v.

swiftly là một công cụ CLI tự cài đặt được viết bằng Swift

  • Bản thân swiftly cũng được triển khai bằng ngôn ngữ Swift
    • Thao tác hệ thống tệp: dùng mô-đun Foundation
    • Yêu cầu HTTP: dùng Async HTTP Client
    • Truy vấn thông tin phiên bản: dùng Swift OpenAPI Generator
    • Giải nén: dùng libarchive và liên kết C
  • Được cung cấp dưới dạng binary tự cài đặt, không cần shell script → cải thiện độ ổn định giữa các nền tảng
  • Cung cấp giao diện CLI gọn gàng như --help

Tương thích với các bản phân phối Linux và cài đặt đơn giản

  • Swift.org có thể phát hiện hệ điều hành, nhưng không thể phát hiện bản phân phối Linux
  • Để giải quyết việc này, sử dụng Swift Static Linux SDK để cung cấp binary hoạt động trên phạm vi rộng các bản phân phối
  • Người dùng có thể cài đặt chỉ bằng cách sao chép và dán lệnh từ website

Kế hoạch sắp tới và hoạt động mã nguồn mở

  • Áp dụng swiftly làm phương thức tiêu chuẩn để cài đặt Swift bên ngoài Xcode
  • Cũng hỗ trợ thiết lập môi trường CI/CD, máy chủ proxy, đường dẫn cài đặt tùy chỉnh → phù hợp cả với môi trường doanh nghiệp
  • Đang được phát triển dưới dạng mã nguồn mở, có thể tạo issue và PR trên GitHub
  • Có thể tham gia Q&A và thảo luận trên diễn đàn Swift

Xin gửi lời cảm ơn đặc biệt tới Patrick Freed, người đã tạo ra swiftly. Cộng đồng Swift đang giúp Swift ngày càng tỏa sáng hơn

1 bình luận

 
GN⁺ 2025-03-31
Ý kiến trên Hacker News
  • Steve Klabnik gần đây đã nói trong một tập của Oxide and Friends về việc nhóm Rust ban đầu đã nhận ra tầm quan trọng của những công cụ như thế này. Đây là một tín hiệu tích cực cho thấy Swift và Apple đang tiếp tục nỗ lực nâng cao tiềm năng của Swift như một ngôn ngữ đa dụng bên ngoài hệ sinh thái Apple
    • Swift hoạt động tốt trên Linux, viết thú vị và có khả năng tương tác rất tốt với C, C++ và Java
    • Những điểm ít thích hơn: thời gian biên dịch, kích thước nhị phân, chi phí phụ của kiểm tra kiểu lúc chạy (hiệu năng của Codable đã gây ra vấn đề cho ứng dụng), và sự khó khăn khi xử lý async/await
  • Tôi thắc mắc chuyện gì đã xảy ra với Swift. Trước đây tôi nghe nói về nó rất nhiều, nhưng giờ thì không còn như vậy nữa. Có lẽ là vì tôi đang ở trong một buồng dội âm nào đó
  • Tôi hy vọng việc dùng Swift bên ngoài thế giới Apple sẽ trở nên khả thi
  • Tôi tự hỏi đây có phải là thứ giống như UV của Swift không, nó có những lợi ích gì, và liệu có thể bỏ Xcode để dùng cái này thay thế không
  • Tôi chưa nhìn lại Swift kể từ khi nó mới ra mắt, nhưng tôi thắc mắc liệu tài liệu đã tốt hơn chưa. Trước đây tôi đọc các câu trả lời trên Stack Overflow về những lệnh mà tôi không thể tìm thấy trong tài liệu, hoặc dù có thấy trong tài liệu thì cũng không có thông tin hữu ích
  • Một trong những lý do khiến nhiều người thích Zig là nó có sẵn công cụ tích hợp. Nó được cung cấp cùng ngôn ngữ ngay từ Day 1
  • Điều này sẽ rất có ích cho hệ sinh thái Swift. Tính năng có thể thêm và gỡ các phiên bản ngôn ngữ theo nhu cầu là cực kỳ tiện lợi, và tôi rất vui khi ngày càng có nhiều ngôn ngữ bổ sung điều này
  • Tôi thắc mắc liệu rồi có thể chạy unit test cho mã cần import UIKit bên ngoài simulator hay không
  • Nếu có hỗ trợ Windows thì mọi người sẽ có thể thử nó