Updated for Swift 5
Vì sao nên sử dụng framework
- Việc sử dụng các tính chất hướng đối tượng trong lập trình rất phổ biến trong đó có tính chất kế thừa
- Nhưng với việc swiftUI được ra đời và với SwiftUI thì View nó là struct, nên không thể kế thừa
- Vậy có cách nào để thay thế được kế thừa trong swift?
- Đối với riêng SwiftUI nói riêng hay việc sử dụng các framework iOS nói chung: Việc sử dụng tính chất kế thừa sẽ có những issue như swiftUI đang sử dụng View là struct ( struct k có các tính chất hướng đối tượng như class). Vâyviệc Customize 1 class để tái sử dụng như Class MainView: CustomizeView hay các phương thức như override hay class cha có các property gì thì class con cũng sẽ có các property đấy
Tạo framework như thế nào?
- Từ Xcode 11, Apple đã công bố tạo một framework được gọi là XCFramework
- Mở Xcode, File > New > Project và chọn Framework
- Triển khai mã code cho framwork tại đây
- Tiếp theo sử dụng xcodebuild archive để tạo kho lưu trữ
xcodebuild archive -scheme PROJECTNAME_HERE -destination=”iOS” -archivePath /tmp/xcf/ios.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme PROJECTNAME_HERE -destination=”iOS Simulator” -archivePath /tmp/xcf/iossimulator.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphonesimulator SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES destination: tùy chọn xác định nền tảng mục tiêu và các thiết bị.archivePath: đường dẫn tới thư mục cần tạo framework
- Sau khi chạy 2 lệnh ở trên thành công
- Tiếp theo sử dung câu lệnh này để đóng gói framwork
xcodebuild -create-xcframework -framework /tmp/xcf/ios.xcarchive/Products/Library/Frameworks/PROJECTNAME_HERE.framework -framework /tmp/xcf/iossimulator.xcarchive/Products/Library/Frameworks/PROJECTNAME_HERE.framework -output FRAMEWORK_NAME.xcframework
File đã được gen ra thành công:
- Add framework đã tạo vào trong project cần dùng và để sang Embed & Sign
- Import framework vào class cần sử dụng
Kết luận
- Việc tạo framework cho bạn có thể sử dụng tất cả các thuộc tính cũng như chức năng giống như tính chất kế thừa có thể làm được
- Đây là một trong những cách có thể thay thế tính chất kế thừa tuỳ theo mục đích của từng bài toán Link tham khảo