This PR contains the work on implementing some public interfaces that were forgotten during the development of this app and, of course, improves the text of the README file a bit more.
To give further details about the work done:
- [x] implemented the `Service` protocol in the `Persistence` library and conformed the `PersistenceService` service to it;
- [x] implemented the `Service` protocol in the `Remote` library and conformed the `RemoteService` service to it;
- [x] implemented the `Application` protocol in the `Core` library and conformed the `UIApplication` class to it;
- [x] improved the dependency keys used by the `DependencyService` service to use these protocols instead;
- [x] tweaked the text of the README file.
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: rock-n-code/deep-linking-assignment#14
This PR contains the work done to open the *Places* view of the **Wikipedia** app with the screen centered on the coordinates from a selected location in the `LocationsListViewController` view controller.
To give further details about the work done:
- [x] implemented the `wikipediaPlacesURL` property in the `Location+URLs` extension;
- [x] improved the `LocationsListCoordination` protocol and the `LocationsListCoordinator` coordinator to support the opening of the Wikipedia app;
- [x] improved the `LocationsListViewModeling` protocol and the `LocationsListViewModel` view model to support the opening of the Wikipedia app;
- [x] implemented the "tableView(_: didSelectAt: )" function in the `LocationsListViewController` view controller;
- [x] added the "wikipedia" to the Queried URL schemes in the Info.plist file to support querying to the Wikipedia app;
- [x] improved the naming of some properties and functions in the `LocationsAddCoordination`, `LocationsListCoordination`, and `LocationsListViewModeling` protocols.
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: rock-n-code/deep-linking-assignment#12
This PR contains the work done to add a location at a time and updates the locations in the list of locations screen right after.
To give further details about the work done:
- [x] implemented the `LocationProvider` provider in the **Persistence** library;
- [x] implemented the `SaveLocalLocationUseCase` use case;
- [x] defined the properties and functions of the `LocationsAddViewModeling` protocol to support the clean, updating and saving of locations;
- [x] implemented the `LocationsAddViewModel` view model;
- [x] implemented the `LocationsAddViewController` view controller;
- [x] implemented the dismissal of the `LocationsAddCoordinator` coordinator.
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: rock-n-code/deep-linking-assignment#11
This PR contains the work done to put in the app an MVVM-C architecture plus other small fixes in the `Library` libraries.
To give further details about the work done:
- [x] remove the `SceneDelegate` delegate;
- [x] implemented the `WindowRouter`, `PushNavigationRouter`, and `ModalNavigationRouter` routers in the `Core` library;
- [x] defined the `LocationsAddCoordination` and `LocationsListCoordination` protocols;
- [x] defined the `LocationsAddViewModeling` and `LocationsListViewModeling` protocols;
- [x] implemented the `LocationsListCoordinator` and `LocationsAddCoordinator` coordinators;
- [x] implemented the `LocationsAddViewController` view controller and `LocationsAddViewModel` view model;
- [x] implemented the `LocationsListViewController` view controller and `LocationsListViewModel` view model;
- [x] implemented the `BaseViewController` base view controller;
- [x] implemented the `persistence` and `remote` properties in the `DependencyService+Keys` extension.
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: rock-n-code/deep-linking-assignment#9