29 Commits

Author SHA1 Message Date
e6e3612072 Implemented the Index HTML page generation into the "generate-docs" target in the Makefile file. 2023-08-13 23:33:14 +02:00
4fc01fa20f Generated the Xcode and Github pages documentation. 2023-08-13 20:13:45 +02:00
7af3e1b9f5 Included the Package resolved file that declares the DocC plugin package dependencies. 2023-08-13 20:11:38 +02:00
f701202933 Implemented the "generate-docs", "preview-doc", and "flush-docs" targets in the Makefile file. 2023-08-13 20:10:49 +02:00
1874d6ecec Implemented the "help-docc-plugin" target in the Makefile file. 2023-08-12 11:06:05 +02:00
5a7de24866 Added the DocC plugin package dependency to the Package file. 2023-08-12 11:05:37 +02:00
683900afeb Made a small tweak to the "tests" computed property of the String+Computed extension in the Package file. 2023-08-11 23:32:41 +02:00
4ca0108a9c Updated the README file to the updated library names. 2023-08-11 23:25:33 +02:00
5a8d3c0530 Updated the Package file to reflect the change in the folder structure, plus the libraries' target names have been renamed to avoid any possible ambiguity with any other 1st or 3rd party library. 2023-08-11 23:19:33 +02:00
c29178535a Renamed the Sources folder as Libraries. 2023-08-11 23:16:53 +02:00
060d8a84a9 [Enhancement] String localisation (#21)
This PR contains the work done to provide string localisation support for the `Core` library.

To provide further details about the work done:
- [x] implemented the `localisation(for:)` function for the `Bundle+LocalisationBundle` extension;
- [x] implemented the `localise(for: in: value: table:)` function for the `String+Localisation` extension;
- [x] defined English as the default localisation language in the `Package.swift` file;
- [x] added the "vscode" target to the `Makefile` file.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #21
v0.1.9
2023-05-19 16:58:50 +00:00
5286f72f05 [Bugifx] Lossy codable list documentation (#20)
This PR contains the work done to amend some documentation in the `LossyCodableList` struct.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #20
2023-05-07 20:01:05 +00:00
28c9232962 [Enhancement] Lossy codable list property wrapper (#19)
This PR contains the work done to implement the `LossyCodableList` struct and property wrapper, which is used in lossy decoding/encoding processes.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #19
v0.1.8
2023-05-07 19:40:29 +00:00
7fb72509c2 [Enhancement] Collection+Empty extension (#18)
This PR contains the work done to implement the "isNotEmpty" property in the Collection+Empty extension.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #18
2023-05-06 21:58:53 +00:00
ffb1170760 [Enhancement] Optional+Nil extension (#17)
This PR contains the work done to add some properties to the `Optional` primitives. In addition, some work has been done to improve some existing codebase as well.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #17
2023-05-06 21:19:40 +00:00
2f3712c830 [Enhancement] Communications library for non Apple platforms (part II) (#16)
This PR contains the work done to make the `MockURLProtocol` class from the `Communications` library available for non-Apple platforms.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #16
v0.1.7
2023-04-30 13:28:32 +00:00
fb439a82a8 [Enhancement] Communications library for non Apple platforms (#15)
This PR contains the work done to allow the `MakeURLRequestUseCase` use case to be used in non-Apple platforms, as it use has been restricted before.

To provide further details about the work done:
- [x] improved the `MakeURLRequestUseCase` use case to be available in non-Apple platforms;
- [x] moved the `TestEndpoint` helper endpoint to its own file;
- [x] moved some test cases files around;
- [x] updated some text in the `README` file.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #15
v0.1.6
2023-04-30 12:33:41 +00:00
94a49afb66 [Bugfix] Issue when building for watchOS platform (#14)
This PR contains the work done to fix an issue that occurred when building for *watchOS* platform, which was raised right after the release `v0.1.4`.

To provide further details about he work done:
- [x] filtered out the `CoordinatorTests` test cases and the `TestCoordinators` structs from the *watchOS* platform;
- [x] updated some texts in the `README` file.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #14
v0.1.5
2023-04-28 22:24:10 +00:00
c4d09cd808 [Setup] Non Apple platforms (#13)
This PR contains the work done to address the issue #12, with regards to provide basic support of non Apple platforms.

To provide further details about the work done:
- [x] flattened the folder structure, especially now that the idea to filter folders based on platform is being discarded;
- [x] implemented precompiler processors to filter out platform-specific source code;
- [x] updated the `Package` file to provide basic support for non-Apple platforms;
- [x] added and also improved some targets to the `Makefile` file to smooth the current development workflows;
- [x] updated the `.gitignore` file with references to the `.vscode` folder and the `.env` file;
- [x] updated the Swift tools version to v5.7.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #13
v0.1.4
2023-04-28 17:37:09 +00:00
4a1fab2f8a [Bugfix] Mobile platform builds (#11)
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
v0.1.3
2023-04-25 13:38:30 +00:00
2ba3e33a0e bugfix/communications (#8)
This PR contains the work done to add a missing public initialiser to the `MockURLRequest` struct of the `Communications` library. In addition, it also implements the `gmt` static property for the `TimeZone+Zone` extension included in the `Core` library.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #8
v0.1.2
2023-04-19 14:17:15 +00:00
d8163ab0de [Bugfix] Communications (#7)
This PR contains the work done to implement some bugfixes to the existing source code related to the `Communications` library of this package.

To provide further details about the work done:
- [x] removed an unnecessary function from the `Client` public protocol;
- [x] moved the `MakeURLRequestError` public error to its own file;
- [x] added the `parameters` property to the `Endpoint` public protocol;
- [x] added support for the parameters handling in the `MakeURLRequestUseCase` use case.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #7
v0.1.1
2023-04-18 22:55:25 +00:00
6e785b4255 [Setup] EUPL license + logo (#6)
This PR contains the work done to set the [European Union Public License](https://joinup.ec.europa.eu/collection/eupl/introduction-eupl-licence) license for this library, which also implies to update the header of the existing source code to reflect this license. Furthermore, a hand-drawn logo for this library has been included.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #6
v0.1.0
2023-04-18 14:01:44 +00:00
c0a49b2a85 [Feature] Persistence (#5)
This PR contains the work done to implement some useful protocols, classes and extensions to use to setup a persistence layer in an application.

To provide further details about the work done:
 - [x] declared the `Persistence` target in the Package file;
 - [x] forgot to declare the `Communications` and `Persistence` target to the `SwiftLibs` library in the `Package` file;
 - [x] defined the `Service` public protocol;
 - [x] implemented the `Fetcher` generic class;
 - [x] implemented the `bitBucket` static property in the `URL+Devices` public extension;
 - [x] updated the `README` file.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #5
2023-04-17 23:12:11 +00:00
cd47043a30 [Feature] Communications (#4)
This PR constains the work done to define the necessary protocols and enumerations to start defining remote API service as well as an implementation of the `URLProtocol` to mock requests and responses when using the `URLSession` to make remote calls.

To provide further details about this work:
- [x] declared the `Communications` library in the `Package` file;
- [x] defined the minimum Apple platform versions in the `Package` file to support the async/await feature;
- [x] defined the `HTTPRequestMethod` and `HTTPResponseCode` public enumerations;
- [x] defined the `Endpoint` and `Client` public protocols;
- [x] implemented the internal `MakeURLRequestUseCase` use case;
- [x] implemented the `MockURLProtocol` class that mocks requests and responses on `URLSession` instances;
- [x] started writing and updating the `README` file.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #4
2023-04-16 18:47:59 +00:00
9c89a59d1d [Feature] Dependencies (#3)
This PR contains the work done to provide a simple dependency injection feature whenever required.

To provide further details about this work:
- [x] renamed the `Coordinator` target in the `Package` file as `Coordination`;
- [x] declared the `Dependencies` target in the `Package` file;
- [x] defined the `DependencyKey` public protocol;
- [x] implemented the `DependencyService` public service;
- [x] implemented the `Dependency` public property wrapper;

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #3
2023-04-16 15:36:07 +00:00
12add7bf30 [Feature] Coordinator protocols (#2)
This PR contains the work done to define the `Coordinator` and the `Router` public protocols, and also implemented a few concrete router implementations tailored for the **UIKit** framework.

To provide further details about the work done:
- [x] define a new, dedicated `Coordinator` target in the `Package` file;
- [x] define the `Coordinator` and the `Router` public protocols used to implement the coordinator pattern;
- [x] implemented some **UIKit** specific routers to use on the **iOS** platform: `ModalNavigationRouter`, `PushNavigationRouter` and the `WindowRouter` concrete routers.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #2
2023-04-16 14:42:42 +00:00
185f779daf [Feature] Some basic core feature (#1)
This PR refers to the work done on setting the `Core` target as well as implemented some basic features as extension to a pair of `Swift` primitive types.

To give further details about this work:
- [x] defined the `Core` target;
- [x] implemented the **empty** static property and the **isNotEmpty()** function in the `String+Empty` extension;
- [x] implemented the **init(_: )** initialiser fo strings in the `Bool+Init` extension;

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #1
2023-04-16 12:27:57 +00:00
07521d4e93 Initial Commit 2023-04-15 01:10:38 +02:00