Commit Graph

11 Commits

Author SHA1 Message Date
javier 86f142802a Updated the headers of all the source code files to reference the terms of the License and the projects authors. 2023-04-18 15:56:55 +02:00
javier 743fb75f6d Written the LICENSE text file. 2023-04-18 15:55:39 +02:00
javier f8221317d0 Written the CONTRIBUTORS text file. 2023-04-18 15:55:22 +02:00
javier c4f2b9590b Included the library togo into the README file. 2023-04-18 15:54:35 +02:00
javier e43d7c4bc2 Added the SwiftLibs logo asset. 2023-04-18 15:53:48 +02: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