Javier Cicchelli 1de87263ba [Improvement] Small, tiny things (#14)
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
2023-04-13 13:34:06 +00:00

793 lines
35 KiB
Plaintext

// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 56;
objects = {
/* Begin PBXBuildFile section */
02031EBF29E5F949003C108C /* LocationsAddViewModeling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02031EBE29E5F949003C108C /* LocationsAddViewModeling.swift */; };
02031EC629E5FEE4003C108C /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02031EC529E5FEE4003C108C /* BaseViewController.swift */; };
02031EC929E60B29003C108C /* DependencyService+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02031EC829E60B29003C108C /* DependencyService+Keys.swift */; };
02031EE829E68D9B003C108C /* LoadingSpinnerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02031EE729E68D9B003C108C /* LoadingSpinnerView.swift */; };
02031EEA29E6B495003C108C /* ErrorMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02031EE929E6B495003C108C /* ErrorMessageView.swift */; };
02031F0829E75EF0003C108C /* SaveLocalLocationUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02031F0729E75EED003C108C /* SaveLocalLocationUseCase.swift */; };
02031F0A29E7645F003C108C /* Location+URLs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02031F0929E7645F003C108C /* Location+URLs.swift */; };
4656CBC229E6D33C00600EE6 /* LoadRemoteLocationsUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4656CBC129E6D33C00600EE6 /* LoadRemoteLocationsUseCase.swift */; };
4656CBC829E6F2E400600EE6 /* LocationViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4656CBC729E6F2E400600EE6 /* LocationViewCell.swift */; };
46C3B7C629E5BF1500F8F57C /* LocationsListCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C3B7C529E5BF1500F8F57C /* LocationsListCoordinator.swift */; };
46C3B7CB29E5CD3200F8F57C /* LocationsListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C3B7CA29E5CD3200F8F57C /* LocationsListViewModel.swift */; };
46C3B7CF29E5D00E00F8F57C /* LocationsAddViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C3B7CE29E5D00E00F8F57C /* LocationsAddViewModel.swift */; };
46C3B7D129E5D06D00F8F57C /* LocationsAddViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C3B7D029E5D06D00F8F57C /* LocationsAddViewController.swift */; };
46C3B7D629E5E50500F8F57C /* LocationsListViewModeling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C3B7D529E5E50500F8F57C /* LocationsListViewModeling.swift */; };
46C3B7D829E5E55000F8F57C /* LocationsListCoordination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C3B7D729E5E55000F8F57C /* LocationsListCoordination.swift */; };
46C3B7DC29E5ED2300F8F57C /* LocationsAddCoordination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C3B7DB29E5ED2300F8F57C /* LocationsAddCoordination.swift */; };
46C3B7DE29E5ED2E00F8F57C /* LocationsAddCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C3B7DD29E5ED2E00F8F57C /* LocationsAddCoordinator.swift */; };
46DF736D29E82A1500AA6D21 /* UIApplication+Conformances.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46DF736C29E82A1500AA6D21 /* UIApplication+Conformances.swift */; };
46EB331B29E1CE04001D5EAF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46EB331A29E1CE04001D5EAF /* AppDelegate.swift */; };
46EB331F29E1CE04001D5EAF /* LocationsListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46EB331E29E1CE04001D5EAF /* LocationsListViewController.swift */; };
46EB332729E1CE05001D5EAF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 46EB332629E1CE05001D5EAF /* Assets.xcassets */; };
46EB332A29E1CE05001D5EAF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 46EB332829E1CE05001D5EAF /* LaunchScreen.storyboard */; };
46EB334429E1D1EC001D5EAF /* Libraries in Frameworks */ = {isa = PBXBuildFile; productRef = 46EB334329E1D1EC001D5EAF /* Libraries */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
46EB326829E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D4991435181D51DE00E6073C;
remoteInfo = Wikipedia;
};
46EB326A29E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D8EC3FB41E9BDA35006712EB;
remoteInfo = Staging;
};
46EB326C29E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D8CE26AF1E698E2400DAE2E0;
remoteInfo = Experimental;
};
46EB326E29E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D8A42C2B1E815A9C00D8E281;
remoteInfo = "User Testing";
};
46EB327029E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = BC4273521A7C736800068882;
remoteInfo = WikipediaUnitTests;
};
46EB327229E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 0E8380631D64989F0076EDE4;
remoteInfo = ContinueReadingWidget;
};
46EB327429E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D8479FAB1F222FE80025FD7A;
remoteInfo = "Wikipedia Stickers";
};
46EB327629E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D844D96C1D6CB2600042D692;
remoteInfo = WMF;
};
46EB327829E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D87021601EBA63EE000D02D6;
remoteInfo = localization;
};
46EB327A29E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = B0606EAE20AA6FF0006EC6B9;
remoteInfo = WikipediaUITests;
};
46EB327C29E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D8B589A521CD05070027083A;
remoteInfo = languages;
};
46EB327E29E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 00021DE124D48EFD00476F97;
remoteInfo = WidgetsExtension;
};
46EB328029E1BD5C001D5EAF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 676C864426D40AEA00A704C1;
remoteInfo = NotificationServiceExtension;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
02031EBE29E5F949003C108C /* LocationsAddViewModeling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsAddViewModeling.swift; sourceTree = "<group>"; };
02031EC529E5FEE4003C108C /* BaseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = "<group>"; };
02031EC829E60B29003C108C /* DependencyService+Keys.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DependencyService+Keys.swift"; sourceTree = "<group>"; };
02031EE729E68D9B003C108C /* LoadingSpinnerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingSpinnerView.swift; sourceTree = "<group>"; };
02031EE929E6B495003C108C /* ErrorMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorMessageView.swift; sourceTree = "<group>"; };
02031F0729E75EED003C108C /* SaveLocalLocationUseCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SaveLocalLocationUseCase.swift; sourceTree = "<group>"; };
02031F0929E7645F003C108C /* Location+URLs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Location+URLs.swift"; sourceTree = "<group>"; };
4656CBC129E6D33C00600EE6 /* LoadRemoteLocationsUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadRemoteLocationsUseCase.swift; sourceTree = "<group>"; };
4656CBC729E6F2E400600EE6 /* LocationViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationViewCell.swift; sourceTree = "<group>"; };
46C3B7C529E5BF1500F8F57C /* LocationsListCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsListCoordinator.swift; sourceTree = "<group>"; };
46C3B7CA29E5CD3200F8F57C /* LocationsListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsListViewModel.swift; sourceTree = "<group>"; };
46C3B7CE29E5D00E00F8F57C /* LocationsAddViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsAddViewModel.swift; sourceTree = "<group>"; };
46C3B7D029E5D06D00F8F57C /* LocationsAddViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsAddViewController.swift; sourceTree = "<group>"; };
46C3B7D529E5E50500F8F57C /* LocationsListViewModeling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsListViewModeling.swift; sourceTree = "<group>"; };
46C3B7D729E5E55000F8F57C /* LocationsListCoordination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsListCoordination.swift; sourceTree = "<group>"; };
46C3B7DB29E5ED2300F8F57C /* LocationsAddCoordination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsAddCoordination.swift; sourceTree = "<group>"; };
46C3B7DD29E5ED2E00F8F57C /* LocationsAddCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsAddCoordinator.swift; sourceTree = "<group>"; };
46DF736C29E82A1500AA6D21 /* UIApplication+Conformances.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIApplication+Conformances.swift"; sourceTree = "<group>"; };
46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Wikipedia.xcodeproj; path = Wikipedia/Wikipedia.xcodeproj; sourceTree = "<group>"; };
46EB331829E1CE04001D5EAF /* Locations.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Locations.app; sourceTree = BUILT_PRODUCTS_DIR; };
46EB331A29E1CE04001D5EAF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
46EB331E29E1CE04001D5EAF /* LocationsListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsListViewController.swift; sourceTree = "<group>"; };
46EB332629E1CE05001D5EAF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
46EB332929E1CE05001D5EAF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
46EB332B29E1CE05001D5EAF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
46EB333229E1CFD9001D5EAF /* Libraries */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = Libraries; sourceTree = "<group>"; };
46EB334929E1D34B001D5EAF /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
46EB334A29E1D3C0001D5EAF /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
46EB331529E1CE04001D5EAF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
46EB334429E1D1EC001D5EAF /* Libraries in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
02031EC429E5FEB1003C108C /* View Controllers */ = {
isa = PBXGroup;
children = (
02031EC529E5FEE4003C108C /* BaseViewController.swift */,
);
path = "View Controllers";
sourceTree = "<group>";
};
02031EC729E60ADB003C108C /* Extensions */ = {
isa = PBXGroup;
children = (
02031EC829E60B29003C108C /* DependencyService+Keys.swift */,
02031F0929E7645F003C108C /* Location+URLs.swift */,
46DF736C29E82A1500AA6D21 /* UIApplication+Conformances.swift */,
);
path = Extensions;
sourceTree = "<group>";
};
02031EE629E68D7A003C108C /* View Components */ = {
isa = PBXGroup;
children = (
02031EE729E68D9B003C108C /* LoadingSpinnerView.swift */,
02031EE929E6B495003C108C /* ErrorMessageView.swift */,
4656CBC729E6F2E400600EE6 /* LocationViewCell.swift */,
);
path = "View Components";
sourceTree = "<group>";
};
0276C96029E5F5DC000B62AF /* Protocols */ = {
isa = PBXGroup;
children = (
0276C96229E5F5ED000B62AF /* Coordination */,
0276C96129E5F5E5000B62AF /* ViewModeling */,
);
path = Protocols;
sourceTree = "<group>";
};
0276C96129E5F5E5000B62AF /* ViewModeling */ = {
isa = PBXGroup;
children = (
02031EBE29E5F949003C108C /* LocationsAddViewModeling.swift */,
46C3B7D529E5E50500F8F57C /* LocationsListViewModeling.swift */,
);
path = ViewModeling;
sourceTree = "<group>";
};
0276C96229E5F5ED000B62AF /* Coordination */ = {
isa = PBXGroup;
children = (
46C3B7DB29E5ED2300F8F57C /* LocationsAddCoordination.swift */,
46C3B7D729E5E55000F8F57C /* LocationsListCoordination.swift */,
);
path = Coordination;
sourceTree = "<group>";
};
4656CBC029E6D31800600EE6 /* Use Cases */ = {
isa = PBXGroup;
children = (
4656CBC129E6D33C00600EE6 /* LoadRemoteLocationsUseCase.swift */,
02031F0729E75EED003C108C /* SaveLocalLocationUseCase.swift */,
);
path = "Use Cases";
sourceTree = "<group>";
};
46C3B7C429E5BEE900F8F57C /* Coordinators */ = {
isa = PBXGroup;
children = (
46C3B7DD29E5ED2E00F8F57C /* LocationsAddCoordinator.swift */,
46C3B7C529E5BF1500F8F57C /* LocationsListCoordinator.swift */,
);
path = Coordinators;
sourceTree = "<group>";
};
46C3B7C929E5CB8F00F8F57C /* Screens */ = {
isa = PBXGroup;
children = (
46C3B7CD29E5CFCD00F8F57C /* LocationsAdd */,
46C3B7CC29E5CFBB00F8F57C /* LocationsList */,
);
path = Screens;
sourceTree = "<group>";
};
46C3B7CC29E5CFBB00F8F57C /* LocationsList */ = {
isa = PBXGroup;
children = (
46EB331E29E1CE04001D5EAF /* LocationsListViewController.swift */,
46C3B7CA29E5CD3200F8F57C /* LocationsListViewModel.swift */,
);
path = LocationsList;
sourceTree = "<group>";
};
46C3B7CD29E5CFCD00F8F57C /* LocationsAdd */ = {
isa = PBXGroup;
children = (
46C3B7D029E5D06D00F8F57C /* LocationsAddViewController.swift */,
46C3B7CE29E5D00E00F8F57C /* LocationsAddViewModel.swift */,
);
path = LocationsAdd;
sourceTree = "<group>";
};
46EB325029E1BBD1001D5EAF = {
isa = PBXGroup;
children = (
46EB325729E1BCAB001D5EAF /* Apps */,
46EB334B29E1D3D2001D5EAF /* Others */,
46EB32EE29E1CD20001D5EAF /* Products */,
46EB334229E1D1EC001D5EAF /* Frameworks */,
);
sourceTree = "<group>";
};
46EB325729E1BCAB001D5EAF /* Apps */ = {
isa = PBXGroup;
children = (
46EB331929E1CE04001D5EAF /* Locations */,
46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */,
);
path = Apps;
sourceTree = "<group>";
};
46EB325929E1BD5C001D5EAF /* Products */ = {
isa = PBXGroup;
children = (
46EB326929E1BD5C001D5EAF /* Wikipedia.app */,
46EB326B29E1BD5C001D5EAF /* Staging.app */,
46EB326D29E1BD5C001D5EAF /* Experimental.app */,
46EB326F29E1BD5C001D5EAF /* User Testing.app */,
46EB327129E1BD5C001D5EAF /* WikipediaUnitTests.xctest */,
46EB327329E1BD5C001D5EAF /* ContinueReadingWidget.appex */,
46EB327529E1BD5C001D5EAF /* Wikipedia Stickers.appex */,
46EB327729E1BD5C001D5EAF /* WMF.framework */,
46EB327929E1BD5C001D5EAF /* localization */,
46EB327B29E1BD5C001D5EAF /* WikipediaUITests.xctest */,
46EB327D29E1BD5C001D5EAF /* languages */,
46EB327F29E1BD5C001D5EAF /* WidgetsExtension.appex */,
46EB328129E1BD5C001D5EAF /* NotificationServiceExtension.appex */,
);
name = Products;
sourceTree = "<group>";
};
46EB32EE29E1CD20001D5EAF /* Products */ = {
isa = PBXGroup;
children = (
46EB331829E1CE04001D5EAF /* Locations.app */,
);
name = Products;
sourceTree = "<group>";
};
46EB331929E1CE04001D5EAF /* Locations */ = {
isa = PBXGroup;
children = (
46EB333229E1CFD9001D5EAF /* Libraries */,
46EB332F29E1CE1E001D5EAF /* Sources */,
46EB333029E1CE27001D5EAF /* Resources */,
);
path = Locations;
sourceTree = "<group>";
};
46EB332F29E1CE1E001D5EAF /* Sources */ = {
isa = PBXGroup;
children = (
46EB331A29E1CE04001D5EAF /* AppDelegate.swift */,
0276C96029E5F5DC000B62AF /* Protocols */,
02031EC729E60ADB003C108C /* Extensions */,
46C3B7C429E5BEE900F8F57C /* Coordinators */,
46C3B7C929E5CB8F00F8F57C /* Screens */,
02031EC429E5FEB1003C108C /* View Controllers */,
02031EE629E68D7A003C108C /* View Components */,
4656CBC029E6D31800600EE6 /* Use Cases */,
);
path = Sources;
sourceTree = "<group>";
};
46EB333029E1CE27001D5EAF /* Resources */ = {
isa = PBXGroup;
children = (
46EB332629E1CE05001D5EAF /* Assets.xcassets */,
46EB332B29E1CE05001D5EAF /* Info.plist */,
46EB332829E1CE05001D5EAF /* LaunchScreen.storyboard */,
);
path = Resources;
sourceTree = "<group>";
};
46EB334229E1D1EC001D5EAF /* Frameworks */ = {
isa = PBXGroup;
children = (
);
name = Frameworks;
sourceTree = "<group>";
};
46EB334B29E1D3D2001D5EAF /* Others */ = {
isa = PBXGroup;
children = (
46EB334A29E1D3C0001D5EAF /* Makefile */,
46EB334929E1D34B001D5EAF /* README.md */,
);
name = Others;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
46EB331729E1CE04001D5EAF /* Locations */ = {
isa = PBXNativeTarget;
buildConfigurationList = 46EB332C29E1CE05001D5EAF /* Build configuration list for PBXNativeTarget "Locations" */;
buildPhases = (
46EB331429E1CE04001D5EAF /* Sources */,
46EB331529E1CE04001D5EAF /* Frameworks */,
46EB331629E1CE04001D5EAF /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = Locations;
packageProductDependencies = (
46EB334329E1D1EC001D5EAF /* Libraries */,
);
productName = Locations;
productReference = 46EB331829E1CE04001D5EAF /* Locations.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
46EB325129E1BBD1001D5EAF /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 1430;
LastUpgradeCheck = 1430;
ORGANIZATIONNAME = "Röck+Cöde";
TargetAttributes = {
46EB331729E1CE04001D5EAF = {
CreatedOnToolsVersion = 14.3;
};
};
};
buildConfigurationList = 46EB325429E1BBD1001D5EAF /* Build configuration list for PBXProject "DeepLinking" */;
compatibilityVersion = "Xcode 14.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 46EB325029E1BBD1001D5EAF;
productRefGroup = 46EB32EE29E1CD20001D5EAF /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 46EB325929E1BD5C001D5EAF /* Products */;
ProjectRef = 46EB325829E1BD5C001D5EAF /* Wikipedia.xcodeproj */;
},
);
projectRoot = "";
targets = (
46EB331729E1CE04001D5EAF /* Locations */,
);
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
46EB326929E1BD5C001D5EAF /* Wikipedia.app */ = {
isa = PBXReferenceProxy;
fileType = wrapper.application;
path = Wikipedia.app;
remoteRef = 46EB326829E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB326B29E1BD5C001D5EAF /* Staging.app */ = {
isa = PBXReferenceProxy;
fileType = wrapper.application;
path = Staging.app;
remoteRef = 46EB326A29E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB326D29E1BD5C001D5EAF /* Experimental.app */ = {
isa = PBXReferenceProxy;
fileType = wrapper.application;
path = Experimental.app;
remoteRef = 46EB326C29E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB326F29E1BD5C001D5EAF /* User Testing.app */ = {
isa = PBXReferenceProxy;
fileType = wrapper.application;
path = "User Testing.app";
remoteRef = 46EB326E29E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB327129E1BD5C001D5EAF /* WikipediaUnitTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = WikipediaUnitTests.xctest;
remoteRef = 46EB327029E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB327329E1BD5C001D5EAF /* ContinueReadingWidget.appex */ = {
isa = PBXReferenceProxy;
fileType = "wrapper.app-extension";
path = ContinueReadingWidget.appex;
remoteRef = 46EB327229E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB327529E1BD5C001D5EAF /* Wikipedia Stickers.appex */ = {
isa = PBXReferenceProxy;
fileType = "wrapper.app-extension";
path = "Wikipedia Stickers.appex";
remoteRef = 46EB327429E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB327729E1BD5C001D5EAF /* WMF.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = WMF.framework;
remoteRef = 46EB327629E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB327929E1BD5C001D5EAF /* localization */ = {
isa = PBXReferenceProxy;
fileType = "compiled.mach-o.executable";
path = localization;
remoteRef = 46EB327829E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB327B29E1BD5C001D5EAF /* WikipediaUITests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = WikipediaUITests.xctest;
remoteRef = 46EB327A29E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB327D29E1BD5C001D5EAF /* languages */ = {
isa = PBXReferenceProxy;
fileType = "compiled.mach-o.executable";
path = languages;
remoteRef = 46EB327C29E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB327F29E1BD5C001D5EAF /* WidgetsExtension.appex */ = {
isa = PBXReferenceProxy;
fileType = "wrapper.app-extension";
path = WidgetsExtension.appex;
remoteRef = 46EB327E29E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
46EB328129E1BD5C001D5EAF /* NotificationServiceExtension.appex */ = {
isa = PBXReferenceProxy;
fileType = "wrapper.app-extension";
path = NotificationServiceExtension.appex;
remoteRef = 46EB328029E1BD5C001D5EAF /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
46EB331629E1CE04001D5EAF /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
46EB332A29E1CE05001D5EAF /* LaunchScreen.storyboard in Resources */,
46EB332729E1CE05001D5EAF /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
46EB331429E1CE04001D5EAF /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
46C3B7C629E5BF1500F8F57C /* LocationsListCoordinator.swift in Sources */,
46EB331F29E1CE04001D5EAF /* LocationsListViewController.swift in Sources */,
02031EC629E5FEE4003C108C /* BaseViewController.swift in Sources */,
46EB331B29E1CE04001D5EAF /* AppDelegate.swift in Sources */,
02031EBF29E5F949003C108C /* LocationsAddViewModeling.swift in Sources */,
4656CBC829E6F2E400600EE6 /* LocationViewCell.swift in Sources */,
46C3B7DE29E5ED2E00F8F57C /* LocationsAddCoordinator.swift in Sources */,
02031F0A29E7645F003C108C /* Location+URLs.swift in Sources */,
02031F0829E75EF0003C108C /* SaveLocalLocationUseCase.swift in Sources */,
02031EEA29E6B495003C108C /* ErrorMessageView.swift in Sources */,
46C3B7DC29E5ED2300F8F57C /* LocationsAddCoordination.swift in Sources */,
46C3B7D829E5E55000F8F57C /* LocationsListCoordination.swift in Sources */,
46DF736D29E82A1500AA6D21 /* UIApplication+Conformances.swift in Sources */,
46C3B7D629E5E50500F8F57C /* LocationsListViewModeling.swift in Sources */,
4656CBC229E6D33C00600EE6 /* LoadRemoteLocationsUseCase.swift in Sources */,
46C3B7CF29E5D00E00F8F57C /* LocationsAddViewModel.swift in Sources */,
02031EC929E60B29003C108C /* DependencyService+Keys.swift in Sources */,
46C3B7D129E5D06D00F8F57C /* LocationsAddViewController.swift in Sources */,
02031EE829E68D9B003C108C /* LoadingSpinnerView.swift in Sources */,
46C3B7CB29E5CD3200F8F57C /* LocationsListViewModel.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
46EB332829E1CE05001D5EAF /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
46EB332929E1CE05001D5EAF /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
46EB325529E1BBD1001D5EAF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
};
name = Debug;
};
46EB325629E1BBD1001D5EAF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
};
name = Release;
};
46EB332D29E1CE05001D5EAF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = 7FMNM89WKG;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Apps/Locations/Resources/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Locations;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard;
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.locations";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
};
name = Debug;
};
46EB332E29E1CE05001D5EAF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 7FMNM89WKG;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Apps/Locations/Resources/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Locations;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard;
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.locations";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
46EB325429E1BBD1001D5EAF /* Build configuration list for PBXProject "DeepLinking" */ = {
isa = XCConfigurationList;
buildConfigurations = (
46EB325529E1BBD1001D5EAF /* Debug */,
46EB325629E1BBD1001D5EAF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
46EB332C29E1CE05001D5EAF /* Build configuration list for PBXNativeTarget "Locations" */ = {
isa = XCConfigurationList;
buildConfigurations = (
46EB332D29E1CE05001D5EAF /* Debug */,
46EB332E29E1CE05001D5EAF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
/* Begin XCSwiftPackageProductDependency section */
46EB334329E1D1EC001D5EAF /* Libraries */ = {
isa = XCSwiftPackageProductDependency;
productName = Libraries;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = 46EB325129E1BBD1001D5EAF /* Project object */;
}