swift-libs

0.2.2

A collection of reusable patterns, protocols, classes, structs, and extensions we have been using in our Swift code from some time now, grouped into libraries based on purpose.
rock-n-code/swift-libs

What's New

Coordination library reference amended

2023-08-14T21:04:34Z

This release contains the work done to fix a compilation issue that was occurring when compiling the package for iOS, tvOS, and xrOS, due to an outdated reference to the Coordination library.

Shows the hand-drawn SwiftLibs package logo centered in the page.

SwiftLibs

This package contains the core building blocks that we, Röck+Cöde, usually use to build our libraries and application written in the Swift programming language.

Libraries

This package contains several libraries which can be imported, and these libraries are grouped by a certain concern, feature or purpose.

To provide further details about the libraries included in this package:

  • SwiftLibsCommunication: protocols, enumerations and a ready-to-use mock url class to build remote API services;
  • SwiftLibsCoordination: protocols to implement the Coordinator pattern and some ready-to-use platform-specific concrete routers;
  • SwiftLibsDependency: a ready-to-use, simple Dependency Injection mechanism that levers heavily on the dynamic property wrappers provided by the Swift programming language;
  • SwiftLibsFoundation: extensions we usually add to the base layer functionality and primitive types provided by the Swift standard library;
  • SwiftLibsPersistence (available for Apple platforms only): protocols, extensions and a ready-to-use fetcher class to simplify the building of the CoreData persistence layer;

Installation

It is possible to add this package to other libraries and applications by adding it as a dependency in a Package.swift file or in a Xcode project, through the Package dependencies interface.

This package has minimum platform requirements that are important to take into account:

  • iOS 15.0 or higher;
  • macOS 12.0 or higher;
  • tvOS 15.0 or higher;
  • watchOS 8.0 or higher.

Package file

In the intended Package.swift file, it is required to add the following dependency:

dependencies: [
    // ...
    .package(url: "https://github.com/rock-n-code/swift-libs.git", from: "0.2.0")
    // ...
],

Then it is required to add the package to your target, like this:

targets: [
    .target(
        // ...
        dependencies: [
            .product(name: "SwiftLibs", package: "swift-libs")
        ],
        // ...
    ),
]

Xcode

In an opened Xcode project, it is required to follow these steps to install the package:

  1. click on the Xcode project file in the sidebar to display Project and Targets;
  2. select the project under the Project section to show the Info, Build Settings and Package Dependencies options in the center menu just right on top;
  3. select the Package Dependencies option to show the defined dependencies of the project;
  4. press on the + (plus) button to add dependencies to the project;
  5. enter the URL https://github.com/rock-n-code/swift-libs.git into the Search or Enter Package URL located in the upper right corner;
  6. select the retrieved option;
  7. define the dependency rule (the Up to Next Major Version option and the 0.2.0 text are recommended);
  8. select the target to which the dependency will be applied (if required);
  9. wait for the package to be resolved and included in the project;
  10. now you should be ready to start using this package!

Other considerations

This library is fully supported on Apple platforms: iOS, macOS, tvOS, and watchOS. In addition, basic support for Linux platform has been added as well, but it is rather limited for the time being. It is just a matter of time, though, as the Foundation framework is moving towards cross-platform support by moving away from its dependency on legacy Objective-C components.

⚠️ Please notice that this library only supports the Swift Package Manager, and that support for other dependency managers such as Cocoapods and Carthage has not been prioritised.

Description

  • Swift Tools 5.7.0
View More Packages from this Author

Dependencies

Last updated: Sat Oct 19 2024 04:55:20 GMT-0900 (Hawaii-Aleutian Daylight Time)