From 7c664f2f617306da6a8979f7fd7bfafe1601f62a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20S=CC=81liwin=CC=81ski?= Date: Thu, 20 Feb 2020 18:48:52 +0100 Subject: [PATCH 1/3] Update git ignore. --- .gitignore | 50 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 02c0875..7962b20 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,48 @@ .DS_Store -/.build -/Packages -/*.xcodeproj +.Trashes +*.swp +*~.nib +DerivedData/ +build/ + +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore +Index + +## Build generated +build/ +DerivedData/ + +## Various settings +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata/ + +## Other +*.moved-aside +*.xccheckout +*.xcscmblueprint + +## Obj-C/Swift specific +*.hmap +*.ipa +*.dSYM.zip +*.dSYM + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +# +# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. +# Packages/ +# Package.pins +.build/ \ No newline at end of file From 0ad066f1e95a3012f4f115e1552da1a0d2b5a70d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20S=CC=81liwin=CC=81ski?= Date: Thu, 20 Feb 2020 18:50:01 +0100 Subject: [PATCH 2/3] Implement Lazy Dependency example from README. --- .../PureExample.xcodeproj/project.pbxproj | 488 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/swiftpm/Package.resolved | 52 ++ .../PureExample/Main/AppDelegate.swift | 32 ++ .../PureExample/Main/SceneDelegate.swift | 32 ++ .../PureExample/Models/AppDependency.swift | 42 ++ PureExample/PureExample/Models/Item.swift | 13 + .../Protocols/ImageDownloaderType.swift | 13 + .../Protocols/StoryboardLoadable.swift | 31 ++ .../AppIcon.appiconset/Contents.json | 98 ++++ .../Resources/Assets.xcassets/Contents.json | 6 + .../image_1.imageset/Contents.json | 21 + .../image_1.imageset/image_1.jpeg | Bin 0 -> 12069 bytes .../image_10.imageset/Contents.json | 21 + .../image_10.imageset/image_10.jpeg | Bin 0 -> 11659 bytes .../image_2.imageset/Contents.json | 21 + .../image_2.imageset/image_2.jpeg | Bin 0 -> 10263 bytes .../image_3.imageset/Contents.json | 21 + .../image_3.imageset/image_3.jpeg | Bin 0 -> 8983 bytes .../image_4.imageset/Contents.json | 21 + .../image_4.imageset/image_4.jpeg | Bin 0 -> 9669 bytes .../image_5.imageset/Contents.json | 21 + .../image_5.imageset/image_5.jpeg | Bin 0 -> 10541 bytes .../image_6.imageset/Contents.json | 21 + .../image_6.imageset/image_6.jpeg | Bin 0 -> 11335 bytes .../image_7.imageset/Contents.json | 21 + .../image_7.imageset/image_7.jpeg | Bin 0 -> 14685 bytes .../image_8.imageset/Contents.json | 21 + .../image_8.imageset/image_8.jpeg | Bin 0 -> 11982 bytes .../image_9.imageset/Contents.json | 21 + .../image_9.imageset/image_9.jpeg | Bin 0 -> 124094 bytes .../Base.lproj/LaunchScreen.storyboard | 25 + PureExample/PureExample/Resources/Info.plist | 60 +++ PureExample/PureExample/Services/File.swift | 9 + .../PureExample/Services/Networking.swift | 33 ++ .../Services/RemoteNotificationService.swift | 54 ++ .../DetailViewController.storyboard | 48 ++ .../DetailViewController.swift | 104 ++++ .../Base.lproj/ListViewController.storyboard | 41 ++ .../ListViewController.swift | 120 +++++ PureExample/PureExample/Views/ImageCell.swift | 20 + PureExample/PureExample/Views/ImageCell.xib | 38 ++ PureExample/PureExample/Views/ItemCell.swift | 13 + PureExample/PureExample/Views/ItemCell.xib | 40 ++ 45 files changed, 1637 insertions(+) create mode 100644 PureExample/PureExample.xcodeproj/project.pbxproj create mode 100644 PureExample/PureExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 PureExample/PureExample/Main/AppDelegate.swift create mode 100644 PureExample/PureExample/Main/SceneDelegate.swift create mode 100644 PureExample/PureExample/Models/AppDependency.swift create mode 100644 PureExample/PureExample/Models/Item.swift create mode 100644 PureExample/PureExample/Protocols/ImageDownloaderType.swift create mode 100644 PureExample/PureExample/Protocols/StoryboardLoadable.swift create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_1.imageset/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_1.imageset/image_1.jpeg create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_10.imageset/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_10.imageset/image_10.jpeg create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_2.imageset/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_2.imageset/image_2.jpeg create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_3.imageset/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_3.imageset/image_3.jpeg create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_4.imageset/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_4.imageset/image_4.jpeg create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_5.imageset/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_5.imageset/image_5.jpeg create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_6.imageset/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_6.imageset/image_6.jpeg create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_7.imageset/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_7.imageset/image_7.jpeg create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_8.imageset/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_8.imageset/image_8.jpeg create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_9.imageset/Contents.json create mode 100644 PureExample/PureExample/Resources/Assets.xcassets/image_9.imageset/image_9.jpeg create mode 100644 PureExample/PureExample/Resources/Base.lproj/LaunchScreen.storyboard create mode 100644 PureExample/PureExample/Resources/Info.plist create mode 100644 PureExample/PureExample/Services/File.swift create mode 100644 PureExample/PureExample/Services/Networking.swift create mode 100644 PureExample/PureExample/Services/RemoteNotificationService.swift create mode 100644 PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.storyboard create mode 100644 PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.swift create mode 100644 PureExample/PureExample/ViewControllers/ListViewController/Base.lproj/ListViewController.storyboard create mode 100644 PureExample/PureExample/ViewControllers/ListViewController/ListViewController.swift create mode 100644 PureExample/PureExample/Views/ImageCell.swift create mode 100644 PureExample/PureExample/Views/ImageCell.xib create mode 100644 PureExample/PureExample/Views/ItemCell.swift create mode 100644 PureExample/PureExample/Views/ItemCell.xib diff --git a/PureExample/PureExample.xcodeproj/project.pbxproj b/PureExample/PureExample.xcodeproj/project.pbxproj new file mode 100644 index 0000000..199d7d9 --- /dev/null +++ b/PureExample/PureExample.xcodeproj/project.pbxproj @@ -0,0 +1,488 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 52; + objects = { + +/* Begin PBXBuildFile section */ + 3556F58523FDC36600C775E1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3556F58423FDC36600C775E1 /* AppDelegate.swift */; }; + 3556F58723FDC36600C775E1 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3556F58623FDC36600C775E1 /* SceneDelegate.swift */; }; + 3556F58C23FDC36600C775E1 /* ListViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3556F58A23FDC36600C775E1 /* ListViewController.storyboard */; }; + 3556F58E23FDC36700C775E1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3556F58D23FDC36700C775E1 /* Assets.xcassets */; }; + 3556F59123FDC36700C775E1 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3556F58F23FDC36700C775E1 /* LaunchScreen.storyboard */; }; + 3556F59A23FDC4B400C775E1 /* StoryboardLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3556F59923FDC4B400C775E1 /* StoryboardLoadable.swift */; }; + 3556F59D23FDC4ED00C775E1 /* ListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3556F59C23FDC4ED00C775E1 /* ListViewController.swift */; }; + 356EC33F23FE8A0F00A63CB8 /* AppDependency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 356EC33E23FE8A0F00A63CB8 /* AppDependency.swift */; }; + 356EC34323FE8A8800A63CB8 /* RemoteNotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 356EC34223FE8A8800A63CB8 /* RemoteNotificationService.swift */; }; + 356EC34523FE8AA700A63CB8 /* Networking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 356EC34423FE8AA700A63CB8 /* Networking.swift */; }; + 3585C06C23FE9F9C005FC01A /* DetailViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3585C06B23FE9F9C005FC01A /* DetailViewController.storyboard */; }; + 3585C06E23FE9FA7005FC01A /* DetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3585C06D23FE9FA7005FC01A /* DetailViewController.swift */; }; + 3585C07023FEA010005FC01A /* Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3585C06F23FEA010005FC01A /* Item.swift */; }; + 35D1C53723FECE5D00BEC341 /* ImageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D1C53523FECE5C00BEC341 /* ImageCell.swift */; }; + 35D1C53823FECE5D00BEC341 /* ImageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 35D1C53623FECE5C00BEC341 /* ImageCell.xib */; }; + 35D1C53A23FECEAA00BEC341 /* ImageDownloaderType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D1C53923FECEAA00BEC341 /* ImageDownloaderType.swift */; }; + 35D1C54123FED90300BEC341 /* ItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D1C53F23FED90300BEC341 /* ItemCell.swift */; }; + 35D1C54223FED90300BEC341 /* ItemCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 35D1C54023FED90300BEC341 /* ItemCell.xib */; }; + 35D1C54523FEF9E600BEC341 /* Pure in Frameworks */ = {isa = PBXBuildFile; productRef = 35D1C54423FEF9E600BEC341 /* Pure */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 3556F58123FDC36600C775E1 /* PureExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PureExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 3556F58423FDC36600C775E1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 3556F58623FDC36600C775E1 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 3556F58B23FDC36600C775E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/ListViewController.storyboard; sourceTree = ""; }; + 3556F58D23FDC36700C775E1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 3556F59023FDC36700C775E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 3556F59223FDC36700C775E1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 3556F59923FDC4B400C775E1 /* StoryboardLoadable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoryboardLoadable.swift; sourceTree = ""; }; + 3556F59C23FDC4ED00C775E1 /* ListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListViewController.swift; sourceTree = ""; }; + 356EC33E23FE8A0F00A63CB8 /* AppDependency.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDependency.swift; sourceTree = ""; }; + 356EC34223FE8A8800A63CB8 /* RemoteNotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteNotificationService.swift; sourceTree = ""; }; + 356EC34423FE8AA700A63CB8 /* Networking.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Networking.swift; sourceTree = ""; }; + 3585C06B23FE9F9C005FC01A /* DetailViewController.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = DetailViewController.storyboard; sourceTree = ""; }; + 3585C06D23FE9FA7005FC01A /* DetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailViewController.swift; sourceTree = ""; }; + 3585C06F23FEA010005FC01A /* Item.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Item.swift; sourceTree = ""; }; + 35D1C53523FECE5C00BEC341 /* ImageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageCell.swift; sourceTree = ""; }; + 35D1C53623FECE5C00BEC341 /* ImageCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ImageCell.xib; sourceTree = ""; }; + 35D1C53923FECEAA00BEC341 /* ImageDownloaderType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageDownloaderType.swift; sourceTree = ""; }; + 35D1C53F23FED90300BEC341 /* ItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemCell.swift; sourceTree = ""; }; + 35D1C54023FED90300BEC341 /* ItemCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ItemCell.xib; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3556F57E23FDC36600C775E1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 35D1C54523FEF9E600BEC341 /* Pure in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 3556F57823FDC36600C775E1 = { + isa = PBXGroup; + children = ( + 3556F58323FDC36600C775E1 /* PureExample */, + 3556F58223FDC36600C775E1 /* Products */, + ); + sourceTree = ""; + }; + 3556F58223FDC36600C775E1 /* Products */ = { + isa = PBXGroup; + children = ( + 3556F58123FDC36600C775E1 /* PureExample.app */, + ); + name = Products; + sourceTree = ""; + }; + 3556F58323FDC36600C775E1 /* PureExample */ = { + isa = PBXGroup; + children = ( + 35D1C53223FECDE800BEC341 /* Views */, + 356EC34723FE8B0000A63CB8 /* Resources */, + 356EC34623FE8AF600A63CB8 /* Main */, + 356EC33D23FE89F800A63CB8 /* Services */, + 356EC33C23FE89E300A63CB8 /* Models */, + 3556F59B23FDC4DE00C775E1 /* ViewControllers */, + 3556F59823FDC4A000C775E1 /* Protocols */, + ); + path = PureExample; + sourceTree = ""; + }; + 3556F59823FDC4A000C775E1 /* Protocols */ = { + isa = PBXGroup; + children = ( + 3556F59923FDC4B400C775E1 /* StoryboardLoadable.swift */, + 35D1C53923FECEAA00BEC341 /* ImageDownloaderType.swift */, + ); + path = Protocols; + sourceTree = ""; + }; + 3556F59B23FDC4DE00C775E1 /* ViewControllers */ = { + isa = PBXGroup; + children = ( + 3585C07223FEA092005FC01A /* DetailViewController */, + 3585C07123FEA083005FC01A /* ListViewController */, + ); + path = ViewControllers; + sourceTree = ""; + }; + 356EC33C23FE89E300A63CB8 /* Models */ = { + isa = PBXGroup; + children = ( + 356EC33E23FE8A0F00A63CB8 /* AppDependency.swift */, + 3585C06F23FEA010005FC01A /* Item.swift */, + ); + path = Models; + sourceTree = ""; + }; + 356EC33D23FE89F800A63CB8 /* Services */ = { + isa = PBXGroup; + children = ( + 356EC34223FE8A8800A63CB8 /* RemoteNotificationService.swift */, + 356EC34423FE8AA700A63CB8 /* Networking.swift */, + ); + path = Services; + sourceTree = ""; + }; + 356EC34623FE8AF600A63CB8 /* Main */ = { + isa = PBXGroup; + children = ( + 3556F58423FDC36600C775E1 /* AppDelegate.swift */, + 3556F58623FDC36600C775E1 /* SceneDelegate.swift */, + ); + path = Main; + sourceTree = ""; + }; + 356EC34723FE8B0000A63CB8 /* Resources */ = { + isa = PBXGroup; + children = ( + 3556F58D23FDC36700C775E1 /* Assets.xcassets */, + 3556F58F23FDC36700C775E1 /* LaunchScreen.storyboard */, + 3556F59223FDC36700C775E1 /* Info.plist */, + ); + path = Resources; + sourceTree = ""; + }; + 3585C07123FEA083005FC01A /* ListViewController */ = { + isa = PBXGroup; + children = ( + 3556F58A23FDC36600C775E1 /* ListViewController.storyboard */, + 3556F59C23FDC4ED00C775E1 /* ListViewController.swift */, + ); + path = ListViewController; + sourceTree = ""; + }; + 3585C07223FEA092005FC01A /* DetailViewController */ = { + isa = PBXGroup; + children = ( + 3585C06B23FE9F9C005FC01A /* DetailViewController.storyboard */, + 3585C06D23FE9FA7005FC01A /* DetailViewController.swift */, + ); + path = DetailViewController; + sourceTree = ""; + }; + 35D1C53223FECDE800BEC341 /* Views */ = { + isa = PBXGroup; + children = ( + 35D1C53523FECE5C00BEC341 /* ImageCell.swift */, + 35D1C53623FECE5C00BEC341 /* ImageCell.xib */, + 35D1C53F23FED90300BEC341 /* ItemCell.swift */, + 35D1C54023FED90300BEC341 /* ItemCell.xib */, + ); + path = Views; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 3556F58023FDC36600C775E1 /* PureExample */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3556F59523FDC36700C775E1 /* Build configuration list for PBXNativeTarget "PureExample" */; + buildPhases = ( + 3556F57D23FDC36600C775E1 /* Sources */, + 3556F57E23FDC36600C775E1 /* Frameworks */, + 3556F57F23FDC36600C775E1 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PureExample; + packageProductDependencies = ( + 35D1C54423FEF9E600BEC341 /* Pure */, + ); + productName = PureExample; + productReference = 3556F58123FDC36600C775E1 /* PureExample.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 3556F57923FDC36600C775E1 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1130; + LastUpgradeCheck = 1130; + ORGANIZATIONNAME = plum; + TargetAttributes = { + 3556F58023FDC36600C775E1 = { + CreatedOnToolsVersion = 11.3.1; + }; + }; + }; + buildConfigurationList = 3556F57C23FDC36600C775E1 /* Build configuration list for PBXProject "PureExample" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 3556F57823FDC36600C775E1; + packageReferences = ( + 35D1C54323FEF9E600BEC341 /* XCRemoteSwiftPackageReference "Pure" */, + ); + productRefGroup = 3556F58223FDC36600C775E1 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 3556F58023FDC36600C775E1 /* PureExample */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 3556F57F23FDC36600C775E1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3585C06C23FE9F9C005FC01A /* DetailViewController.storyboard in Resources */, + 3556F59123FDC36700C775E1 /* LaunchScreen.storyboard in Resources */, + 35D1C54223FED90300BEC341 /* ItemCell.xib in Resources */, + 35D1C53823FECE5D00BEC341 /* ImageCell.xib in Resources */, + 3556F58E23FDC36700C775E1 /* Assets.xcassets in Resources */, + 3556F58C23FDC36600C775E1 /* ListViewController.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 3556F57D23FDC36600C775E1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 35D1C54123FED90300BEC341 /* ItemCell.swift in Sources */, + 356EC34323FE8A8800A63CB8 /* RemoteNotificationService.swift in Sources */, + 3585C07023FEA010005FC01A /* Item.swift in Sources */, + 3556F59A23FDC4B400C775E1 /* StoryboardLoadable.swift in Sources */, + 356EC33F23FE8A0F00A63CB8 /* AppDependency.swift in Sources */, + 35D1C53723FECE5D00BEC341 /* ImageCell.swift in Sources */, + 35D1C53A23FECEAA00BEC341 /* ImageDownloaderType.swift in Sources */, + 3556F58523FDC36600C775E1 /* AppDelegate.swift in Sources */, + 3556F59D23FDC4ED00C775E1 /* ListViewController.swift in Sources */, + 3556F58723FDC36600C775E1 /* SceneDelegate.swift in Sources */, + 356EC34523FE8AA700A63CB8 /* Networking.swift in Sources */, + 3585C06E23FE9FA7005FC01A /* DetailViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 3556F58A23FDC36600C775E1 /* ListViewController.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 3556F58B23FDC36600C775E1 /* Base */, + ); + name = ListViewController.storyboard; + sourceTree = ""; + }; + 3556F58F23FDC36700C775E1 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 3556F59023FDC36700C775E1 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 3556F59323FDC36700C775E1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + 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_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; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + 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; + IPHONEOS_DEPLOYMENT_TARGET = 13.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 3556F59423FDC36700C775E1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + 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_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; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + 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; + IPHONEOS_DEPLOYMENT_TARGET = 13.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 3556F59623FDC36700C775E1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = PureExample/Resources/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.plum.PureExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 3556F59723FDC36700C775E1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = PureExample/Resources/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.plum.PureExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3556F57C23FDC36600C775E1 /* Build configuration list for PBXProject "PureExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3556F59323FDC36700C775E1 /* Debug */, + 3556F59423FDC36700C775E1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3556F59523FDC36700C775E1 /* Build configuration list for PBXNativeTarget "PureExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3556F59623FDC36700C775E1 /* Debug */, + 3556F59723FDC36700C775E1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + 35D1C54323FEF9E600BEC341 /* XCRemoteSwiftPackageReference "Pure" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/devxoul/Pure"; + requirement = { + branch = master; + kind = branch; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 35D1C54423FEF9E600BEC341 /* Pure */ = { + isa = XCSwiftPackageProductDependency; + package = 35D1C54323FEF9E600BEC341 /* XCRemoteSwiftPackageReference "Pure" */; + productName = Pure; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 3556F57923FDC36600C775E1 /* Project object */; +} diff --git a/PureExample/PureExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/PureExample/PureExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/PureExample/PureExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..eacae98 --- /dev/null +++ b/PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,52 @@ +{ + "object": { + "pins": [ + { + "package": "CwlCatchException", + "repositoryURL": "https://github.com/mattgallagher/CwlCatchException.git", + "state": { + "branch": null, + "revision": "f809deb30dc5c9d9b78c872e553261a61177721a", + "version": "2.0.0" + } + }, + { + "package": "CwlPreconditionTesting", + "repositoryURL": "https://github.com/mattgallagher/CwlPreconditionTesting.git", + "state": { + "branch": null, + "revision": "ea422878db4e680069af320ac444183628360ab1", + "version": "2.0.0-beta.1" + } + }, + { + "package": "Nimble", + "repositoryURL": "https://github.com/Quick/Nimble.git", + "state": { + "branch": null, + "revision": "fc3cd1adf6961a3541679342d64fbbfd7a9f4ca7", + "version": null + } + }, + { + "package": "Pure", + "repositoryURL": "https://github.com/devxoul/Pure", + "state": { + "branch": "master", + "revision": "28fc9d2f9231ae6deeabc27bbd9cb648bd73311f", + "version": null + } + }, + { + "package": "Quick", + "repositoryURL": "https://github.com/Quick/Quick.git", + "state": { + "branch": null, + "revision": "33682c2f6230c60614861dfc61df267e11a1602f", + "version": "2.2.0" + } + } + ] + }, + "version": 1 +} diff --git a/PureExample/PureExample/Main/AppDelegate.swift b/PureExample/PureExample/Main/AppDelegate.swift new file mode 100644 index 0000000..4008460 --- /dev/null +++ b/PureExample/PureExample/Main/AppDelegate.swift @@ -0,0 +1,32 @@ +// +// AppDelegate.swift +// PureExample +// +// Created by Łukasz Śliwiński on 19/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import UIKit +import UserNotifications + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + let dependency: AppDependency + + /// Called from the system (it's private: not accessible in the testing environment) + private override init() { + self.dependency = AppDependency.resolve() + super.init() + } + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } +} diff --git a/PureExample/PureExample/Main/SceneDelegate.swift b/PureExample/PureExample/Main/SceneDelegate.swift new file mode 100644 index 0000000..3ef29de --- /dev/null +++ b/PureExample/PureExample/Main/SceneDelegate.swift @@ -0,0 +1,32 @@ +// +// SceneDelegate.swift +// PureExample +// +// Created by Łukasz Śliwiński on 19/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + private var appDelegate: AppDelegate { + return UIApplication.shared.delegate as! AppDelegate + } + + var window: UIWindow? + + func scene( + _ scene: UIScene, + willConnectTo session: UISceneSession, + options connectionOptions: UIScene.ConnectionOptions + ) { + guard let scene = (scene as? UIWindowScene) else { return } + + self.window = UIWindow(windowScene: scene) + guard let window = self.window else { return } + + window.rootViewController = appDelegate.dependency.listViewControllerFactory() + window.makeKeyAndVisible() + } +} diff --git a/PureExample/PureExample/Models/AppDependency.swift b/PureExample/PureExample/Models/AppDependency.swift new file mode 100644 index 0000000..606d671 --- /dev/null +++ b/PureExample/PureExample/Models/AppDependency.swift @@ -0,0 +1,42 @@ +// +// AppDependency.swift +// PureExample +// +// Created by Łukasz Śliwiński on 20/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import Foundation +import UserNotifications + +struct AppDependency { + let networking: Networking + let remoteNotificationService: RemoteNotificationService + let listViewControllerFactory: () -> ListViewController +} + +extension AppDependency { + + static func resolve() -> AppDependency { + let networking = Networking() + let remoteNotificationService = RemoteNotificationService( + notificationCenter: UNUserNotificationCenter.current() + ) + + let detailViewControllerFactory = DetailViewController.factory( + networking, + ImageCell.configurator() + ) + + return AppDependency( + networking: networking, + remoteNotificationService: remoteNotificationService, + listViewControllerFactory: { + return ListViewController.factory( + networking, + remoteNotificationService, + detailViewControllerFactory + ) + }) + } +} diff --git a/PureExample/PureExample/Models/Item.swift b/PureExample/PureExample/Models/Item.swift new file mode 100644 index 0000000..9a17a6a --- /dev/null +++ b/PureExample/PureExample/Models/Item.swift @@ -0,0 +1,13 @@ +// +// Item.swift +// PureExample +// +// Created by Łukasz Śliwiński on 20/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import Foundation + +struct Item { + let name: String +} diff --git a/PureExample/PureExample/Protocols/ImageDownloaderType.swift b/PureExample/PureExample/Protocols/ImageDownloaderType.swift new file mode 100644 index 0000000..6a9d5bf --- /dev/null +++ b/PureExample/PureExample/Protocols/ImageDownloaderType.swift @@ -0,0 +1,13 @@ +// +// ImageDownloaderType.swift +// PureExample +// +// Created by Łukasz Śliwiński on 20/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import Foundation + +protocol ImageDownloaderType { + +} diff --git a/PureExample/PureExample/Protocols/StoryboardLoadable.swift b/PureExample/PureExample/Protocols/StoryboardLoadable.swift new file mode 100644 index 0000000..b1abbae --- /dev/null +++ b/PureExample/PureExample/Protocols/StoryboardLoadable.swift @@ -0,0 +1,31 @@ +// +// StoryboardLoadable.swift +// PureExample +// +// Created by Łukasz Śliwiński on 19/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import UIKit + +protocol StoryboardLoadable: class { + static var storyboardName: String { get } + static var controllerId: String { get } +} + +extension StoryboardLoadable where Self: UIViewController { + + static var storyboardName: String { + return String(describing: Self.self) + } + + static var controllerId: String { + return String(describing: Self.self) + } + + static func loadFromStoryboard() -> Self { + let bundle = Bundle(for: Self.self) + let storyboard = UIStoryboard(name: Self.storyboardName, bundle: bundle) + return storyboard.instantiateViewController(withIdentifier: Self.controllerId) as! Self + } +} diff --git a/PureExample/PureExample/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/PureExample/PureExample/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/PureExample/PureExample/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PureExample/PureExample/Resources/Assets.xcassets/Contents.json b/PureExample/PureExample/Resources/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/PureExample/PureExample/Resources/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_1.imageset/Contents.json b/PureExample/PureExample/Resources/Assets.xcassets/image_1.imageset/Contents.json new file mode 100644 index 0000000..a95398d --- /dev/null +++ b/PureExample/PureExample/Resources/Assets.xcassets/image_1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "image_1.jpeg", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_1.imageset/image_1.jpeg b/PureExample/PureExample/Resources/Assets.xcassets/image_1.imageset/image_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..07abeed7247c9e320a2bbc8f3cecd9c3ecf68bb2 GIT binary patch literal 12069 zcmZX4bx<2l@Na;i#WfU5ad$06Lb2fPv=q1CQrrp!ibHUBFB+^ADaDFA1cy?f1SwYh z_4|AC`{T{qo4uX6z4`3!&CcB2-aRcnZ32i@6rqX$G&BGJ?Oy{tApsu%xLDYvq@)yN zq-2y76jT)SR1_2-N-7W~h#vGD1Oib}QGw{#!5{`!I*R8n1Q=O3xOjPaL0}bCS#Lu}{z$`rfh>MSh??3sE{*(X9|1+n7#QdnSm;8J^&*M?uj*PEE`^x&EP)co3foM(SMjcq|^=ku88tLJX7 zbvUZ@v@waDMf#&^Q5BW7=yA`DYwj?;mg^K7f;eiT#s%sO3YX3PVMx{K*|1{`rkBzu zllQY@jVO%9uQ(-}iNsqGcyL@)0uzPH^Br2lJ-vlfH5hYbzd`HO#TU6i&NJCwIMJTgTU7=|f(_`AAu_Jf%rxRbRiI5E2g=@m` zL+aTStva8)XXe^wm(m1|=4|KHJG;mrk&HRU_3uSOdb8s%c6Ac8MXOm`4ey!MMJs`{ z3sq6`q@oUV;)TTTTD6F?q-D54Y73jfpz&f^nZmh70%Ge1Qcb@}_dzKZCwb25F@ zrr?v0=IX`n3wO7`7b<_SWr+Rvjm~ z$dB>{#|qvn?faaRuT934J*DIqxw<&w(h$$dXO+vEI<~S`;|H7rouYDeG7Z|m?&Nq| z+UktiwjW=#CnD9Y$-jw=O*Kq&vRC2jq30L3W_l5+>`g{$l@62LT%czmEB&ie^HqdX6pxl_3-VA6*{ZmH0`$)XIX@>t1y#1>-9Pkn&X+#aDt~s* zn@#lnrLxp}Ip`^MIFWD;KwC>uR8^YH{_K<>xhRsyn!1eeMIbX9iAV=h`){Y;y{q(X zV!BjM9D1ZE*}Uf}7n~kvY05;*UFxpa#avXI2kmH_g|BP&$o!4a$czWoSIrS1yD9+v zc45EIPcG{UUia*n5X697GfyswoiLoBT#}*E`Q0B~O=j=#jmjYVvy)X< zw3|&TKr5a@oqod)7febu9WZK=(VBo>dC=wE^oAqkK_V#di{?>*+SD^ntA{5*aut-r zn~1fOzGjADpwVHH2L`?AEtsgId3IVv|Gi5zS(dCZOLN1G!H(P_>LK;2WSE0kIyso) z+5Y!8*mKX5se{-h;)HtHv66`@ zk;8Qsg--VAMM1>H8jfrw7MNc{uPP^EDr2(W6-1I@Bt+JHl-8<*r& z9`Y{X@JX<;9PIUc~}gT$#>_$AmdBW^$%lH~XH>>D8xg}T zn{j`$o&c>*@-?TmV$j1y@&;o(H8`md0ymX;gfv)B-ye01?AS)Tr8X{aljjk2L@np{ zH?Je}zLHuf+up&nhpyuVPu_k-tPMo#KvpUmMv~9&ziU1LNSqUAxLuOE&{H$hSw3Q9 z0Ujh55;VQBwA&Guse0+-1G!}EzWlV;I}dm)Go6v24DYqwU`a-{z+UFmOO&2e(KPZb zHf2;U;Wh4vOtkWyPmzf!o^QaEq4>q*23FM}XA8Fl(!k+%q0IaFe3$j;jYYy~j#`kK z)?@t4@v5RV0R}LX39QNNPt?kr;Rj3OLSBXD-p1YDPKVfd$GiNf&MRz5W!oeoJG*n& z9+6;gBM0?K=-NgsH3m<8NqBB!rsfNmxl>wiktvlqDrhCT5;D1N&2e$N%EZlw5YeLb zXJ4Sr%+4g+I0U5s7@~Lrlx6OCKLM;~aXs^T;INPqvYGssmi`8p8DZU2yZviB95)68 z4;?xJ;}~Bfj4*rfp!<`e-voOYR@(%k!Y$3U2O~*w^}vP~|B5cI|3S z*iewnD7{Ri(@VO(s-`v{*qXF4Tey<=#b*T23qzaVx#L^%wXEx~#o zP(@LEjtM=zH}Hq#o0-R0hUOcCF|Q&`I&S|(nOd(~_HS)ajqOZ-t$*t28age}28aGC zsKr~aR6OM{V)086({k_lb&hwE&aJ(o2?k8jmkEw-!s?2o`*>2q!Q;aF*hO`0&Cg4! z>`Y^vDfGdG{B~}yQuo=vepY|SkAi6qR6bm!3~wJK(rP;%^@*k;R{9Pv2RD)`Nef-L zT_DhDYYz-Ao2<(QfId#hFe>&BpJPUUr=BM_lT75Q&%3*-EfJO$Ry7wX zYAF4VD9<_kv4U-O^>0DLP-*e^ZM4%goZL^WvN89h?I*8cj<|xfiJHERdFxKOla6h! zZv!DOBLwaYGGma*e1G=P5_44oKSP5C<9%I^l&mFJ6>R$4m^l;pZK+=QUet9)7;o54 zpB(C#zSp+}90@Q=l7>))sH~YBZ1#MVhIN%}3CQ^SzBCnfM@}&(<_SbP=oURsy~V2d zEno3-*Lu^CyGC@zxLwOw-=~MN#E2#wNOINo|ZP6eoYd+;O5A1sfEo%xYrL_ zofgj_=K3ttvQ_>F#7==&U|}4^PGLAX^!vAsaH@yu49%}yC_qm%x~Gu9oxFZR z!7tNrE7y>>Vr2XhdmYT3%{3|2hblbpJ%=pR%o5Dh7(!`-9A8&iifh?5xJ!lpwVUl$ ztwnfP3U;Rp^hEQ&FK40*G*#wd!$lXum;hUE2T4;DKOj`R%9OhnybWcP*wJLkPXKF@ z5tw}hk=}sc?{jAM1T+SswW0cGKU|0 z6vlroX5Nz!meGg3=6c!d0vN<*16<2Ik9RQzQW!-@FrV5rl&8_?H|%7`OHs9$6gh7G zIl&7oBxOF8ay-A(j!%#L+}}%ry(!P@PA#JNv(@x7Q#)5aa|+w29RsKT3a?Lby2mzv z_691x!u$lt6U+{Ra0jVtHm%w4I6AL7z}>(war@V)UXPUG2^-I^ejcVX`hH&3+zl2v z|K`PGAt-$9#){c|{b%8u!kpnZ-F9Dr^rS#Jz^doTq^p;|^&sfaMMy(ZT2U3>zH@i` zRry*DC(j745tgAf5+h3o_Xoba@wjH&n4a+pa@HxQ`iR9i4Zf1hO5>c>%a%PFpfpdg zpgt0rqBle%sYJgoXm?(e4wcO5XzqHPsaXw_(v+&sPqQjKhizEdp`HNd>N-X*d@_U9 zZ;+A}(Od_s&j${@3UAtQu$>h~gxIbUkMfDi)bgjyamv7am?}jRtRU{&^BesfDchaS zD0I~@CTtl(c5eStTuonDZTn_7+%0P}bc^2W3RJ$+!b>7UbKU~wXQ7o9-`@_P?EojR zEEZGO5x*-L^{_gTA$sK)0vP!D?+WT1iS&3ZXNd6`S+S-`OE+;Cz9n$HqX>Q|PD%aj zQZRQZ-GK`FWbjIr$mO?-ET!dZe(W87`-sa2(edrgL>-)42*tLq%d^9)qxhecMwo&! z*7(+AXF6rSE4xHR-{4mz(VC1t+v zy}Yaxky17>EiwTWwYJ&!vG^q*U*jG*iH=DKby8}^(C?$YM`z@UY+GZ={K2q-c>fpw zQ9q}xnM)$#;1db*;!upKzVLSXz_p@ns%_165h@b+HRE+&o4kZ?T7lFyt zj4OeCy0dj%Z~hwnfD}YJ#pEDCsz~%>OD_?VSG9%$Y4+9%b`)aTT%nq?2DL23T+u+w z<@R6TTM1I`s)U86x@S{L0BdLgn&8RBE&U!%z$s)?LohgPzF|N`Fv_wIs&8SV4^6)g zTKYwHTBXk7L4RCK)IFOUfT#yFfIbAZ5B(z3<>Z)*8pz_=wJZsXb_Teg7e9X!@13Q2 zxUBs%w55>3*fxbKzS{4S?vO@`^q#cnT@xAt7m(76ZDH{%tKQfq(T{PI=%H5fh_!gU ztBu$EEgpKk{)hDROYul-lnIYm%gX>?!+6O|$*@PL>l#AutAy-P2;eFDIy z!w@{losbMb*apeH6IJy>4TUd|mjxScgcHH2mV8#8XC5Cbnw6S*0t3T_W5%LybRTsI zTl)A0c44!M8>%Q+jxqwZvJ#D6xz3M;y;Ww!G*{;rvH#c8Z-~e8>E~ zlHsL(gtM-4QyLn;@NuxMI=fVJ)&a?NQ8WH^RVb{TC`$P|#erC%=!|@!vGK{UpgeS_ zJYXt_u+jzbH31;83GbWi)jy8(21)52q3-*i|A$b9Fie>{Uat^oFs39FV8IC2+$6(#j?4!wubz* z2L08O(pHML1BPm-k*(&^t7Y4EM*8d!U#wcJ~5RB=a z(Crp_G~E9QkcR$ zI2>~RnOTtOIe6?Auj*Vo{cTGL`WqTe3I+I3r^-C1bJYP4?5$6ZS=zSS ziVs}~zFN*kI44;}kwo;JoY$7y5g2RZiiu&Gf4_;C*bIm+rW5%VnRyMl4P|5(T1DSZ z5E37vrAALQ`Q+NPg|_FDAlE|ts#u)qL>+IR%Nt>EW%Jr`R0yuiIpp_7^F6u-E55tw zgP}r;USvB|pKWZ%ImFSZR|fywm`A!<(|fr-T@+Q12jAG^tS*E^Jk-V&s0gRG_@XMp z+X59}vClB^dudL9ZhRtq5pnl}b--y9`SjkS*e!+ObB z3>PHN^}?NM@JkD1Lk>8Z^1fOq%4=+v+ciUOgGP-G-x-WTUck_MVogpSnQ&nVI2I{vv%$EIMERE;Rm8gLM&y0 z!$Ve=#oaU|X6<9Oqea*j9)wJzI}OJKI;x0yxn^t4 zS-y8-hR6ebm^yKCA*cFxR~ql-JNm%Y)E2UzOwMN;Ghdc1GI)6CrpMY*M~yT7$xShw zVmWcsDU9fM{qK+SE#kH^bllPG$mDo0`-QzWmhlqKGr7vz;WkRP8lHES0}JNe`DL>y>Bntr{1=sCSVUsX*oer!N40pa>$~EG_jYTC18~1VrZJ+a=Q&0=De2#E zu8lFr5}+@rKx}b%n6ryPMc`HY>yKZ`m6`LUB?R5XZf8wUfm(q)=+`b~A1ek}dLsyHT&n(eUUI-BuU2813;LR`&L zWQ;`!9opy-KASb8exPR_z+(DS@Nw619R8)W7%7BS?74UI`P&nK>_FGUhgn;x(#xTL zNp$!azo6Vc_>=OLufH-dMII0mtaM)I5&swDnFj=OP)r@s6F|SDs4c(%yr(n2RKP*6Q!I#c9T!0Y zjLmJ_ZS9-kpx)VFaYjwr2>TpUh~esk`7O$!DU2`NaD^`Z>LSY=RF7uM+KgCo9PkXR9_t*XvuBNQ^$OIp$WdRykg~?)-g9_T@7HS>~OC7 zFr$)i2fmMvrM6ohI)lS`-&>P;x?wm73UHAWK))-^`ByPNZ5K>yCpnMX`TvA~l-Kmhax0G+xMpcWs z5p>zx%`+U2c5=v_Md0%e>bG@%+G-z{Xd;?R@1zh0u&|qxah#MK39N4I_|E2oMY+}mDOHUngAx1*pn#kWJ6ys3tMi4 zD7=|@#y>Jyxrf_Vy(Xjkv(>#7uWWFCrK^w_;OuAT`uVu9fHy37qDbVxV5*k5_imi) z=LNq9G=GCkF6eX9f?STWi{vm|b`yq-FZ5kIAMz^^rOtn7;uToIg%3xqV)@A5*okmm z%8>3Gw0ZW+jkphkDVVO3WK&zvsFQOSE}1jMS>xO2uF!AfUY>?k94CxnOL%$kIye)`bbJ*xT(`w{LqOJ*1YMNiMUf_Dg54JY*10q zl4HSiR_=>_*9(nyD*sO(YLeSM$O(ORgU|I{f7g)`4l8O zDN=#eJv_-a)UPuV@nD8Yori zr$AS%0X{{Bq!6Y?-~)(EzLT{>S3N{iB8hDKg8(s;KugsPkx3Qh*bYka6REPRP;YKu zFBuqJ{0YDb_qXZl$`OnR4EGzu8M~5EsjHX+ps3fP|3(9p7HaKV5hx~P#|Q6FX>$e$Nwzj!LfwQ|^dfjWvcGQ|2zRa??UJ~be$(MZqV0*jArOm)+K#I46%K)!c)|er1xsP=%i2z zyALmnR#M6mt!SY;WLI_Ah-=OLLvHv=+qgB<#M+c5c70i-xlIHd$#Z*Y#GG9;$yk#2cw$!|YF z)R7vIKm61eRsncThOXX2&UkOjjNYhX0pv44y6k9cODP_1&~o$rMQSl5pNDKXI_ed= zuLN-Cl|IoFA8B>VA%k&OUCoII8@a(VnP0MGAs!&y?HxAWz!UV_nJGWaQ#>_w zvKy@h!C^m@&~?EK?{CkuC)O1a6SeiV+ta&U7|l&S0|F zDjC3OPtQcd-imt|Hr_`vczDvq6C?{Oq(-YY*UgJ5G(l`*vN!IKmxCR89}w!T z-tXKqQ_3wO+&7clWbxQu4P@sa%ykZJh0W!WrijeRBnU|^v9!eP5Cv~)^~&qkT#OgZ zFRUzvzOaqA+%HajCv*8w%Pe~8rdNZE&O9BhS`}jM&E5`>tXTCmRfq<(xA#u^Nj46; zZ_phSDtfF(U#wXmU}irs_%W0PMPaMZ_=>je?cz6W?pjsmY9tMDjA1coatTY=K+T!L zIcc~GYPOaPP>$W3+(0rEqH)REIS)T0_yN(U^5=iY^K%WZ9Wf-`>Xk?0vFxdhde%vo z4hV%{kM)uNIVTPd?7fT~mo78D&Jl!eQfkX^-(JPm%-^Oys}0+*G7T@s0Y@hexK zcgzM-tK8Yy!0P;*jsgDJ#62P+!;GMA1Q%n9+lQ{rLLv>I)r&yxpI< z0iq3|cI^VG0>)kSh%n#w-f;5x(mi6!0F|)_E#t$(UmFhFMujIsJpvcCtqmgnxCbJ& zBy(T)SBo{~8Nrkjt7sdoo<%D$FF)bI!hrzFoxeFB;i1DIZk&sXYUEOd1KV1=k2tl# zP=$c5L+kcVHzKbvzPnVmk1h8&`iRqW=}d*CEx_cHQ@a_0IcmkqEsg_S4DGDI1aF}Z z*&aSC5js_?$%~$woCOHhx7}PRqjKq$t8u|svx>=|<_C^T-ijjId45>}h|L8}z>yYU ztA=da_OKc+JQ}JT$3Z)HHex$s>|Y{-r_tx^S$zZmMXc%Q>b%!#3ocDf1CkcQ_y6jL zBpThdx*)bJdVRX+nEY=o`s80QLTv}jK#+Cp_nu4i$Pqyg`zJtiw&)jL80DFLN-fJ~ zOwyocsqD#R?RY%PAb*Sp5?y&+aSF&F_#wr@6G+!MPIo|c`P`?=*_^=s?yCZWplp1_ zz9Lt_8I`!+n;(`t)B$0lwW4xJgYzU)$IQu~g-6E7H|;6UxRm*QBGJ*L!fTU4;-7af z$YE*iith9R=>>5~aaIJm1U$Cm@6?B#shJiunW!&fznIn~rRnc8>nytM>=pbnD>CrL zCnw^Sk}a6%Qg=2XG+v}}K5`KjI^kE`!2s^e5lWDagJuptOZVq`Qlvf0o{a-3yiV5)$6Ji$Yv4hvl&B{ z5#P92kBEOl`Py@{NZ$n071ynFI0@N!KJ2W!87I06X{}E?9@XDv=v(-9KBE>-qLR+l z`hn{n$E&=np)>~juFu?=3i}$?B~5?e>HC;caVy2sfvwzE%*uviJ9GG~fy;HQ+?_(qt0-CZrleiv)Wj7g|iZO-*#(@!&^-)~Do3DTR(}Cj<)Ob*8<;ntt{s zY&NF&5aKe#R0v9Ms6;8w%)E3f3$VI1_`vsdtW2&^f!7W4N>LnL-nS-C-`Dspt}+## z-03c?$vgIb(Hmu7b zscg)G2))gt?$~N3?H_B9L?Bb}dM}BCPd&9S=}Q4}?JQP_GQn(#c}g`4lC_b(1ED<4 znY3vwp}jlIib`0acdCW+)lnliv`TqFX+DgkGKe#f z6gVr;3ROOQ}95nWY{Sh{e zr)GQCjSZa@sy+(WnBHrzcb5!5?v)rAlRww%E;+c;|IFL3LKL{>E3*I-th=u8%7Y<& z$y?jPm*FAYxykLl+iD&He_qUa)3X+3jEdn41w_43Jhpz2;+h=Eb{lT1Yo3Y%O_F(c z2aTyZ9M$qgKeFy~wD$W(|H(ZImz?kNm*NL>4>6@Pl)x?IH>I(qwoB$gwqR>g2rxR_ zgHgOhissE&k*Tg^7}gxYYN|9-ia1&FdS}z91FzKMdpk;A(k|5bs6bEAD#q>P_~Vz@ z^tDd~u?G={;}oB}Yv)%+M|9k`Lx&Re0rJ~58;g!_(@14(mX(%X>8E-(niv-9wwB_N z8MFgP_GmrB8z-@|v;4;gz-2#Ri7Q%mY$;$*`QyuR#Tkt}YIM~3vCF-(1bEx8I-{j* zS!-E-EqwI(4ts)HOIZFBKw1HYaY(f2y?s>M_bKtH2%r`gCnoh>#Q!%8{86e676sU? z-+KI@L@rZpKi(B-9t#>IRP?~N4s@(+$$i%Nd-4xO`)3ReAqCg^yuOdIZ`&mysJ}N) zfT7p|{ki3(a0}j9B4m79_q6n9|$5snZW z>ch0!BJ-Rotu-o;@MonF8|y+UbxyBzcEg!=wr`0PV}G)VT@VprwUz%CUPvQv><+!o z-==-&aifQ`wymhcrb6Csu7ISeS3-_cR~p;uYj6!XD?m2LCjfl;E<30O0hcTPT?NvOs{;lYB!0NFB`9)w3@4pN1d*s4oqlTDd-Vk1 zFX0UNB3Gc&IQvp2`o~YPOb`g4(q|X_mGCzWw3Dow4DN#?v>mfE9GY0uKgPiKe(MtF z+zEE>6kLuXCOOt7`i(Zw)yJQ8HCZHk9Y28uaP{#k_TsMW9|m;fnXz2M6UaSB_A0QJ9a!cV7DOmBTs9Ud;}?15s#ciL zN=H`JGIxHx&Tzwm5yT-A7SKFX*+M19?S%sh99LHw;uO-Z4RA<3Nr7=G%R=kn>#%OE z49jX9V@o;MX*who!F*rwYAP)U&WHH|RQWIDnMQBkB3+k#yw^ei=By;9Fu`ED{g1l8 zU(Bp<1vgaw@I$Cs^I;aj1hA{QW5i>COgfZS4|i&7B;c5beO2kpw$RU1jC_j+ zd*0@noD9j*-bj|P+o9X+T(YmT%3?N}5pa04JH%$f|y zDKG5jm)hEYb!ggcq0{PrKN6NCPEUw9Q^dmd*v1NTlmNabxt5=KD*}jlBWZG@IdPeN zhOJ0(7{pJsKUM$uIp+dU)Q?Ls{P*xVqqIkO1;bYLVSqK1;k54r|0&xfRzdL&$~3*N@Rls* z8E^KW)BG~i{5J+eKr`o>rSLH%QU()I@M$AJ{mlzd{Ovj+2O>rou|+aK_cT2 zD)Ef(Z$5K+sIm;+^6$>FqLa?iW0H0ZIH%qIVDsd>%Nlcz2I=8@r`smcV;T&a50==T zahb)_X4^vr`O)p zugASND2+^JwrI)wY1QDsz;7>FQ9EoSI%pu_o=KfGGKp2x|I>S_D-Tk07}h(sOT=Y; zACvf*!DPk@CVi(yzfD1zwJ_(`r?iTX+B_1_voGPnh#XMF%<(jj)6p!V%QB?W^F*c#&)(IUb<(9VSJ5WBhrxRHe3Ah>&ewI+>!~+) zaXaS0L9q+^#>NUwuMz?$WK+5*$^#@hZuKEktv(ZbY>v%jR5YPwB}cdw7Z3h5Aj{HH z^l$I6^v-f+8RH!NyDJE*dnrvzd1u%z15*r>vD>pwzT*sPADkakj|zs!G^Q_JbWM6N zDr;%nd-BNG-%LGds(*?8cZ)G>rm&&T9Jx#!jnAn(R>6wK5Y%M$oP1wVR|bBKH2`}D zRvXj29j9Pho$I1zOw#O{+&Z}`_OH)}g^n?se>AcYd^H19BN0fxtNcEZmcZ1f-EudA zr-A)Nlj;62uRfGU^aRQl4&JuKOT}i&JPszGSQF-xOD{g0?$Wh1pK2Rzzt0iHA>7FKIF13n>0F zs~VnOO}4RhmXXybQ-=E1(x$~{7?tjBwXZ%I{7fT%MsFdCuT)DrXK-@Z8M=~G_3z+@ zg7CXVj41=He__EnZ7(f{Tt4+oUun5Ke%)=y+%=WMD#6PSyBG+BoEW?;J2lu0>^DR6 z0MLk3V@b*l;6(4iIThI6UO%WnnZLego&Rlm8M^t{5Q<&*BPocvhA7vz(jIjVU_ACi zX1q7HG`gk4;^*hL;)EM3d8z0+id|wb*z5UuO_6iEBKOV(Y*&;w?`3cB7#w%}60RiU z3ItMzcm&-fXUfdquc!;ivitZppyD-)*CYaiX?)-JBkAs(FBpvR17UyQl^qEZ$ z7Vkyz`*5krY>YHKqjVp?4%P>l2Q(SG8YBKy@snoCASJBsL3M#HvksFF%)vLM>(eIE z*BY}3yHotJ3Ef5EDxLNhY0I`Jh=?->rk_3`-yr^pdgiaccey$S@d>8_e61at3?n684F2E3UrIsVue-BJTMI;=4Q@pwUdpZowyi^eX4Wmn6;7FY(Kk z;;UNaN-b!Eh3;OTyc$=SZJC5+BF~2bDOQX`o>Gf{F3MD5&BvXC+ceth{??14+Ihl- z1k0kC;GudExs3^|g^gvc4l#-w9X>ZPwCDV#{5!LWWt{ri%^V`dL5g3BcpS+|(eMDq zG#^ONE&P3N#+52n+otR3YROX|Y{YDUvkT!WLm7X*Tj#EsixnFL0g7|g0AX&{p`(Wa z_s935ykF(!qLK4Xq%Y5v)u17IGLId=)|vbQE&iIW@tk_2>O&!K_r9m;dFY(>q|nTv z+Ucd*mZ&UY%;_v`#NU8Q=@J9C`T=w{3$H6-?SnYsYz3PRI#m#)!&S&qw~o560Qoh^VErH)uydM$Bx#{v?PgO s$AX~tIj>SHU+!nGU#%F0cPALYIe82s6Z&f22TIS6>Q&hX$UH6oABX_W6aWAK literal 0 HcmV?d00001 diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_10.imageset/Contents.json b/PureExample/PureExample/Resources/Assets.xcassets/image_10.imageset/Contents.json new file mode 100644 index 0000000..2633149 --- /dev/null +++ b/PureExample/PureExample/Resources/Assets.xcassets/image_10.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "image_10.jpeg", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_10.imageset/image_10.jpeg b/PureExample/PureExample/Resources/Assets.xcassets/image_10.imageset/image_10.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d4977eba86caabdf43b080a98178be8aa607dcb5 GIT binary patch literal 11659 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 literal 0 HcmV?d00001 diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_2.imageset/Contents.json b/PureExample/PureExample/Resources/Assets.xcassets/image_2.imageset/Contents.json new file mode 100644 index 0000000..a9d9523 --- /dev/null +++ b/PureExample/PureExample/Resources/Assets.xcassets/image_2.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "image_2.jpeg", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_2.imageset/image_2.jpeg b/PureExample/PureExample/Resources/Assets.xcassets/image_2.imageset/image_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..aceeb18f8ed5b8ef0350010cbbd8b1c498a09e21 GIT binary patch literal 10263 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 literal 0 HcmV?d00001 diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_3.imageset/Contents.json b/PureExample/PureExample/Resources/Assets.xcassets/image_3.imageset/Contents.json new file mode 100644 index 0000000..5eab80f --- /dev/null +++ b/PureExample/PureExample/Resources/Assets.xcassets/image_3.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "image_3.jpeg", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_3.imageset/image_3.jpeg b/PureExample/PureExample/Resources/Assets.xcassets/image_3.imageset/image_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6aafb7fe38c706da06f3fce0765418015d8f7d68 GIT binary patch literal 8983 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񽹷>No#&1Nx;M!ytOdVy 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 CD?zRR literal 0 HcmV?d00001 diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_4.imageset/Contents.json b/PureExample/PureExample/Resources/Assets.xcassets/image_4.imageset/Contents.json new file mode 100644 index 0000000..3ea34a9 --- /dev/null +++ b/PureExample/PureExample/Resources/Assets.xcassets/image_4.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "image_4.jpeg", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_4.imageset/image_4.jpeg b/PureExample/PureExample/Resources/Assets.xcassets/image_4.imageset/image_4.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f98598c0667c851ba097a302e7d1ae5400c68ae3 GIT binary patch literal 9669 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 literal 0 HcmV?d00001 diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_5.imageset/Contents.json b/PureExample/PureExample/Resources/Assets.xcassets/image_5.imageset/Contents.json new file mode 100644 index 0000000..e8fb9a2 --- /dev/null +++ b/PureExample/PureExample/Resources/Assets.xcassets/image_5.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "image_5.jpeg", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_5.imageset/image_5.jpeg b/PureExample/PureExample/Resources/Assets.xcassets/image_5.imageset/image_5.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..736c30aa594fb28396165d026427bbc86a4a9c73 GIT binary patch literal 10541 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

