Skip to content

A Swift library simplifying some everyday tasks.

License

Notifications You must be signed in to change notification settings

richardpiazza/CodeQuickKit

Repository files navigation

CodeQuickKit

A Swift library for simplifying some everyday tasks.

Twitter: @richardpiazza

💻 Installation

This software is distributed using Swift Package Manager. You can add it using Xcode or by listing it as a dependency in your Package.swift manifest:

let package = Package(
  ...
  dependencies: [
    .package(url: "https://github.com/richardpiazza/CodeQuickKit", .upToNextMajor(from: "7.0.0")
  ],
  ...
  targets: [
    .target(
      name: "MyPackage",
      dependencies: [
        "CodeQuickKit"
      ]
    )
  ]
)

📌 Features

Features in this project are largely grouped around how the apply-to or extend existing frameworks:

Swift Core Library

  • Dependency Management: DependencyCache offers a singleton approach to managing service and configuration dependencies throughout an application. The cache is configured by passing a DependencySupplier to the configure(with:) function. A dependency can be directly resolved from the cache using resolve<T>() throws -> T, or the Dependency property wrapper can be used to lazily reference as needed:

    @Dependency private var someService: SomeService

Foundation

  • UserDefaults: UserDefault is a property wrapper designed to interact with the UserDefaults storage.

    @UserDefault("counter", defaultValue: 0) var counter: Int

UIKit

  • UIAlertController.ActivityAlertController:

    This hack creates a alert dialog with a progress indicator and optional title/messaging strings.

SwiftUI

  • ActivityAlertView

    A SwiftUI workaround for using the ActivityAlertController. (UIKit Only)

🛠 Wanna Help?

Contributions are welcome and encouraged! See the Contribution Guide for more information.