Commit Graph

11 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 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 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
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
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