Swift Packager Manager
Bài đăng này đã không được cập nhật trong 3 năm
1. Giới thiệu:
Swift Packager Manager, ra mắt cùng Swift 3.0 được giới thiệu là một công cụ giúp quản lý việc phân phối mã nguồn, giúp cho việc chia sẻ và dùng lại code được dễ dàng.
Hiện nay Swift PM mới chỉ hỗ trợ cho macOS, các nền khác như iOS, watchOS, tvOS chắc phải đợi thêm 1 thời gian nữa.
Một số lệnh chính trong Terminal:
- Kiểm tra version của Swift, để sử dụng Swift PM thì version phải từ 3.0 trở lên:
swift --version
Tạo package mới
swift package init
swift package init --type executable
swift package init --type library
Có 2 loại package là file chạy executable và thư viện library
- Download các thư viện
swift package fetch
- Update các thư viện trong package
swift package update
- Tạo Xcode project cho package
swift package generate-xcodeproj
Chúng ta sẽ tạo 1 ứng dụng command-line để tìm hiểu được rõ ràng hơn.
2. Demo:
2.1. Khởi tạo:
Vào Terminal duyệt tới vị trí cần lưu và tạo thư mục MGSwiftPMDemo, sau đó nhập lệnh dưới để khởi tạo package:
swift package init --type executable
Sau lệnh trên ta sẽ được file Package.swift và thư mục Source
chứa file chương trình chính main.swift
.
File Package.swift gồm 2 phần sau:
- "name": tên dự án và tên file chạy sau khi biên dịch
- "dependencies": danh sách các thư viện mà chương trình sẽ sử dụng
2.2. Thêm thư viện:
Chúng ta sẽ thêm thư viện SwiftyJSON
bằng cách chỉnh sửa file Package.swift như sau:
// swift-tools-version:3.1
import PackageDescription
let package = Package(
name: "MGSwiftPMDemo",
dependencies: [
.Package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", versions: Version(1, 0, 0)..<Version(3, .max, .max)),
]
)
Sau đó chúng ta có thể download SwiftyJSON
bằng lệnh:
swift package fetch
Sau lệnh trên thì các file thư viện sẽ được download về thư mục Packages
.
2.3. Tạo Xcode project:
Chúng ta dùng lệnh dưới để tạo file project:
swift package generate-xcodeproj
Mở file project mới tạo ta có kết quả như sau:
2.4. Test:
Mở file main.swift và chúng ta có thể test thư viện mới thêm vào:
import SwiftyJSON
import Foundation
print("Swift Package Manager Demo")
let jsonString = "{\"success\": true}"
if let dataFromString = jsonString.data(using: .utf8) {
let json = JSON(data: dataFromString)
print("Success: \(json["success"])")
}
Chọn target là command-line và chạy, chúng ta sẽ được kết quả như bên dưới:
Swift Package Manager Demo
Success: true
Program ended with exit code: 0
3. Kết luận:
Xcode kể từ rất lâu rồi luôn thua kém các IDE khác khi không có một công cụ quản lý thư viện cho dự án, giờ đây với Swift Packager Manager cho các dự án macOS, chúng ta hoàn toàn có thể hi vọng Swift PM sẽ sớm có mặt cho iOS (có thể cùng với Swift 4.0). Lúc đó lập trình viên sẽ có thêm 1 lựa chọn chính chủ từ Apple bên cạnh Cocoapod và Carthage.
Hiện tại danh sách các thư viện hỗ trợ Swift PM còn rất ít, các bạn có thể xem danh sách ở trang https://swiftmodules.com.
All rights reserved