Bối cảnh
Ngày 24 tháng 3 năm 2026, Apple và cộng đồng Swift chính thức phát hành Swift 6.3 — bản cập nhật tiếp theo sau Swift 6.0, tập trung vào khả năng tương tác với C, cải tiến Swift Testing, tối ưu hóa Swift Package Manager và mở rộng hỗ trợ nền tảng mới, đặc biệt là Android.
Đây là bản release tập hợp nhiều đề xuất từ cộng đồng Swift Evolution và đánh dấu bước tiến quan trọng trong việc đưa Swift ra ngoài hệ sinh thái Apple.
Tại sao quan trọng
- Swift Testing được nâng cấp đáng kể — Thêm cảnh báo không gây crash, huỷ test có kiểm soát và đính kèm ảnh trong test report, giúp workflow kiểm thử trở nên chuyên nghiệp hơn
- Swift có thể gọi từ C — Attribute
@cmới cho phép expose hàm và enum Swift sang C header, mở ra khả năng tích hợp với các SDK và thư viện C truyền thống - SPM cải tiến thực chất — Hỗ trợ macro được prebuilt (không cần build lại), câu lệnh khám phá traits mới và flexible documentation kế thừa cho command plugin
- Android SDK chính thức đầu tiên — Swift có thể viết app Android native với khả năng tương tác Kotlin/Java qua Swift Java và Swift Java JNI Core
Chi tiết kỹ thuật
Swift Testing — Cải tiến quy trình kiểm thử
Warning issue — Ghi log không gây fail test:
// Trước: chỉ có Issue.record() gây fail test
// Swift 6.3: thêm severity .warning để log cảnh báo
Issue.record("Giá trị ngoài kỳ vọng nhưng chấp nhận được", severity: .warning)Huỷ test có kiểm soát — Bỏ qua test hoặc từng argument trong parameterized test:
@Test(arguments: [1, 2, 3, 4, 5])
func kiemTraSoPham(so: Int) throws {
if so == 3 {
try Test.cancel() // bỏ qua argument này, không fail
}
#expect(so != 0)
}Image attachment — Đính kèm ảnh vào test result (iOS, macOS, Windows):
// Chụp ảnh UI và đính kèm vào test report
let attachment = Attachment(image: myUIImage, named: "trang-chu.png")
Issue.record(attachment)C Interoperability — Expose Swift sang C
Swift 6.3 giới thiệu attribute @c để tạo C header từ code Swift, hữu ích khi tích hợp với SDK C hoặc viết thư viện dùng chung:
// Swift function có thể gọi từ C
@c
func xuLyDuLieu(_ input: Int32) -> Int32 {
return input * 2
}
// Đổi tên trong C header
@c("process_data")
func xuLyDuLieu(_ input: Int32) -> Int32 {
return input * 2
}Attribute này kết hợp với @implementation để viết Swift implementation cho function đã khai báo trong C header.
Module Name Selector — Tránh xung đột tên
Khi import nhiều framework có API trùng tên, dùng cú pháp ModuleName::API() để chỉ định rõ:
import FrameworkA
import FrameworkB
// Thay vì gọi mơ hồ:
// doSomething() // lỗi: ambiguous
// Chỉ định rõ module:
FrameworkA::doSomething()
FrameworkB::doSomething()Swift Package Manager — Nhanh hơn, mạnh hơn
Prebuilt Swift Syntax cho macro — Macro packages không cần build lại SwiftSyntax từ nguồn mỗi lần, giảm đáng kể thời gian build:
# Tích hợp Swift Build preview (unified build engine)
swift build --use-swift-build
# Khám phá traits trong package
swift package show-traitsSwift Build thống nhất engine build trên tất cả nền tảng (macOS, Linux, Windows), cho trải nghiệm nhất quán hơn trong môi trường CI/CD đa nền tảng.
DocC — Tối ưu tài liệu kỹ thuật
Annotation mới cho code block trong tài liệu DocC:
```swift nocopy
// Đoạn code này chỉ để đọc, không copy được
let example = "Chỉ minh hoạ"
` ``
```swift highlight=[2,3]
let a = 1
let b = 2 // dòng này được highlight
let c = a + b // dòng này cũng được highlight
` ``Ngoài ra, DocC có thể xuất tài liệu dạng Markdown (--enable-experimental-markdown-output) và thêm static HTML vào index.html để tối ưu SEO.
Android SDK — Swift ra ngoài hệ sinh thái Apple
Đây là lần đầu tiên có SDK Android chính thức cho Swift, cho phép viết app Android hoàn toàn bằng Swift và tương tác với Kotlin/Java qua hai thư viện:
- Swift Java — Tích hợp với hệ sinh thái JVM
- Swift Java JNI Core — Tương tác trực tiếp với Android runtime qua JNI
Tính năng này đặc biệt hữu ích cho team đang dùng Swift/Kotlin multiplatform hoặc muốn chia sẻ business logic giữa iOS và Android mà không cần Kotlin Multiplatform.
Cập nhật
Swift 6.3 được tích hợp trong Xcode 26. Để cập nhật Swift toolchain độc lập:
# Kiểm tra phiên bản hiện tại
swift --version
# Tải toolchain Swift 6.3 tại:
# https://swift.org/download/Chi tiết đầy đủ về tất cả thay đổi xem tại Swift 6.3 Release Notes.