PhantomKit logo

Build Code coverage Language Supported platforms

Swift Package Manager Release version License

PhantomKit

PhantomKit 是一个集合了许多有用的 Swift 和 SwiftUI 扩展和组件的工具包。它是一个不可见的层,为你的应用程序提供支持,并使编写 Swift 代码更加容易。

目录
  1. 安装
  2. 亮点
  3. 许可

这个包由几个库组成 - 你可以轻松地只导入你需要的那些

🟤 PhantomKitCore - Swift 扩展的集合

🟠 PhantomKitAPI - 一个网络库(访问 Web API 所需的组件)

🟢 PhantomKitLog - 一个日志记录库(提供控制台和 OSLog 实现)

🟣 PhantomKitUI - SwiftUI 组件和扩展的集合

安装

要求

Swift Package Manager

PhantomKit 可以作为 Swift Package 使用。

.package(url: "https://github.com/pawello2222/PhantomKit.git", .upToNextMajor(from: "2.0.0"))

亮点

PhantomKitCore

Appliable

let button = UIButton().apply {
    $0.isUserInteractionEnabled = false
}
UserDefaults.standard.apply {
    $0.set("Value 1", forKey: "Key 1")
    $0.set("Value 2", forKey: "Key 2")
    $0.set("Value 3", forKey: "Key 3")
}

Date

let date = Date(year: 2000, month: 1, day: 2, hour: 3, minute: 4, second: 5)

XCTAssertEqual(date.adjusting(\.second, by: 1).component(.second), 6)
XCTAssertEqual(date.adjusting(\.minute, by: 1).component(.minute), 5)
XCTAssertEqual(date.adjusting(\.hour, by: 1).component(.hour), 4)
XCTAssertEqual(date.adjusting(\.day, by: 1).component(.day), 3)
XCTAssertEqual(date.adjusting(\.month, by: 1).component(.month), 2)
XCTAssertEqual(date.adjusting(\.year, by: 1).component(.year), 2001)

PhantomKitUI

便捷方法

Text("PhantomKit")
    .fixedSize(.horizontal)
    .frame(max: .infinity)
    .onTap {
        print("PhantomKit tapped")
    }

链接

extension URL {
    static let home = URL(string: "https://tersacore.com")!
}
Text("Link")
    .link(url: .home, openedAs: .fullscreen)
Text("Link")
    .link(url: .home, openedAs: .external)

呈现

Text("Open sheet view")
    .sheet {
        Text("Sheet view")
    }
Text("Open fullscreen view")
    .fullScreenCover {
        Text("Sheet view")
    }

视图对齐

Text("PhantomKit")
    .alignment(horizontal: .trailing)

// vs

HStack {
    Spacer()
    Text("PhantomKit")
}

许可

PhantomKit 在 MIT 许可下可用。 有关更多信息,请参阅 LICENSE 文件。