pX;rnOluOLl){Yv?BQ%ab3$x+yP|RDDVapk$xg z!?0V%R#)m368&a$O>#5ptI1o*S<>~fu6-h~+X`3Nie-erZ?S;d1UyS5i5)vD6mqEi zwhRsFb$ilHv=!#hnEX5rHtm+6o~VaE9T1bY6|J-pIBoXsXAxzJX$#f|_Xf1@o`9m$ ztE(V|Ybq%yjQx^Fh@9=gMo}k}QjprKKr@fk#JJLciZ|x4z+G*ovWS(Tu!lSjVeH0Z zz@lWVL$@&aYm}Vp7UeoTJ5epdPaJC!%#vo+7JYzbmyNm&nd#A2K>!*FCEK}Tq~+Ne zs6lQ#gtu+M0tc>8QP8X2<9p(Q(}`QM5R9jU-}sYCl>}=GV9FSq)qLAWU(pbfN7{_B z!lXZO%uU|x&Fx;jpBeJHwVmBlw(0^CBlmVy%Txuqn*NxdQk?B~yj59!#8aO{b=2>B zlxkEx#<5W17=4Z0+nM3qaxg-mL`w}d`9l@VXFviQx2yKj{3p0eyEUzYczG~~&e+xg zI|*9#B!*7h`aYfWSH~_EpOQFgJijB;inHoUZgY%gjPXmxbL0=_##)S-rM_bXNY#Ry zl83^yr22z_Dn_nJY)cdEZc?vrueTj=s+>X_Ofc37^g+VV=wE8Ik$n98$eFS9d+(?C z592JK__sk+q`Hjs?bEaP(Fz`^h>ZLb9s$alS=<@tHGs~mv@u0L>U|N6Ep=AH+cY;y z6~fP>%3Vo0qh&l3rCDR7YZCq4v%Q(Wr-lSXp_U+KLdm>|3H$Q$!(kS81rs5b4~8jl z+C#;sxW|1=%vbZRQH6FOckbti7t$H>uuY)#Xc-+`}TLt#*CH7TzT- zlkzdOo902~@zO%0@}Fs_ZN};jAE{!Rw|HS#KmH+vk+;g7kh22w`{=~yW;1HOmA)_u z2o#NVDU19|>c=#k*b*aBlKwPtlAD-2frQ>uKiWQ9@@ke_Xe&T%nAJt%33rtd^BuO2 zbu7*f^!P2)Vk2^~=qwQipt8%#7AAYR@NP_XsSc)>Qifz9l5w~m5$hs6)Ql5JS7Ulq zruK*=l8W&N3|B5YG?eO+pE=!Q?V%x9`X~r+JFW3@cTA~v*S>JEwhVLM*g%Qhr|0|3 z4*>|`S*@~SW$_Rc3HzoAjkB#k*)?FPWN`>X2~&%Sx>qYBpcUQov}RJ;ymyV9%}FJ; z9&=v?=D8MxT-z2@ukts!C*$Ji)>E`PmQKNQ?RqkAGudWgmJ2;{uCyZ1Yi z5jky)}5z6 z^Gl~xbU88C)@;uW#g^e>Ia{T*1XlIH~C>CLvuti z9!7}eSRwYdl;zR^>ckdrDrCV|o_azW4B)^Hkpq%?v-|eCm?D+64gHTx3mi+~&-+TP z3m2USprVcxVkASn1{HL$NxR$tC+1x=Xmw@RD zjklr`58Bs{_#n4fk)ZpA>k_B^8vI~voS%f0Kh(;pU&v2@~7+C3G(id2!u4O6CF$?tdLqQ7_t+cVL<273UL;(>ex^a{bj9z&x2ld+tCX59Rro89L3-la&pGe44<0<9pu%L&sTeSrPoemRJ16gqA8tV+ zzHso%35*RN+)Vj?&cxJ1;l29h75mTZuK}M8nZ0BA3Q|Mk-dlxCwA0!8q~`G9qeK8S z)g*&?kC9W!<;<&%Ix46}a>7r-HZcR)=EEQQpfI?t|tT9rQf*qHmvS^xn< zDX8QYt5HOn2A)H`q$@-OD46yAM_4&jwM3atUWR`u>lb4EwSOturoNch9ouFc8=xw( zDIA%H#`Ft3Yi#U#K`(CvFK_pu&DE*LE77FCw5pT(A@0tV@IIlyV}gCxH+UM&n_XTJ zY&}&OZHo;|Y>8u<=I=e5ikD|;5^Q*=UQ!$Mfn6A#%Gq2}Q6sPc%gi0(_+I9EL9 z^v_Ko?;??C&|ZvCuc=K76tKJ7nei>Xnz#p3#j+RvFsu5O)VC$tfnuBEhMYXfoxr5& z)0Z~2ABzijG4-qo<2i2}x^0eyPhS?5T>}Ko!+&yxPT_S$>;t2ZPrrvV{0o_$Y-{3p z;dhaWTQZ@cS8Tl_xO4wX>e*W!r(!dhILj%a|X9 z%AwZ)E0Y>A`VY!ie#HtJEN9gZmh?Z8?uY;jhbI>NUQShrzYq-(+0XQ<2-|k&cla_R z|9U@nd=Li%_y%S+vF|t>)+z*#|DD#7`$!(LnL=q*DIfi5_y#T-v5t7~OX_lXXJ5+v zcA|HsU&E~9(hX4E_VZnu_*iY%JIHtu%#@#*1qUz=Bhd{?xcnMXMmk-D8j;N9*NA+Y zK)!*-2_Qg?<&^Ifc^l&1cE&_k{q4800itmjjduNla=$m%qEUVVwDfRPaCrPy*gVrp*SSS z|J{vuh)CCwR1m|vk|1R{tstzPMieKkc>(qyPW_ literal 0 HcmV?d00001 diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_6.imageset/Contents.json b/PureExample/PureExample/Resources/Assets.xcassets/image_6.imageset/Contents.json new file mode 100644 index 0000000..da8caca --- /dev/null +++ b/PureExample/PureExample/Resources/Assets.xcassets/image_6.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "image_6.jpeg", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_6.imageset/image_6.jpeg b/PureExample/PureExample/Resources/Assets.xcassets/image_6.imageset/image_6.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..19d21a1290755d2bf7cb07f2566df3a29ec7e13b GIT binary patch literal 11335 zcmY*;2T;>b^yfDr^d5Szfh6=MML;@9KnNjJL5fn9j)V(?7sJQ&)%JV0XQ&bXfpr=0szo?0L~VH1b~r_ zo{J00!^OqL%ge*ZFCfIv&&PM3_(jfheja`ienAnqIKL=Nh+jlPMFNJ9Q&dzG6jReu zQ_zGfD9VADn3&jD*@QSagj8YTFokm{pC>s5)&D7;L+O9V|5N@y4I2MXMM2@L7vN+7 zIze1CAV~ns38LWyoecs)005=|{m)eYFCeraFbzOQe=fYl0f4}ebATCXXdpEIvmP)f zKqH|7fg0M-N_vEF#pYJ3w$O1K;XM1Mmv(rhLe=7Sc?o${#9YlZ<$UaOAt!JN5Vyz# zN0}|VSSO3lw~fwt6kHsLgLLI0>Dv70cE~;a8d_n3ERs)RpT01D@;NprQDkX=CeeO+ zfF&aSX>9w@KVj=+7F~vH@P*9_?-&Y2miqcltmEl}7u`jLt>ftqRX%aE4g|y=+I->` zS~6#}>12IEzhrWV4Vs&{9dj*E=q7W2*3Oro4I<<$;o%Qvi|+d8gmjTA`YZthzTlnZ zdvJA3I-@t;Qaf;{Cuvfab2}a?EmENy9}vr^C%HB7u;L{!n4z-3vnpWF$NymWAk$X1 zUeCl|dBit2QTg$MYjvj_Fj+hD6sb8+&MsS;)Z8yuTbF(x-|z1xWqXJ$;=gZCeyMFqRLR5GX1S`b4+F_CAIvxr|-7z~1Ai%jz+8ZAsR*91d+ zpb!@Z!Pgc1=q)}=lDLdKmylz45u=fgrthX;JY}aUBJ=9XysECLBHe)}`;CZ%);uhC zJ=+k#xUrXMmQKE=0O0(S4K6 zCt@l_0T&NKv3^W|v_(_2QiZS#O9vcRnGZNefi} zZQG~%WhOtZk39L65vVQx@P-d3F}FQCn+qsp8Gd|aT`GU@-4o;IBW^RgKlI)4eM^;a zix>gvk4BFT{xK+VWiVkep|wT^GSrABhl7~4{%{_48k3N?rX(kQ@?NU0<5Z;AtDm(* zgaaoE!)t&vP((5Y)BbroNnbda75d~byFxq$=}%+qe0U*Ar)Z?LK=swpzucPt^V;cfAIV)#=Z@$|=e)HgJgO}*;=eOA(MR(U9)D~S+B@$}A(Rbq( z@IgX}h~9g1?gnc-{xfRROG!FCm1n^3GoW8@*<9>W_?@nkCE(Jw>>xxeu@AKQdpbUA zS8J$^gYr;Byn~tf;~!sPSNh_X&!=en>wg;VEt}7{?f%)%z6h_ICFYy~`nioqF-%mw z;<=IRnbIL>D#{ z-!$lOjLxZzl!);>yV zKgnHwGN@jGB|=Xcty4cRa~`Az-(`j**UderybXyvcf6mT)RjtpAgOJ(VS0*iT@V7?pDH z(XWwH@P(0b6#Gt^ge;?3Z|=MOR{uDX!#S{}`*EZqTVKThD;~3O?KdH*TbDy~heu z&T@;YZa~$@%yX^vSqH0CmK630 zF3DXq0ihj-(zw|e)NZeL*Mx|RUQcK%P=i!z8@Cloq<3VBPpB?Lar>^G0pGYEoEjeq zt3RlJ`2!-zvdzR+!{*%C@`-+6Nf%v&W#aT46`ddSA{Fci%9Ny_?Sr_D(u`)@i z;LI9ncz?Xj8o7pLWH3V4Z5l{L-H2TE1jn;b2ylVpnEsAT`Kt@rG-lQgx+UP^@8pB$ z*IKJl^`<)S8-q{|S{&A@27f8qpoO@%Uwb%{@)S~b4TMUX#Rc__BN7*H`DHwOVIygz z{(6?x`pO6r-wCq%81tv+8qzn~8CFh8$cx_ff&9WHyaV z@`*X{S-n7{WSYBU?sRHKVTpuzH(F7Xr*0mMAG%*db04MI{4x?{IM#U$gGN@SQOIo_ zkIn$i3_LNtP)CThDFk5bSlj!sxe_U9A#e9F{l@xF+XWpJs^WXbF$)UE^#TaI<>OF0 z{gqGhYFRE{GRw-UC`lP}rEr?kHWj{4O}>efz??KtbyWY;VB*42--n#=ic|{mSMr71 ziw$PiIfO5&P5aF34*4O%>t^;(gZ}pRhe#y%|6cgF+cE0Et!(B&a=vVo29)XUV>WWc91=>8IG~1IHAe z!j)sz6~6I4D<*vo52N9Px);vZ}dX-3IE}WF}ChBn|%#e z=2h}jiPfPObD~Ez`5rkf8%~O2L1&O1{+2>XNY;{ap zxGIRXcQ5dkFnq;{J#wW6p*E%#zt#Iia(HTaz~pe;Uw9#DT|o)O9UlTfmzNM+xIrbm z>LasqPCeF(=1oOO1!3})V~@SX;e5Ak0<2#;3I@_)#Nqp=S%kDm$>@rB&x9##|2Fd4O46z6-s_lil)p2jv zB*)NI25tYrs%yCRo&fE8Dp#_JASJpV`M(GNY+;cVc`bbBx;I+Fu&!d?j+s{^8jB2W z6ALg(%W@r3`p!2zQ4F;TPsH*{2X32C9<$&|+m;Eh6?WWuB*L;4n zj#nKX3-5gJEgp4bgERS7%m$mU@8D0M)s~=jx$iO^wsu?CkwXt3wl9at5X{xArQ~Pk z9p&+*-MG)PDKS@+Ve$rKO8l?Xs6^2`o%`x*YohkitX}hL;w5&yKF#RutJ80=P|$xW zrs!ZU+g-qyMi4ttR4Q|SqTBysB2{|2gN~M;v2|36Sv7m-KPH~%j9Itn@ztjy?2>M~ zpmLb6p-jqMY_oJON$uH;%8nsGiOUhD#_)8>176P~L*m*@IBpKXK&Th?rKx7t@yVAKI8MFI274JlJs5 zRxKb@SR`@`wg9}*IMe75;mfqF9mT| z;#{R$*hD%Xc|P^=tGs23^dKk2oouMlxQ@zBYC`cYJUk8xw&OqFRwzTLgQA{lyxdXB zH-_`PUjLOaSNLcEpf#fV1wM4S7U5PuhC&U(=|Vv$9h(x=mrz=@xCyIvvYBc~8;1e( zoshParcGtsx~Gl$FThYfkYTRr=e*=6l)i&l_hsc9$)lMV6li-TXrAe~v9YM2L;Ra@ zeEpTt?8qkGf>bXVCngJxzS)l*KZO{nc!JZYIDKHp+cnVyz45p7+^3I8GH9{W@iSof zf#YUP$eU?S&HzZqDO*=I8&(|SWJA|v!oI7iF^>#RXS{hbV9>!H5oa_zcPDv=NYTVv zk1NP{lJaZi9L0Hf=PUSs5yOYG4!*xrL{n+wjHAUjEI1*hmaDI{!)S%#Y>6@%lgKlG zXe3L;jHfaSAq=|DfSVe*{j3>U_s|yw7JkqGX zy$WuV1^kz2ND?Xhr{c^?5(S7EM)aNL7gU7|gA3D%B?Y3)W z`q7e6>}PhZHFQsQp+fB&im;8O{0wv`H~{f1sEQZ>9`0BwVihH$KY-F4dk zl_499malwxqv+m54r8}Z_w+I8iT3C16RuLXSe?U}{yYVw6^^mqMf)}+wu@Uv=~CK+ z$)IXxT39&mJ9c9_xy?=5exsOKm;~mzf7Pr`0C>48d|q1`c*NTQHv490QsQV@P^iR> z-nQZYqC%;ZbLs!tB`;>+crmleK|>lq-oBpP{kOeGt~a<5XRQsnW&7u+XguS<6k$#J zMOJTw|4CJp2jkTSG5m&LJ#W<&uz@>G9?szCr0V*PpM_VGMqnW#`n!#2CDPCem&4Vj zeDJpM&I_1A;S%@`sU~rj-C9z&s(E6q|4V6$Y3N)AWrRR{Cb;6Fcg zLOkx3*35_4{6mVMRUR zFJuuK_*wQp41!J_5~YKbB>9hyS#t@c=9@kF-A1^?h&6rZJLYm*io(u;{!ZfMckd3_ z?Pr?2f>QF9y{U?n7RLiADQ1kW;&#lT61N1>d2XUQoSWCr4vj9~ z5}fasODid*l-d3vz47@ zWkEFQQ8mR9$WI~yC#CQxKzIzt6z>gzi&CKXQ`#Y^<7hZw`yKY~D~qyL+|{%;Hp z)g33RFli{89T!mrG%6ps2tP<;3IAPp-%V1uSvxJ$^|SKYOpKop>WjSP*ss(HR})_D zYrBFE^*I!TTT9EgeT>pvr8tMC5#CM(C|)CDsPFqm1`VApZv55}pL(K%R0(1n1-!t1 zGk5(m=6D39$~ehZ1W8tf@zbR4UOapQP3XYpzV5n(FB{HDt=S6YWk!bXB0_Si!4!hg zO~rE6>8OMEW--N4;VHvc2r>yf9CY zFjtWewJj=NYnDS)VV0%s2^1J%Z5}O7TTof^JDWQT&R2Y`wR9Ro-Tuy=EWPoUW_D#L zb?&{31KUGbntgjFlYPy1<6m*XZs-uWJYFVRAO?Kbl0~e?Bjwn#nNWbHOHlh4oEuq` z2PeKXiL-8Wv#S1KF7q^c_&$5`eVJUXRol@LZ&$gtcLxgWV7Du5{%N?{_Io2~DBRjB zS|%=Bfq0fDKlb0w=Xk~u_8n?8zYRjBw7O4bmiInYxO>OXx$4%J|EOCzZ-w@=S1g+; zL=FO;V2^HQY;K{-w%=K^zUh!ct-q28RO>_mpc#R2oRbL)B@QjCMu00Atj>2PoB@~D zW&ipyF^wC@!;b)Q5mUXZVuEp7jCpPackv;x`&f&DH47WshJ5K?V#cUnBw%lsCL z=xx_o?#N4jQH}d@N%e7WbA^zxuIE&Zs+~HlejoPa8h3_pl*}*FUD&mixSKt1m|3Sb zd<02ioc%sLEQyz+Zvlo4GFi*B*%x)9a@1h9ZuQyE4BwSP#{BU8E#r)0ACMOo@0xA& zx>Oy8@XN+d_6$jbnZvlIzpra%OvemVPrUEo@n(!@X0td-aZT@IX&~9hp(fsUm;Gjs z>R)EQhv5F8-RY3zTz)ez#MR`tk5C-((vxKSG>wi$1@^Lkonok08LhKnwxxRujk&13 z)M7_^@H2aU%(6c-rg?8sZmtf^vRZ7U>*Z0H?!ppT%Uw!0IV)Uou|r*_Z}eA74xrO6{F zBZ?Vfs_j;=w-4#?UFgqH|6PoDckz;ev%qAj9RdN{tG8*cc>Vl4SBM|-2;uMWS0H4| zl7rTzz3e-sU3|x#zOhJlY@VpwsR;+ghL?U!}w$ke!Gs`%C zeh@UH=kl2Llu}nHfV(_a2gGcQbD);;>>I0*mmgXL17EFu4;(F(@vVspw)}An;%biI zjYCiEYCFp({2vz})@%lh;iCSKy24s>4?}Ky5Fj^*ECBsASKI5-i*Vmr;4n!)AiqC7R_%ZY|{RPm%g>6rcvbOnOP z-Kl>4Kz8cL4B1C@Pl)*uxS4NqgmV$(zIMA26)*{iwnMQ(B+t~jS zH)eM7I7fI#WZ`-=<)3s{-@joheHprT>b~69@Vm8btd??D`$L2?{lN@*w$R(8^jQpm(!>^f~M-Dl>3JBe=Z5g2b3 z&k9EO<;qMc>PVXQY*Np)bjhfD8VLEAFbQcMc+I|afGB))@SWH@0 z=ySf5|AuPl5TwQ|h}ic9vD2^iYnofK$~aWfFNU>r@%g|#apqYVgTvGKp=@Eq6 zWkm%v)GI#o67DR6ktJz3Ugx`pb8}9acwJbk>T=WLx5~u}!@IW-28nR&MTFs^ZTBT& z6no_dLkX?e-0>VC>N?*UaC=gB@LOaJ9$098mlCw^!(Tn&2r!a2&o#S_ELk@JlQC%pOA=MwzCB=1+(#*2>_Mg+&luU5QEi}-rd&Oe;9 zSMb=%nyujTcHQlu2?j}P)@Cbl4tajw=vW)5H(iATVOB5I_mky1PsFxytk0=Oero`1 z^@&(K9G-6p`#JjY_d;1n)uG{>&l8)baz`chq!MLl+;WCrlSMDuWv4M8DH`M&pV{dC zT+fM67;e39PIZ2_x#deKtEpfAG(p55X|i(plqwN=5~uU>Pw zErI_oBwQ(rP6{U4wTsDI73QFG^%u;X9g*cP{%S;HUrl=c{L4*!mM%D<)j7?1FV>8f zUjrj?J_ch;Yxd8`R)P)ZU_ zA*l`b6n|_OXC@*sH))m-?;69GnLmho&%r=%G!{6<_HkKt@@s-Uzu$pEe*aW?DzidW ztbr6cI(RxVn9k`shTgl0Bvz_al(KG*8|=D`%df>eTac%|F#=(6iEyX(y34(9CS^8c zY>ecZyH8+@N~(TR*r>%{J(fMrIA>elpacc)=g@+;k+YE)+Z@Y&;h5ED(Q>xFGj6Q7 zxt&W!RrhhElJOtq64N^@-E9SUU85Wwn9`~}vl+vZEq9@u{|)!-$)zdKy;d4pMRmrpF=LRZBl(GFG6+0g71#_HxXF6V%23<^( zJylULH5`EH&c63D5WKUWx$_QP&N7h)4J4On9#VYiHv~e2rE|h-WGmyNLgbmp88|sW{R`;_qsY$uN8jXsq^m!j`0jZOY z+Fwt4oK(kHBd9^;lpDzd;G-I^S)0$*y`mu>vzgL1^0MwIoJbOK2(>m+E$pk8%u|LZ zaIcx-)ajSy^_&%?xe12aoo^2~ufGa&?tbJL^Y$MYpoH7yooMaw{r-)dAZ z*Hi@?&>%~_W`3G~WwMiSwte&*f*-ZHZTIJ8qYzI`)EyGR?xCEsg4sm5c`fCRl|&|r z)RMzPTVH<$NX~v|Q648HPz_DAAvOany=|YC!Gj*>7O=ks!DTKn0?cK%ua+zvQ!Cnx zpAb7b8us+K(j^^h?99jhZD))Dg@r&aY9k`Zf8v92QOg|GYGbbeRT3%;xS(m)n7okx^KNwTyT1fLq-WqDZn|M zvX^=h6wW^^1*!vtJe4g_;mJnz-2C9vDqlc9&W*Ldi|HsNux+D74`8T{*XnrFK6Vu_dC2IR}0h}I-YZGSa#p~NveSj#gQfsrW`VE6xdqFfWmV`{2oFsI0RGwQo=!yM*V=iF<~?Ih*77MEPQSJeM3?ixJuMJ5*T;A7j|D*&-+_>fKXz_VErnbD17HQ^x z?mydl`x$h*YsYim68zfZOT<8UA@L1@DoxEZ$}Us1VNHhaz)x-gLJYqe@I|j<^V;2V zvjei%q%(00M>u~f+++=0Ry)ofWMGZHMYBHGHry(0rC|~C8<%B6p3&%E@}eT`?`>b+ zlXYc?5_8lMAm)fWyD+8U#r*??lV)@-CZ7qFdI|GK?ZNHd=u3I5n@J9x}>l zU>9rvU8}Zb)TrRutnb=liEi%Bf;1xsR1lA0E~IU! zei8g%JY*SMsA|Cx=vK7wctAbkl{`7%G28t*4eoON2eNsL)0MSsOIt;X{u9G+VXDt- zqoC@_*?&NOW9gu*i8Mf~_oY;k$>n9DR5$fcLV3Mi@3pOmdvdw`*lx50a#xsO-5+Eo zQM@qR7OAoZok=KIx6v-EHDdPjjohckzD>Y-p@Lar9$FS@2?dDjY3G5oFor2duU)b!Y$<F337wQ#$Tthn|vP_jKWPbntmF}Tp`ynrR$}5b>_5;1AJdfKTdXb)p zB`XI0fFfr*OE1P{=OFxd&JA))qQZ4-o=I9V9}u<0TP}aDv#aa3F@TeGsKVc)z7!Lx z=~@nV5H2iS=FumGtU*gGym0&`-tpM?ZePa|xV#`jj;<;OmQZb0jiFi_9_XqpGV#Hc)bZ}5uO;r!M_|F-T zQshV==Q9E^-%ui(8e0MgV`Pq3!b3vUHn)F9rEGVGT`YsO92%lcgJit4c95JKSCz4- zIq0ry&xI1l1BjoIlIE;NH*+m+{59E`@Ry-O)4H?thIezbU1W#rK|if##VCJUZ~9ny zozmrfSsyE^#IlKCV!V%Hsx|nNwll$(R7#aAnlnHAl;clK@TEV(A76zxUOAD#?2VV( z9-Dk}#_N~egyOqn2;GBkmjKB7M{cD7CH5gt&;R$ARSdv*3I*5@pK!cdlOtRvCxHQJ z7n;)}ina?`d+4<-C`=Zk-m<(<0$Q3Cs(BEbpXQvbh|l~d_0#YtXg9-h4l{0>KigZ_ z5j}1_!NBIm?$TByXY=dg{b}Q$ya^(ApUEQjR7w!04^4iY0Xgk>&s>B%2cv$##|s&J zW&WYBuG-xo@88Xa8(v~*M-Uk_etk^oxx&r$J#UOq$Z!lPr?^v837=O#{fFAzfgWC; zuaeP>ILJy17+Ad=cBuClY=m=Se@&HqZs9hmlm?@F+IIKfRJ}P5(8c}P?ac=Fvg4X? zBiXryMPxMi-jnQ07WW=5lr<2cLs!@!_aRi=q{2A~I zToUd*V?VI5iq6}LFY{_E{E3&@8Eb4 z&|b%&_OG|O)8tiuodF4dxHhe*ZN#O1y47>NTIFlsq4>PB<;Q%Q#jwsyOrJ?x@!Oj9 zf)F}Sj((SWPB#!+Mgw zSJC@6oWY=3ws^KhXLIWB5V!r`7(LUgyjYuSX7&jKOc{faWEM>Rk%JW z#`!$W3u+y+RFW{nL_%&sB7upt&GfM3$*xxE9d{UD{zU-rm1f^4F6cQYbz#RE-_IEf1C9Y(X-aK3&EUuc49?KlC!D2&< z!R5=Iygz*!2%dk*Yq#r0OR7{{1B<@QVb3*F9!T@lmkHhKE=$+P{x;u#(6cW zcE`$or-OPAmEo{WOr#)hn~L8A*<79b zL^9z|7(IrVAk&yVVBu%-qQp$=eI8^;0*GOtLAs7v-RQ9J`$SWu38hTnUqan6VOZ`Y zX<%VOvC`yuUu@5w^vd{-4-ebqvf9j;@Mlg>TVi2bxESSnhJ|1Uroo8+Ub=b7koBP4 z--cZVG<6)qVb~%+rueo|c?l&!-M6 ztXYAO)=6}M#zd`#aPULPOz|sVb1@4$jWa;zC}oq$hXoE}Hkcq7`X|$7R*B!$2i?&( z(-+LdJBGjf&O@TQOUKv|bKP9;eHRho%2NNU1Cx2m=c%=9xMtDN(ewKJf>*sh#Aty) zX;c}W0UW!W)AKFEdQ!QQwo5Jl#FCyuixNFzfWtIk@mobl`HkT-;06v}ciA(1;DjKkNE!{CH(QGRQFq}Xn~6>`Pu)s<_}Z;Jd| z4MZOJF0xAmswo_Uj82!OsxA{zGS*BMg{{VQA6hB`#xi#K1^hjT327kGF+qx4c}x9J zz*J*Yev&>J+erEQvJt*4W)8kXAzWhatUSrE4A)hCtv^@>*O(fKmAOu7wDxD|g{5Ux z?{_+ehoB&kbtiE+0QRlelCGP{ot}EH6ABf^Aw#~l8ri&Eaj1{KYhc@awB1^L1`txk z4i*=5bfhV-w8$nH01KMJshK=2^E905xcFc&Jp6_-n;O_#JdRv+ga+6KuIy!1e>w?Ez&otY>SJ3{87@_$}-BV&Of%lw}aikERGg zU#sqwJW}uZUo!qj107HGtMk3w82g@Cb$B{cqkYYkc`%zLCFrkW7OJT3E_OeV)&Ez|yJy>xO%XH7Frlf%+sW_D?wA#YjSY8Q3} z1iwP)L#sI|bDfgx2s-^A_-6Ji5jI?{sjAIXR4LYWNi}0IhXBR*ZC)(M%1Uyahu4`? zQmq25ZJ8WqY_-*@YYge4R6yoKAaPHIbq2UCLj4e9RFArA4n6i!&(D+SpVO54PgXV^ zjv3X4(|AvhUFZo9_eJ*v9H~E3?z^u?=6xkEMxSWNe&E;Vm$7hZWZ+ck1kP89iO$-Ox1Ed?b74K+12Ej8u8!cI>{`Hq^Jl%AL29UI5{_wUJRLBb#|AyzJK4g^e0 zOdM<+N<2JDK4w~GZf*B%x7a!?g0yLEWg8%^$fP_y^z>7>Mqhp=*iHJcrs%_zdPu6Q_7lrX{9RU1?;U5Hi zfE3^nZ@2ns^>I&SWdEb&F`(JGSCJv$kKINP8f4KFEGd>o~L&(dWum!KtQ6lujoS^ZFbN_Vx!#EkCAmvsL?$ z2>f9Lv(0=o2pC>4D(^pjv~fXQ-`~C+A{yL6(tT3fPUKhCi`o!AJ`B7PZcpKqu~OawaA~#7@s(9AKnp$q$5bEY$R;NBj)^1TZL%ICl^&W~%+>+&GIGLtj5re+iYBPlK5|*Pqd`q|)oi7Fl zrRv;e3da122lyvzrPg+sv+JWhSKkc!U3Vo6A7lv7f+<{3pTc-4)Iu6FbP|AQ%BeNC z$*V~YXwNpId$$^iPXo;~*$g8z+PGIQJlF&43}CfTxB{KKM6x?y@T+dZU)=ZgqJNJ!ao=5viQW^cKMCE z6xpw3fN3@EQX2Za`CfoFPRh8&o>BKD5mMi6^5$rdhKNiXEo^3GmW~sR-2U#17sdaI zVdG8d46&jx{DmGeCV+$5prd#p;Yk?va&kwziUgNG)nx4)4-)i0!)P%{Fp!M)#Oflv zB0Qrl7k9={OQf2PpnJ4A4?UM>V4me-?56OoSfB7S}2AaixN!k9A!1jI0;02mh-3S*S<~)S|##WOmaCvW& zbORY^elLESQD8QN!xDg);yZvej5 z=W6W9hW?yG(skCY_3={cJL~81pSCMVOGf@I%%ptm+ z82&Mri1E?ZIMwT%-s&ljbe;H|@Prgh;-Yvy@DU+K3Mb=NvZnG4tr^v+XwNEf?lF(} z#7J@)QPohvdqpmja9aYf{-(s2XdF=|@@*=kIZRPaVhOJaso8tmTGNL%Y_8{#lPF+5 z_}9J7yS8PynHOGDJ@?O`nypVr`6v+6yi2djt%!W_PReHV*2pcu`utU@^kL!kh@5@wL$L1MxR1eC;__I$M@k`lQsJ^EW^_H_;d~`tkjK zSJApWTy+G29iaRFD(0GdI+@GPCTcnWz0a&N9h2z^^Fmzyqo9`-@pB zYOXD8HFW-hPmifGCpdDaUMjN{oYF^MDz;aVIi!v4!3o*>Yn4ayW+7;53SYDeD02NT zVGXq(y*|=L{a4B-1M%tenl* zq1gzsbldtfrmrGF`?FiI=R=sdQ|;~^6NLu>hw)Tu>1|8*(qu>}Brs(5@sn}`WXpG?Tn~^W( zDNwrrRa`DV456Obtn#_J*5BqAgYlVtQxJjpCQ zr{gpl*Fy;OvssshG#_-y*V-}ulGiZWjc{tMS_sC7zKJ3Pcm+`h&-e~jGCCfe8;-IWj z^bZ6jeOg!Fz!Q*WW;zwRV@g#K-ty(gVD|8T8gg|%Im~r!_>Iam9eY=MFCSs+65hdk zGA^7UYU%mn#cpOP#^)sURB*w}3x<5IEvPIFkdQMTWVdGm3!M8 zpp9n#N|@ehp3_o`9e4WPT5aiG>3B}KPH$hb!m)>U%=!JzYm&~uiy~sfx{Z+K8-QBo zKGi9r1Ag@^rS5gFT0UUr*`Ng}g+r-}Z8`imG*A92?RjCE_iGiGKH^Dr4tk@`;xZoRBIw{)youn=)M z=occTO#URm{02bBWSQO_dIQXNQn&=%q|AG;Mfh%?(}L+j0<@m0UoRhRaC(`Rw{_2r zT)~+(N{>WQiz)=c*5MzMFAmW(&5H$j)l~+j^fMWYt~Uq-AQ>aVOHG%!%7b_36@OV? z-T-d^;d6YNMV%-SKbp3%Dyf97jO}#m-p(q=hV2v5h504tSkW}39X$T@%9%l?oL|!v z0ydpv#r(dwq;Zuc>li6p8<`^3)avm@tZoXuiVZKwKHW4IO0Q%@qwJo85yS+zFqkt3 zgqnR!g<->%mItBeBvxoJa$ygLSU*`BOO3x%i_Y1p72vkAmaqmrGW|mA(#t$WsT;SY z{w*rEGsaXr`44(#PFSGB|)f*29DcDYU9F zR*nvLyUd&MBD8Iq`^os;=CQUiPB)YnaNB*~CERQ!<=;{SDD2j6`On70DwMJ8Zn%R@ z2p^s$AmAO8$t6pK5Zp{h`)a%;G*G%tHA&pC*QCX*TG<&8T^mVDh;l8+f^hh{1}HON zk{yd28%;}D1BguK;3p;QnRf$E2NN<2S!qjwcqvY63I;JJU{vw7_JlWYo zcfldQKtZd*KlVw0YJDp~W;q16fqY=rar#D$IlFEA?=elgMVj;ROIN+Z>YQmc0SZUF z3PL=_ra!UuBQ8roCj(kXZKy$6@`%E!7hXULUT`YcUa1iOtuNf5LBUM9FAGnZX|wE( zW@9&(ur+ze&{=pcICEWID@6nWVh@UTgT;_cR_({3G1f;CNl|B=H!%Do118 zji}IxE6}>}%-u?U1Ia;H@pFTGcBM?s=}@>+zMeNOkH%pC2#GnJ$#=n~q15&pwgiVI z1>1+bVi=N*nHJZDo?#t@pZ$D+|5vx!yWz%F`&&9Mbv+MsJ|woSogAT}5?4;9iDxkd zL5PO-8NKb-Jmk~pg^THIjPws{N@9^cgjpDZ%u+L43j9;Vmx6`z#soQ@>Ixa+7^aCt z&8N5Q0SRNW46X4c>m~S1yjwib3~JeZ-IW@n6ha$SI3o-T5Q-XXc1?!|CHWE;v_!k=}l^%>J#obOm3Q3!mq+}lM zJxX-4;&-|9NwX@E=+?Q1u|fHQ993F)6h3>z4o57iRY{^S#{W?`Hf0$i#Ci>D=8B=R z^^z>g^!7WIl1Na9qAmJ6#5A`$CdH^Fk}rCi;DM9FiqAxjysiXu74=^Gsh5Vr?n`2s zWDNY0*#E^2m5%&#;rbeuHkqo0+1V1-=Qz>W2%PFA9`{%zFQ-hqAd}$TVf(M6s5!dq zb`!|tLVV2QQ(J|`TQ5qSj=E$jl=U$eo2@m;G3N2tpqYwh9Pn%ZJ()f%-exUGIADEn z`v&&9BD#ZLs4FrK597tT#927Ay%|RkE(~#KQ*%HA#dWDuYW3N~=)|x7efm}8Coy0E@T$CQkn8`Uwe$v{*;p?+(%Pl@(4dc4ERb{U@db%8IepT8) z*A~1ex)%R~I`pSpu=BinZGTP6!Q#RNgbU-F(RPZSI+fwIZX=;2 zsCn_SFjav-SMzDv3&juxj3}>DY3dzJ$IAAL2T$N4+n2*qT|b-as^jl6!Pp`s5#SQSPNg&lGMmdApky@cVTX%Z*qFTwK-$?|M>VscfnXpK zi5b;b^xeaoQ>A1FxQ*9%GxVg`F2hb<6RDLBGd=7KC*$VHUB{>QGmih;p9QrUlehRt zK2*X#A1Ce9%Mc#p>chd>VR?N*S09ooR3e_nWA~AR4gzV+mnBybykw=DM7@g+IEcWR zG=%IJG$()Q1jnh^kZOw$7b0WCSOsgU#v6AS5TmHNAiD^VYg;VFcyGx~Q*cfO8+%4A zb}U&TLA6+}`6^9}d}x+TVh?UFbLkEI5IVoxIWEQ-2mfwV{Hr&qT9t>5stya@+oE$8 zQ2Jo;lMnF=6^S7Yov9u+U)7EbM{hSzFAlR~wsU{hWq>oFXdoG->5tf1+5p;olP|7j z8r^}ja+!jCfzAcABCbiiM%}oc2jaVKq)+ng8Zfy+#KEPyynLcBOEGTP$>o7AiMO&j zSyr>hweIslutDjoFHf`~xIu+Gu)9o;c@P(r?l6m)OFjFJetDKF2?rMMM*l+^yJm}J zX0zekQ@tA#uw|E^FtgiuGT_<{{)`DPBU5sKx&d z11o@Fl>m$L2E|VffF)*z-A0wQa&z~A=p(Vx+7F+$_&AH|uUe&Tu<%I^qe4?h#?*^BsNI zKaZ$=d8DI@qxA_88KPCZo=bvn#}`imyB%}pq&sim1Iim@{XgnnYY=)dQCG{e8m236 z#&sbwe9e(57CJwEXJSrT@>JqAX!xQ@QpZ0^6A}cwGXhuX6?=k7B5RcsS-t{Pvucc+ zTiXHa4Dyq5#k&WKWp4ai{L!mUfD|$zq{p=#_GKv8Fi}9W>Q9qe5}S0rMqGXazs0l2DsdxiGj|5$!ChBzB=Vnu~v zy3(q&N2@De4Jt9Puhfw@@3kV3wc4{^NVCGG({+^xvPz}gM^@>vU6+-tM)U&FiH^kS zPB~Y;Jy))~DL0pv!XRo?L4&kiB5gWo-XTr?qGYF3-JCW!(=>M@z_Ab>69dLi6dkBI`6iov5W`?3FXw)s>Idlha^;DFF0v8&zd29Azu87B zsj<=|@}nv&ko=?jO~T1MwINVPGp5$Ay@-iGCEX`X}H*onu8Tm z+km)|50s8%94146XNX;ogr>{<#85n!U88HY;ck_t@bK*GYfUj%;ePwM@?0(Hc+9Zr^`B*Qa2Zlbt?PW4r?-PX15U` zJQ41Y%4$&C*A;&VQ)tEMNK=+scd+LEXnpeQflB|O#5^J*Tx5H+GW?~@wD%+>iI9st z?qGcT&Wm23y5*-QSNaZ>LVbEo`11veBIbV4W5&Zc7L9zk5jrU?|6{835ze8+&|n!x zaNV8PZ-l$sqlJSJnh`Vk#ON7M~ ztb(1}1(Q1e@sa+bc%BHHKtjRv(Wnkiv}I~5S8>x>u%dXHW+RsbgC8Pr;jrV@tu~TC zupY^+vCJa{B;Z1!0j*qAx^By{;c7dM4zvV*%EG+0C{x{u);WOElhP~P%HY9#Hn1`r zuho}n65_}oNWA#0-Z!L;Ru^84VBTh&c*qDZ)^L(}>_?m2+|jXKWdme-w#t+jV5CDDyUaXFq>qp65=Q+7^A(FAl;z|Uj^-kp$m!cY}4=^{~kQH>B5N5HJJckx{xbPco3 zxDMxvC<#gP-vDRv9eWDB?)~SXuiqc3-myyX+>FXPH8>Of*Wip~UCY0e7F*OcE*_A6 zk>4OolJR4b3F708%zuKWDv%hr=@CoZ(YUbnA&?V@1PGOyo*sPzz^}VmvLWmgF7<^0 zr*bMh&h)6)Aqwex!M2G~BJ#4hCyxqUqpA-T9l8b@uC6Sq2o91~SldNubHFo0h4wSe z=zk1!KRli$okbbC$_oheAMI7Ywui!7v;n@~1OVC8C%wR?=h!J)4^Z^IVW?#2YGbQ! zTumhb0)UYi^>^j3NTxFRD_9Xu)yin!j2|WnID*}y{xF*Fncmqz z(_8x6xXR7CSKC>$DVK_2!y^4DH77ik0FytH36;Kca|lG3N@AJv*Df=8e6*%>VwoTy z$GVMWPZ&eF{Xb8JuU*50Q3AH9weN`%wULbUb!yO&1*XjulHJ5ydC$kaZdBc5s{u^J zHuBgyAVGl9#ynO;he^LBGm5l+lLidM8cpRYiU7DCG{-f2L97p-Q$se;1^}|YyQ`qp zP4W8G#1~l-5(gze7SuH^9(~m+P{LD#6=^FM^7avMPh1_w8U)T#6dg9{s4ihK7U47i zHa0U<4tNV{)R?Olo~7Furfk9v{v5_fSi|$OMBpf>(^l>B+asL3Bk|fGVK0I0%2&ER zt@Hr;Tx^-sj!C=^V@-$`?jjFo!g8vR0M0!(rToNPH-Y1i+N1HH?x!q3@;-K#Fz# z?0OeT$bE=uOD)fHATHXFP1=wM@1pAb3WYk0YWsH_nt8~rd{fB!i^WIZ7x=U|Qn7Pe z6u)#BEa^<=`xDy^D|AAyk#W&;m^M=#gbl;X&C}Rh6OQa{WQ^9xLC6SVo9n28RG@fW zPj=?$yvkNz;1pdpbheF;;XCr!F>$?m%4vSB4*Hjh+=whNyk2i=f%a}gh3~($EQ&-u z=41D){l(U?3TY-ILDvO({GCX$_qVDh6jIL9ML9t*DJj!)j=TrWhoDJH-F_ zIN-zA27f)EwmLr&Nw0)&#`ocBfHcQJ_+nIaiStdq!CA8_HkLvV?p`Yc>YYvywaV~y zIpk`r_}!h#qU1n48JBp+h^~o$tL(adxwU_c(`Wpnk7yTD@Wn!tTm$t?gEi+ICV(p$ zes_}?qE{C?^bGWknHPhlV*9TR{k)m8PcP?Jh%Kf+J-Sh(Ra^{EGcN{_8RIyuamYdd z>8IO?=X=4iF9uyRd2EgenD;&3(6I7eyc{83YLn~K5S!w*DNl|S$$q1RP#kn#<$STy z5F!^eutdT#p*puzaqxn&{t^TM3XMfDG#gLN5)H?7)xjjBc)F}G>7A8vT^`uV zb_TMObPDN~Y+EIov_Ity&>~#KW*`5CQ>j`ji098#))Jyg=+IuYUm%diPn3{E1o&;W znG#1~nCvZpKqLkSj zvZ?pnAq>2sMPCXTy);xZ)kmy+CBv?V<>`TmvfGuC4F3aCT90GycKP_J>d7d`-Z#}` zeu;`!u{nr&S2J#k)Hics;+ChQtVaicvLoohNHu29c&!IGHkWeozugUZiiTb@Waz}B zB&gjMzQ-OpS#K!6^gzxeHpXmj!NW(>m~R%~|17{{Gn)HO5hqU?!TflbJt9Si7r*x! zZIgqJ@8Q#~s6&sfRZ+ZSML8H@;V9Yt4hP&$j;5g}|=Ayp`k^84nfrD_s`ZWRX z((`&H2dDX0Lle(T&m)WudVrd*7dZY}>Y+cr`X<(oPbA7IoJmNQ| z!1wR+IzjOd=TKiD4tntoq8W9(U!B~ntqRcGaY0KTM$0_^L-@ZPm zBcWKuHK>E=7Bcsou)P|}Baoyc)Vo<8P_nTV^upWw$~=ptq9=vE43&5Th=39XZ0WJY zau?rMk}NT5=i7$${ozp`qiAx_=3ZfKaEtX(6E$Ehof2n4)#_>Y`htSEvn%o25GXK_(eK5pKouY@wS>bb0?kE)FS_XH z%Ee{X>b{Zo;s1>zks1fs^{4p9-6fg|}@j3RmUxDf2Q&Hmd^u4P2X&4jI; zW=w>!(EWMXzK_rLDKJ4q7Yp|-JSDD|kZCbF(eY*+#TN?&iA8G_aDBu$6W}@IzyR+{ zqjY7eJ9CLe?WedQ&7e#bPXd~hXH$!FSM_cN! zvnczQroP^0^p0lvfU&@KL!t%iJb*57lrB*;)OV7yeUNS_^`oX^zH=UiNpTW=z_(+w zncoUg+v_uP&Q&KS=~IT%D`V2UR#0RtpI`lJ_<>`|U_@x9du39T6M@l;N${SZNP!eQ zi^IC8`uBgNa35R)N4gS`uY+G@vK9Vr0|PT0+mD>0*#W30tgv&1TlN_r%Ih)jIA?Hr5Bdct5a~@<2v=)|Uy@XnnKg0yh7L|tQ6BLn7U+`FRZ`#(^V%Sz~V;-*h zpq83~srk*Zo}HR`pKA@P)CmAYNiIHk$|(p-=tyP}Cs1uvWr1R~h}@Ei7(R`45sPGU zd3$139p}#5@(V);b0&->4q!ebO!LwGcFv*!Ps9P+=1xX(QNKhC3x0G7Mok9dgI8fL$$m>^}R*_WsesAxke@LQM=o^O! zQr>Hv>I>TbPH=9A*S`~;2SXu-=A2{xNW;LklYXL0oDE$=)N=EpAxEyAz7aA4l~z<~ zL9&lZ9jaYopZGuJZA}@cU|W#n;6s{MQmkufrVpF~Hz%36FDVe12T|}SRuaX4M0Eyf zKU}2>H@{2#DF6Kia0H1Ir!H&x6)3#>+C`s{WQau0fYFOT;}I)v%nyg>or=K6$HL8{ z76rxP>8>ANSW-OK1%?;EXDUwJ`IyB9Ra%jF2r)u{R5gxaZ~l6EKUoNWj0rQs28Fkf;Db7v`*%E|-dx zrEZQSUZ~6jB~NNdcd16Yb9n&-J_wgbM^X><#>MtgBV{^SWn$=u{ux+RV<@5@g7Mna8M=Fg!?(u+Y!z2sq_!BYkHC<&Sp) z10$0w$&MHcO0PysRhyj87@VNbqVoA-=!7l+=HWFZ-B13K%&U;7=4mgVfvefrtCI{) z7pTN_PfbS~&*qAE&OdoaVE6ISG&8b%#;>>^Grzw?!bY&;TX1=)V1(9@*W@p%csYD_ z3Vl6?_%sP5_Sf>C6!`2qKqkZ7iy}(*>HJO9h?k7Po5n_pmH7VM7Y=kroXRQck5-0H z8b-m6ztmyUbmRv;pPAOK@5UlPVw=i$-!5BsspPqc5r!b71=51FmRvKt?0N?fc5cz{ zja|H|0!;^iu>+&q62%QSSB$aGWdzF3>P$bTg*4S5=*NdFMEdgyR#a#d{w1f`2Zk@^~QLw_HL6p_&hG=7uy$TbWyee?gL0qdQ9ht?s6n4@Kwi! zKXW=LcYV>SXe<`}5h-+C>iVv$gI|QLY|uEn`$(m4BJnWk;`ibyfHcO2nTbYmmGCf> zsXF(S;(o5mj`d!8{di_$Go<}@UO=5unQ9s`wv2;Yhr+;8KPSAgPDMC1cFWPnrdS>g z(cv(4GUYb0^(9RSV=qW{TAl5^x*RQ;q-wapHFDW;Gf%1ER}N}dcbV(82lw|M=eGf3 zOlT&fMuBmOqES4q67GV+)5;R#APcAt-J;aR$o-%rEI zMKw~#E;Kicw(h@1d5y9|W?0laNYFlTgz^fCR+o+QTzo7jBETJnsa}g|+-z@p3-27= z7f*4?6kTm`D?k|+8{^C5we|BjO|S=fo!U;^%@%cb1=!-@U%HIR?b4)+9zI$Hq|0kc z{%28LmtH2|lqQe&PG*g8ItVRaGHjh@0Z-YiFAGt?8D8W5y(f|Sqv8GSXVpD0*^zaV zLj76itnO}eo6g!PLK%VPDS{YM&FIe9e{KnV7#t4TpSM5wLro0V)nl%5Zg@0$EB92i z^{_QR7)87I>)9QE_vG8u>)gG7ABJgn^)lmwuc(*BmN5b=P~tLgLa#xmhB0~-843KNj3?n$Gj(BdnAgC?L$nF!1(*(N zPgIQKoGCNAF*j%r#C}|-VIF@kmdsyXa&O720>>NoyctgWcX~7Vl-kyRB0Y$RC>&pG z?=+~YWsXNy(_K_a*QnQM4*lCt54*<(&YUC*$Y<*ZVjR~ij%{QF!JNDpR!*=@fSL_k zq35A*0AL8IS8B}RDTRUWDWaxSVz&Y@?F%W{1?18tPvP@nn~^ z$z-kQDhfe3zn{^P2&&GPA`jgG8wpTeZc!X260m1(re+RuZ>$1-(`ZV&A`?YGS z8XqkMQ6nqjABkz{-IvV@)a_wIZ^?3;axThc*FFsKDSk1CGro}PkOmsbMp?~ByB#6I zR0uRINY&mC8u&ZMB9atm*UaGJw~4JY-w8(!;jhE#@_VPjdoM_0Gh2pbC1T zc=~0Jm7_8g1~$$#q)%eA4|5A`BXh5L0uJcV8Fyu%2ebH|5|~H7 zk*&>ul-G^N?_{|}KlX#Wv`^AeSioVZb{!7g8;e^FzyX2gxec7>Z(FBH$742&;yLOYhd2w#9xvo`4Qp}#EEcuk z8C|usmbYTW3SvP1)2EzPotNwB`sJJ5hcc!uQJJy%R4*&pyR^!XjEl$IESfAE!-GiFEJQji08XQM*{oCDZWdi&_qxgO zdl;^hgcr3dOqBW!AepIvr7`gx&zUmvqoX8ar^2_knSQIe0z%Yh7U=p zlx9)$;A0O^qUUp-*~kePiT|G<7_ffq(=(v%s+N+2&U@z~?2KuhqG_pjL*oWEhggRM>YLnHWQH`Otmxd~iCBIJiHj;eB4btcZNj!|Q`B?fUz1K*%HKJNaDD9-o7a$168Sdf=Wv zG>r$^S;%V3elT~0{pSK!NKH3JzPgX0?ObCQM43g7_j`lnG|d)d#SD&VeF-pB}wtD|}$2zQ0PSD3fmEA5E@* zv*R=R26BoP6dxjB4D~Si7z6khB@IQZs5`s?vsajioFFOtD@DUJ?tS zm~;7mXk!+{!9MGZRO0O??e-%Q^JvwBz5z6)E&qlRk5GM3bb8lJm(A^%D1mSsDkMVf zu8{tH(FXgI$GAl{oZmtY@jX%D)+?oHCFwBk*+-xEGxC6%@(;YnWT?#=L+p(d$0H}7 z>0WpQs5(F>D^Q2`S|^|+E&y7e2XPnm{v2UxeIvmP`cb!yUSS(_OZ{3N>x9E{JXwk=u%B#2%%n%8w!qY%qCd~vJfxIbh=p?SZmRL!LQe{UE>X0NaxU%_ zOR&KUuFfGM*|Ud^5=!<}-B#=ZV^_$UMR21ut_!z$G>5=j3P7@I;y=k@Cj!eXRCIiS z@_B9kC`8%?uBwMv&Cc8F=s@|E02YKuI$`~t9Sc|4FpFIH`Aoq0b#W=Qy~BZg!twlM zaZ!b8(1~e;Lxy8wgB-Z}@fUo$cvqak8QYC>8aZ2t>7?($-3z*FK4+wMg3JZ~M>_YZ zM$VMEaA~|YYU|O@&)N=#-y3}+BTk>`2r)xhV4_iBO$p3v_{I5MlAvQ{B(4eSU>lK3 z8EK;b3NsQ5m)!HmJNUIl0NJTbi0%lV3&qk}e$8X@Q_E|P-+9i|WP0%GcpHv;C3WmB zBTU~bR-rs{XSQz7`42-Mx|wGFSZVY`iuyj8zbtws^+jYJscr|!IlT-sh@{tD2 z7Jo@{rkJoDeiN(AAfLZ2o#e9`HPY#_LM1cq4#(lnEozz5T^ z%k{?FL<5TT2*Sq=Fj5E^YOsy5Nv%=gA#zZ}1lgKii;>%w(fLhTZlSd;zU{9^o6U5) zQ-iUx;@#*^S7^n606?d@{D`~nR0J6=TB?}@08Fz$q$C6Z z&&TVWajJ<;N-BO#BLqx}(_wVwb>RDDjSm(Hu;b4fDn;%te45ro?3IA~p?4YahQp&O z6^;ag!$|9*21WT@{C3NikoZh1-ho6Tqf((AzxJ|a)jT~J5{NUIy;~Kh{yNNeYi-0! z06e>;$MV%hg~HA|@KB6!Zv1F$VMNa*#SQeNmhv&sl44%~vh0y`b*y@dq>>Fxll_G# zN{C8_lzg@6*YK4NpaYgc(jzcVLS)MR&UMK2D7qU~VhCPukn*42BOtNC*i>be@R(aE zC074NJkzcheo6B4cm(x8<%pSXgC@)bag`9hdta4@L=K%@`0$?$!v+Rb`W`3Klga%* zows9qyMSDfZ=%MYpJjoL%T+3IE@XWTM3B;;mv>1**ItMOYe#1a%E1@5woF*@`ELPX z4I&yvA=_FeU0AW*&(jnJ+JruHe)Jh8H zuH$eQ-@C_(^#`PBn6z=e0q`sWP!GK(yhp@$G_7Jz$C+Os@0J z%YsCp#>%k0n9kZQ=Da3JA)lce)y@3iR=X6?X1$@I*wc`SNDw4=llauTL919lcFoUR zW+JC=B+L*tS{Q8Y|1mc8ml>uNC#w-B7hWq$Uq+`TzU%~-p8J&nYlA~Y?%3)~aw8B= zp^H-dVeGQ==6ck9sxbsE8ksrmW{zo8(yDPmwelxB`7mxbX(r4m5r1+#fTIYbqCRJt8%(Aglb$q%CwSON;dPNq8 z&wSdqhc7na&wj$ug)8r@qD406>;5}TY!b8gPoXcH;cG=716(mU1c$%w{zfWPKpP%S zC`*3>bo|M%)va3ht0_#3R!Q5pr3oL1=RnrlO+11UjA@D}9^F@2U<`a(Kd#F+QBM4V zTBfnbQX0pA`UcqBApiZBvdL(=gZET(E5=HKM~DD#`(*HRQGGk&v$cW!KOyA1ChhKn z@<51#YNp~&%(>vGPf7<30mBN~^)|K(dTr9o_T?A7qIbv*kOor1dWD2oSa&ru%5(a= zoLvL*r>QUM-iQVso=oy3uE^4fLuT41uH7XXENBas!xG4ax3K#%Lsj-EWfpH7khYM5 zgqxt`0ZkUE`<3raLzL%#WF4xT`6+`sy=zo9>+#^#kn_;X+ua-uI;S!VR4%4Gx(TL9 zhT~ruxre!7Yl|i1hbvV5bhOFXa{M>9C~N29u<=Dr6zFgD3^Sg2T+(i|N^!YWDt(Kq zmGnSu{_jJ&bNbO}iP@oab4$n%#Aaxv6HXuO{jAVYg-W`j4zZXXttevlgfd<2t~O5M zgT5{pKU7v|gC&Fn$);->ES?I%Y*m>XmMvORX2#kvwBYNAX0#!4>w8-ni;gDF+Dr#J ztQ@OK_44vMN*esNI)*ai#kdJbdJW$YPn}aHun2&N!~ZQ|a_PL`eHJbu<+Gf_e-Vp{ z)c#-j;7*Hm%0FeT;!YsAGcTGnX_D5hrN7xyreo~ee@-eRTlU(OZT^=i=CeUg0~*X+ zse+@QgOE{3F`Lzu^4SGY@FZfScwBc0~pbB5xKJw9jnLah>r zkkh{tVUMP8D%-wUlWi=PpU+ZlS1$Mkumqt z`rM z(6vfHKIc@Gq`*boCmz$EnaMn%y75C3&4hGUbDAYFWh#I}o?I_Y#+e>H$ z`#U-gX0r^_p2~62Rsqp3l)GD8sk8*MUv<4_RDeXmGCi9-r1;Y4+Q<~pELyI!6W1W3 zUy`uBYq`(NciH&R1^K!e!zJ7(J_YV{IE4Mm+hb!)zLm;3{ujQv-FQwpD-5f!tcZ{{&sebESfZ; zw!=u)rPKC(e8Mg=5?1W}0BeJzQG#%Bunnhju3#;XJlXLQ%}DBZoH}h(G6ct-T literal 0 HcmV?d00001 diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_8.imageset/Contents.json b/PureExample/PureExample/Resources/Assets.xcassets/image_8.imageset/Contents.json new file mode 100644 index 0000000..9549103 --- /dev/null +++ b/PureExample/PureExample/Resources/Assets.xcassets/image_8.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "image_8.jpeg", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/PureExample/PureExample/Resources/Assets.xcassets/image_8.imageset/image_8.jpeg b/PureExample/PureExample/Resources/Assets.xcassets/image_8.imageset/image_8.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0f1cbb2a49afa53c12ecb494cefe7f1a707ab055 GIT binary patch literal 11982 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 z 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 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PureExample/PureExample/Resources/Info.plist b/PureExample/PureExample/Resources/Info.plist new file mode 100644 index 0000000..9742bf0 --- /dev/null +++ b/PureExample/PureExample/Resources/Info.plist @@ -0,0 +1,60 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/PureExample/PureExample/Services/File.swift b/PureExample/PureExample/Services/File.swift new file mode 100644 index 0000000..fc6bd28 --- /dev/null +++ b/PureExample/PureExample/Services/File.swift @@ -0,0 +1,9 @@ +// +// File.swift +// PureExample +// +// Created by Łukasz Śliwiński on 20/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import Foundation diff --git a/PureExample/PureExample/Services/Networking.swift b/PureExample/PureExample/Services/Networking.swift new file mode 100644 index 0000000..6b051d3 --- /dev/null +++ b/PureExample/PureExample/Services/Networking.swift @@ -0,0 +1,33 @@ +// +// Networking.swift +// PureExample +// +// Created by Łukasz Śliwiński on 20/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import UIKit + +final class Networking { + + func loadItems(completion: @escaping ([Item]) -> Void) { + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(500)) { + let items = (0..<10).map({ (index) in + Item(name: "Item \(index)") + }) + completion(items) + } + } + + func loadImages(for item: Item, completion: @escaping ([UIImage]) -> Void) { + let numberOfImages = Int.random(in: 5...10) + + let images = Array(1.. UIImage in + return UIImage(named: "image_\(index)")! + } + + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(500)) { + completion(images) + } + } +} diff --git a/PureExample/PureExample/Services/RemoteNotificationService.swift b/PureExample/PureExample/Services/RemoteNotificationService.swift new file mode 100644 index 0000000..2edfc2a --- /dev/null +++ b/PureExample/PureExample/Services/RemoteNotificationService.swift @@ -0,0 +1,54 @@ +// +// RemoteNotificationService.swift +// PureExample +// +// Created by Łukasz Śliwiński on 20/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import Foundation +import UserNotifications + +final class RemoteNotificationService: NSObject { + + private let notificationCenter: UNUserNotificationCenter + + init(notificationCenter: UNUserNotificationCenter) { + self.notificationCenter = notificationCenter + super.init() + notificationCenter.delegate = self + } + + func requestAuthorization(completion: @escaping (Result) -> Void) { + notificationCenter.requestAuthorization( + options: [.alert, .sound], + completionHandler: { (granted, error) in + if let error = error { + completion(.failure(error)) + } else { + completion(.success(granted)) + } + }) + } +} + +extension RemoteNotificationService: UNUserNotificationCenterDelegate { + + func userNotificationCenter( + _ center: UNUserNotificationCenter, + didReceive response: UNNotificationResponse, + withCompletionHandler completionHandler: @escaping () -> Void + ) { + print("did receive notification \(response.notification.request.content.userInfo)") + completionHandler() + } + + // When the app in foreground + func userNotificationCenter( + _ center: UNUserNotificationCenter, + willPresent notification: UNNotification, + withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void + ) { + completionHandler([.alert, .sound]) + } +} diff --git a/PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.storyboard b/PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.storyboard new file mode 100644 index 0000000..92afc9b --- /dev/null +++ b/PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.storyboard @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.swift b/PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.swift new file mode 100644 index 0000000..dc93126 --- /dev/null +++ b/PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.swift @@ -0,0 +1,104 @@ +// +// DetailViewController.swift +// PureExample +// +// Created by Łukasz Śliwiński on 20/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import UIKit + +final class DetailViewController: UIViewController { + + // MARK: - Properties + + var networking: Networking! + var item: Item! + var imageCellConfigurator: ((ImageCell, UIImage) -> Void)? + var images: [UIImage] = [] + + // MARK: - IBOutlets + + @IBOutlet private weak var collectionView: UICollectionView! + + // MARK: - Life cycle + override func viewDidLoad() { + super.viewDidLoad() + self.setupCollectionView() + self.loadImages() + } + + // MARK: - Private helpers + private func setupCollectionView() { + self.collectionView.delegate = self + self.collectionView.dataSource = self + self.collectionView.register(UINib(nibName: "ImageCell", bundle: .main), forCellWithReuseIdentifier: "ImageCell") + + let size = NSCollectionLayoutSize( + widthDimension: .fractionalWidth(1), + heightDimension: .absolute(200.0) + ) + let itemSize = NSCollectionLayoutSize( + widthDimension: .fractionalWidth(0.5), + heightDimension: .absolute(200.0) + ) + let item1 = NSCollectionLayoutItem(layoutSize: itemSize) + let item2 = NSCollectionLayoutItem(layoutSize: itemSize) + let group = NSCollectionLayoutGroup.horizontal(layoutSize: size, subitems: [item1, item2]) + let section = NSCollectionLayoutSection(group: group) + let layout = UICollectionViewCompositionalLayout(section: section) + self.collectionView.collectionViewLayout = layout + } + + private func loadImages() { + networking.loadImages(for: item, completion: { (images) in + self.images = images + self.collectionView.reloadData() + }) + } +} + +// MARK: - UICollectionViewDelegate - + +extension DetailViewController: UICollectionViewDelegate { + +} + +// MARK: - UICollectionViewDataSource - + +extension DetailViewController: UICollectionViewDataSource { + + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + return self.images.count + } + + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { + guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ImageCell", for: indexPath) as? ImageCell else { + return UICollectionViewCell() + } + let image = self.images[indexPath.row] + self.imageCellConfigurator?(cell, image) + return cell + } +} + +// MARK: - Factory - +extension DetailViewController { + + static let factory: ( + Networking, + @escaping (ImageCell, UIImage) -> Void + ) -> (Item) -> DetailViewController = { + (networking, imageCellConfigurator) in + return { selectedItem in + let detailViewController = DetailViewController.loadFromStoryboard() + detailViewController.networking = networking + detailViewController.item = selectedItem + detailViewController.imageCellConfigurator = imageCellConfigurator + return detailViewController + } + } +} + +// MARK: - StoryboardLoadable - +extension DetailViewController: StoryboardLoadable {} diff --git a/PureExample/PureExample/ViewControllers/ListViewController/Base.lproj/ListViewController.storyboard b/PureExample/PureExample/ViewControllers/ListViewController/Base.lproj/ListViewController.storyboard new file mode 100644 index 0000000..44fd01e --- /dev/null +++ b/PureExample/PureExample/ViewControllers/ListViewController/Base.lproj/ListViewController.storyboard @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PureExample/PureExample/ViewControllers/ListViewController/ListViewController.swift b/PureExample/PureExample/ViewControllers/ListViewController/ListViewController.swift new file mode 100644 index 0000000..95fb6fd --- /dev/null +++ b/PureExample/PureExample/ViewControllers/ListViewController/ListViewController.swift @@ -0,0 +1,120 @@ +// +// ListViewController.swift +// PureExample +// +// Created by Łukasz Śliwiński on 19/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import UIKit +import Pure + +final class ListViewController: UIViewController { + + // MARK: - Properties + + var networking: Networking! + var notificationsService: RemoteNotificationService! + var detailViewControllerFactory: ((Item) -> DetailViewController)! + var items: [Item] = [] + + // MARK: - IBOutlets + + @IBOutlet private weak var tableView: UITableView! + + // MARK: Life cycle + + override func viewDidLoad() { + super.viewDidLoad() + self.setupTableView() + self.requestAuthorization() + self.loadItems() + } + + // MARK: - Private Helpers + + private func setupTableView() { + self.tableView.delegate = self + self.tableView.dataSource = self + self.tableView.estimatedRowHeight = 44 + self.tableView.rowHeight = UITableView.automaticDimension + self.tableView.register(UINib(nibName: "ItemCell", bundle: .main), forCellReuseIdentifier: "ItemCell") + } + + private func requestAuthorization() { + self.notificationsService.requestAuthorization { (result) in + switch result { + case .success(let granted): + print("Notifications granted: \(granted)") + case .failure(let error): + print("Notifications authorization error: \(error)") + } + } + } + + private func loadItems() { + self.networking.loadItems { (items) in + self.items = items + self.tableView.reloadData() + } + } + + private func presentItemDetail(_ selectedItem: Item) { + let detailViewController = self.detailViewControllerFactory(selectedItem) + self.present(detailViewController, animated: true) + } +} + +// MARK: - UITableViewDelegate - + +extension ListViewController: UITableViewDelegate { + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + let item = self.items[indexPath.row] + self.presentItemDetail(item) + } + + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + return UITableView.automaticDimension + } +} + +// MARK: - UITableViewDataSource - + +extension ListViewController: UITableViewDataSource { + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return self.items.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "ItemCell", for: indexPath) as? ItemCell else { + return UITableViewCell() + } + let item = items[indexPath.row] + cell.label?.text = item.name + return cell + } +} + +// MARK: - Factory - + +extension ListViewController { + + static let factory: ( + Networking, + RemoteNotificationService, + @escaping (Item) -> DetailViewController + ) -> ListViewController = { + (networking, notificationsService, detailViewControllerFactory) in + let listViewController = ListViewController.loadFromStoryboard() + listViewController.networking = networking + listViewController.notificationsService = notificationsService + listViewController.detailViewControllerFactory = detailViewControllerFactory + return listViewController + } +} + +// MARK: - StoryboardLoadable - + +extension ListViewController: StoryboardLoadable {} diff --git a/PureExample/PureExample/Views/ImageCell.swift b/PureExample/PureExample/Views/ImageCell.swift new file mode 100644 index 0000000..d2c2ada --- /dev/null +++ b/PureExample/PureExample/Views/ImageCell.swift @@ -0,0 +1,20 @@ +// +// ImageCell.swift +// PureExample +// +// Created by Łukasz Śliwiński on 20/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import UIKit + +final class ImageCell: UICollectionViewCell { + + @IBOutlet private weak var imageView: UIImageView! + + static let configurator: () -> (ImageCell, UIImage) -> Void = { + return { cell, image in + cell.imageView.image = image + } + } +} diff --git a/PureExample/PureExample/Views/ImageCell.xib b/PureExample/PureExample/Views/ImageCell.xib new file mode 100644 index 0000000..3250910 --- /dev/null +++ b/PureExample/PureExample/Views/ImageCell.xib @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PureExample/PureExample/Views/ItemCell.swift b/PureExample/PureExample/Views/ItemCell.swift new file mode 100644 index 0000000..58f1697 --- /dev/null +++ b/PureExample/PureExample/Views/ItemCell.swift @@ -0,0 +1,13 @@ +// +// ItemCell.swift +// PureExample +// +// Created by Łukasz Śliwiński on 20/02/2020. +// Copyright © 2020 plum. All rights reserved. +// + +import UIKit + +class ItemCell: UITableViewCell { + @IBOutlet weak var label: UILabel! +} diff --git a/PureExample/PureExample/Views/ItemCell.xib b/PureExample/PureExample/Views/ItemCell.xib new file mode 100644 index 0000000..6b19561 --- /dev/null +++ b/PureExample/PureExample/Views/ItemCell.xib @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 2e0ba0e7e38128499833797e0264f7199ba67317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20S=CC=81liwin=CC=81ski?= Date: Sat, 22 Feb 2020 14:44:50 +0100 Subject: [PATCH 3/3] Example with Pure framework `FactoryModule` usage. --- .../PureExample.xcodeproj/project.pbxproj | 31 +++---- .../xcshareddata/swiftpm/Package.resolved | 9 -- .../PureExample/Main/SceneDelegate.swift | 3 +- .../PureExample/Models/AppDependency.swift | 87 ++++++++++++++++--- .../DetailViewController.swift | 27 ++---- .../ListViewController.swift | 26 ++---- PureExample/PureExample/Views/ImageCell.swift | 8 +- 7 files changed, 102 insertions(+), 89 deletions(-) diff --git a/PureExample/PureExample.xcodeproj/project.pbxproj b/PureExample/PureExample.xcodeproj/project.pbxproj index 199d7d9..47028ef 100644 --- a/PureExample/PureExample.xcodeproj/project.pbxproj +++ b/PureExample/PureExample.xcodeproj/project.pbxproj @@ -25,7 +25,7 @@ 35D1C53A23FECEAA00BEC341 /* ImageDownloaderType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D1C53923FECEAA00BEC341 /* ImageDownloaderType.swift */; }; 35D1C54123FED90300BEC341 /* ItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D1C53F23FED90300BEC341 /* ItemCell.swift */; }; 35D1C54223FED90300BEC341 /* ItemCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 35D1C54023FED90300BEC341 /* ItemCell.xib */; }; - 35D1C54523FEF9E600BEC341 /* Pure in Frameworks */ = {isa = PBXBuildFile; productRef = 35D1C54423FEF9E600BEC341 /* Pure */; }; + 35D6A0A823FF2DF1006837D0 /* Pure in Frameworks */ = {isa = PBXBuildFile; productRef = 35D6A0A723FF2DF1006837D0 /* Pure */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -49,6 +49,7 @@ 35D1C53923FECEAA00BEC341 /* ImageDownloaderType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageDownloaderType.swift; sourceTree = ""; }; 35D1C53F23FED90300BEC341 /* ItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemCell.swift; sourceTree = ""; }; 35D1C54023FED90300BEC341 /* ItemCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ItemCell.xib; sourceTree = ""; }; + 35D6A0A523FF2DA8006837D0 /* Pure */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Pure; path = ..; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -56,7 +57,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 35D1C54523FEF9E600BEC341 /* Pure in Frameworks */, + 35D6A0A823FF2DF1006837D0 /* Pure in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -66,8 +67,10 @@ 3556F57823FDC36600C775E1 = { isa = PBXGroup; children = ( + 35D6A0A523FF2DA8006837D0 /* Pure */, 3556F58323FDC36600C775E1 /* PureExample */, 3556F58223FDC36600C775E1 /* Products */, + 35D6A0A623FF2DF1006837D0 /* Frameworks */, ); sourceTree = ""; }; @@ -177,6 +180,13 @@ path = Views; sourceTree = ""; }; + 35D6A0A623FF2DF1006837D0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -194,7 +204,7 @@ ); name = PureExample; packageProductDependencies = ( - 35D1C54423FEF9E600BEC341 /* Pure */, + 35D6A0A723FF2DF1006837D0 /* Pure */, ); productName = PureExample; productReference = 3556F58123FDC36600C775E1 /* PureExample.app */; @@ -225,7 +235,6 @@ ); mainGroup = 3556F57823FDC36600C775E1; packageReferences = ( - 35D1C54323FEF9E600BEC341 /* XCRemoteSwiftPackageReference "Pure" */, ); productRefGroup = 3556F58223FDC36600C775E1 /* Products */; projectDirPath = ""; @@ -465,21 +474,9 @@ }; /* End XCConfigurationList section */ -/* Begin XCRemoteSwiftPackageReference section */ - 35D1C54323FEF9E600BEC341 /* XCRemoteSwiftPackageReference "Pure" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/devxoul/Pure"; - requirement = { - branch = master; - kind = branch; - }; - }; -/* End XCRemoteSwiftPackageReference section */ - /* Begin XCSwiftPackageProductDependency section */ - 35D1C54423FEF9E600BEC341 /* Pure */ = { + 35D6A0A723FF2DF1006837D0 /* Pure */ = { isa = XCSwiftPackageProductDependency; - package = 35D1C54323FEF9E600BEC341 /* XCRemoteSwiftPackageReference "Pure" */; productName = Pure; }; /* End XCSwiftPackageProductDependency section */ diff --git a/PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index eacae98..6957b03 100644 --- a/PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/PureExample/PureExample.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -28,15 +28,6 @@ "version": null } }, - { - "package": "Pure", - "repositoryURL": "https://github.com/devxoul/Pure", - "state": { - "branch": "master", - "revision": "28fc9d2f9231ae6deeabc27bbd9cb648bd73311f", - "version": null - } - }, { "package": "Quick", "repositoryURL": "https://github.com/Quick/Quick.git", diff --git a/PureExample/PureExample/Main/SceneDelegate.swift b/PureExample/PureExample/Main/SceneDelegate.swift index 3ef29de..adfc0e8 100644 --- a/PureExample/PureExample/Main/SceneDelegate.swift +++ b/PureExample/PureExample/Main/SceneDelegate.swift @@ -26,7 +26,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { self.window = UIWindow(windowScene: scene) guard let window = self.window else { return } - window.rootViewController = appDelegate.dependency.listViewControllerFactory() + let factory = appDelegate.dependency.listViewControllerFactory + window.rootViewController = factory.create() window.makeKeyAndVisible() } } diff --git a/PureExample/PureExample/Models/AppDependency.swift b/PureExample/PureExample/Models/AppDependency.swift index 606d671..5df7ca8 100644 --- a/PureExample/PureExample/Models/AppDependency.swift +++ b/PureExample/PureExample/Models/AppDependency.swift @@ -6,13 +6,14 @@ // Copyright © 2020 plum. All rights reserved. // -import Foundation +import UIKit import UserNotifications +import Pure struct AppDependency { let networking: Networking let remoteNotificationService: RemoteNotificationService - let listViewControllerFactory: () -> ListViewController + let listViewControllerFactory: ListViewController.Factory } extension AppDependency { @@ -22,21 +23,81 @@ extension AppDependency { let remoteNotificationService = RemoteNotificationService( notificationCenter: UNUserNotificationCenter.current() ) - - let detailViewControllerFactory = DetailViewController.factory( - networking, - ImageCell.configurator() - ) return AppDependency( networking: networking, remoteNotificationService: remoteNotificationService, - listViewControllerFactory: { - return ListViewController.factory( - networking, - remoteNotificationService, - detailViewControllerFactory + listViewControllerFactory: ListViewController.Factory( + dependency: .init( + networking: networking, + notificationsService: remoteNotificationService, + factory: DetailViewController.Factory( + dependency: .init( + networking: networking, + imageCellConfigurator: ImageCell.Configurator() + ) + ) ) - }) + ) + ) + } +} + +// MARK: - Pure Factory Module - + +// MARK: - ListViewController - + +extension ListViewController: FactoryModule { + struct Dependency { + let networking: Networking + let notificationsService: RemoteNotificationService + let factory: DetailViewController.Factory + } +} + +extension Factory where Module == ListViewController { + + func create() -> ListViewController { + let module = ListViewController.loadFromStoryboard() + module.networking = dependency.networking + module.notificationsService = dependency.notificationsService + module.factory = dependency.factory + return module + } +} + +// MARK: - DetailViewController - + +extension DetailViewController: FactoryModule { + struct Dependency { + let networking: Networking + let imageCellConfigurator: ImageCell.Configurator + } + + struct Payload { + let selectedItem: Item + } +} + +extension Factory where Module == DetailViewController { + + func create(payload: DetailViewController.Payload) -> DetailViewController { + let vc = DetailViewController.loadFromStoryboard() + vc.networking = dependency.networking + vc.imageCellConfigurator = dependency.imageCellConfigurator + vc.item = payload.selectedItem + return vc + } +} + +// MARK: - ImageCell - + +extension ImageCell: ConfiguratorModule { + struct Payload { + let image: UIImage + } + + func configure(dependency: Void, payload: ImageCell.Payload) { + self.imageView.image = payload.image } } diff --git a/PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.swift b/PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.swift index dc93126..3b40031 100644 --- a/PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.swift +++ b/PureExample/PureExample/ViewControllers/DetailViewController/DetailViewController.swift @@ -14,7 +14,7 @@ final class DetailViewController: UIViewController { var networking: Networking! var item: Item! - var imageCellConfigurator: ((ImageCell, UIImage) -> Void)? + var imageCellConfigurator: ImageCell.Configurator! var images: [UIImage] = [] // MARK: - IBOutlets @@ -22,6 +22,7 @@ final class DetailViewController: UIViewController { @IBOutlet private weak var collectionView: UICollectionView! // MARK: - Life cycle + override func viewDidLoad() { super.viewDidLoad() self.setupCollectionView() @@ -29,6 +30,7 @@ final class DetailViewController: UIViewController { } // MARK: - Private helpers + private func setupCollectionView() { self.collectionView.delegate = self self.collectionView.dataSource = self @@ -51,7 +53,7 @@ final class DetailViewController: UIViewController { } private func loadImages() { - networking.loadImages(for: item, completion: { (images) in + self.networking.loadImages(for: self.item, completion: { (images) in self.images = images self.collectionView.reloadData() }) @@ -77,28 +79,11 @@ extension DetailViewController: UICollectionViewDataSource { return UICollectionViewCell() } let image = self.images[indexPath.row] - self.imageCellConfigurator?(cell, image) + self.imageCellConfigurator.configure(cell, payload: .init(image: image)) return cell } } -// MARK: - Factory - -extension DetailViewController { - - static let factory: ( - Networking, - @escaping (ImageCell, UIImage) -> Void - ) -> (Item) -> DetailViewController = { - (networking, imageCellConfigurator) in - return { selectedItem in - let detailViewController = DetailViewController.loadFromStoryboard() - detailViewController.networking = networking - detailViewController.item = selectedItem - detailViewController.imageCellConfigurator = imageCellConfigurator - return detailViewController - } - } -} - // MARK: - StoryboardLoadable - + extension DetailViewController: StoryboardLoadable {} diff --git a/PureExample/PureExample/ViewControllers/ListViewController/ListViewController.swift b/PureExample/PureExample/ViewControllers/ListViewController/ListViewController.swift index 95fb6fd..1bfc5dc 100644 --- a/PureExample/PureExample/ViewControllers/ListViewController/ListViewController.swift +++ b/PureExample/PureExample/ViewControllers/ListViewController/ListViewController.swift @@ -7,15 +7,14 @@ // import UIKit -import Pure final class ListViewController: UIViewController { // MARK: - Properties - + var networking: Networking! var notificationsService: RemoteNotificationService! - var detailViewControllerFactory: ((Item) -> DetailViewController)! + var factory: DetailViewController.Factory! var items: [Item] = [] // MARK: - IBOutlets @@ -60,7 +59,9 @@ final class ListViewController: UIViewController { } private func presentItemDetail(_ selectedItem: Item) { - let detailViewController = self.detailViewControllerFactory(selectedItem) + let detailViewController = self.factory.create( + payload: DetailViewController.Payload(selectedItem: selectedItem) + ) self.present(detailViewController, animated: true) } } @@ -97,23 +98,6 @@ extension ListViewController: UITableViewDataSource { } } -// MARK: - Factory - - -extension ListViewController { - - static let factory: ( - Networking, - RemoteNotificationService, - @escaping (Item) -> DetailViewController - ) -> ListViewController = { - (networking, notificationsService, detailViewControllerFactory) in - let listViewController = ListViewController.loadFromStoryboard() - listViewController.networking = networking - listViewController.notificationsService = notificationsService - listViewController.detailViewControllerFactory = detailViewControllerFactory - return listViewController - } -} // MARK: - StoryboardLoadable - diff --git a/PureExample/PureExample/Views/ImageCell.swift b/PureExample/PureExample/Views/ImageCell.swift index d2c2ada..e939a3e 100644 --- a/PureExample/PureExample/Views/ImageCell.swift +++ b/PureExample/PureExample/Views/ImageCell.swift @@ -10,11 +10,5 @@ import UIKit final class ImageCell: UICollectionViewCell { - @IBOutlet private weak var imageView: UIImageView! - - static let configurator: () -> (ImageCell, UIImage) -> Void = { - return { cell, image in - cell.imageView.image = image - } - } + @IBOutlet weak var imageView: UIImageView! }