This PR contains the work done to address the issue #10, that was raised based on the build logs from publishing the package in the Swift Package Index. To provide further details about the work done: - [x] fixed the `Router` protocol that was causing a compilation issue on *watchOS* platforms; - [x] downgraded the swift tools version in the `Package` file to v5.5; - [x] bumped the minimum platform version in the `Package` file to restrict support to the last 2 major releases; - [x] written the *Installation* section in the `README` file; - [x] updated the project logo assets, including light and dark versions; - [x] updated the project logo in the `README` file and added support for both light and dark modes. Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Reviewed-on: #11
SwiftLibs
This package contains the core building blocks that we, Röck+Cöde, usually use to build any kind of application written in the Swift programming language.
Libraries
This package contains several libraries which a developer can also use in their own codebase, and these libraries are grouped by a certain concern or purpose.
To provide further details about the libraries included in this package:
Communications
: protocols, enumerations and a ready-to-use mock url class to build remote API services;Coordination
: protocols to implement the Coordinator pattern and some ready-to-use platform-specific concrete routers;Core
: extensions we usually add to the base layer functionality and primitive types provided by the Swift standard library;Dependencies
: a ready-to-use, simple Dependency Injection mechanism that levers heavily on the dynamic property wrappers provided by the Swift programming language;Persistence
: 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.1.3")
// ...
],
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:
- click on the Xcode project file in the sidebar to display Project and Targets;
- 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;
- select the Package Dependencies option to show the defined dependencies of the project;
- press on the + (plus) button to add dependencies to the project;
- 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; - select the retrieved option;
- define the dependency rule (the Up to Next Major Version option and the 0.1.3 text are recommended);
- select the target to which the dependency will be applied (if required);
- wait for the package to be resolved and included in the project;
- now you should be ready to start using this package!
Other considerations
This library is fully supported on Apple platforms only for the time being: iOS, macOS, tvOS, and watchOS. Support for other platforms such as Linux or Windows might be added in the future, depending on the type of changes those platforms require but this needs to be researched first.
⚠️ 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.