Commit Graph

23 Commits

Author SHA1 Message Date
javier 23020b10a7 Turned off the CoreData entity generation from the TestModel core data model and moved the core data model under the Resources folder. 2023-04-28 19:06:48 +02:00
javier ada0d65238 Defined the MakeURLRequestUseCaseTests test cases to run only on Apple platforms. 2023-04-28 19:04:55 +02:00
javier 9965deb2a8 Improved the "test" target in the Makefile file to make the cleaning of the docker image optional. 2023-04-28 19:03:33 +02:00
javier 847c2afc44 Flattened the folder structure of the Libraries now that the idea is to use precompiler processors to filter out platform-specific code. 2023-04-28 16:54:15 +02:00
javier 8d33cdea7c Moved the iOS specific files of the Coordination library inside the Apple platform folder. 2023-04-28 16:16:11 +02:00
javier 01c502a4c1 Improved the "build" target in the Makefile file to make the cleaning of the docker image optional. 2023-04-28 16:14:02 +02:00
javier 9465a985af Added the "xcode" target to open this project with Xcode in the Makefile file. 2023-04-28 14:45:54 +02:00
javier 4cbdb135e7 Added the "outdated" and "update" targets for dependencies workflows to the Makefile file. 2023-04-28 14:27:40 +02:00
javier 7a0f67713d Improved the overall implementation of the existing targets in the Makefile file. 2023-04-27 14:30:20 +02:00
javier ec3c610394 Added the .vscode hidden folder to the .gitignore file. 2023-04-27 14:26:58 +02:00
javier 58a3fc9ff7 Implemented the docker build and housekeeping workflows in the Makefile file. 2023-04-27 02:34:04 +02:00
javier d7e5123b5e Added the .env file to the .gitignore file. 2023-04-27 02:29:43 +02:00
javier b123aa0fa4 Updated the Swift tools version in the Package file to v5.7. 2023-04-26 15:07:46 +02:00
javier 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
javier 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
javier 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
javier 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
javier 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
javier 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
javier 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
javier 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
javier 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
javier 07521d4e93 Initial Commit 2023-04-15 01:10:38 +02:00