├── 9781484203958.jpg ├── Chapter 02 ├── MyCommandLine │ ├── MyCommandLine.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── MyCommandLine.xcscheme │ │ │ └── xcschememanagement.plist │ └── MyCommandLine │ │ ├── MyCode.swift │ │ └── main.swift └── MyFirstPlayground.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── Chapter 03 ├── SportsStore │ ├── SportsStore.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── SportsStore.xcscheme │ │ │ └── xcschememanagement.plist │ ├── SportsStore │ │ ├── AppDelegate.swift │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ └── ViewController.swift │ └── SportsStoreTests │ │ ├── Info.plist │ │ └── SportsStoreTests.swift └── Tuples.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── Chapter 04 ├── ObjectTemplate │ ├── ObjectTemplate.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── ObjectTemplate.xcscheme │ │ │ └── xcschememanagement.plist │ └── ObjectTemplate │ │ ├── Product.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Product.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 05 ├── ArrayCopy.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── Hiding.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── Initialization.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── NSArray.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── NSCopying.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── ReferenceTypes.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── SportsStore │ ├── SportsStore.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── SportsStore.xcscheme │ │ │ └── xcschememanagement.plist │ ├── SportsStore │ │ ├── AppDelegate.swift │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── Logger.swift │ │ ├── Product.swift │ │ ├── Utils.swift │ │ └── ViewController.swift │ └── SportsStoreTests │ │ ├── Info.plist │ │ └── SportsStoreTests.swift └── ValueTypes.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── Chapter 06 ├── Singleton │ ├── Singleton.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Singleton.xcscheme │ │ │ └── xcschememanagement.plist │ └── Singleton │ │ ├── BackupServer.swift │ │ ├── Logger.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── Product.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 07 ├── ObjectPool │ ├── ObjectPool.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── ObjectPool.xcscheme │ │ │ └── xcschememanagement.plist │ └── ObjectPool │ │ ├── Book.swift │ │ ├── Library.swift │ │ ├── Pool.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 08 ├── ObjectPool │ ├── ObjectPool.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── ObjectPool.xcscheme │ │ │ └── xcschememanagement.plist │ └── ObjectPool │ │ ├── Book.swift │ │ ├── BookSources.swift │ │ ├── Library.swift │ │ ├── Pool.swift │ │ ├── PoolItem.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 09 ├── FactoryMethod │ ├── FactoryMethod.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── FactoryMethod.xcscheme │ │ │ └── xcschememanagement.plist │ └── FactoryMethod │ │ ├── CarSelector.swift │ │ ├── PriceCalculator.swift │ │ ├── RentalCar.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 10 ├── AbstractFactory │ ├── AbstractFactory.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── AbstractFactory.xcscheme │ │ │ └── xcschememanagement.plist │ └── AbstractFactory │ │ ├── Abstract.swift │ │ ├── AbstractFactory-Bridging-Header.h │ │ ├── CarParts.swift │ │ ├── Concrete.swift │ │ ├── Drivetrains.swift │ │ ├── Floorplans.swift │ │ ├── Suspension.swift │ │ ├── SuspensionOption.h │ │ ├── SuspensionOption.m │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── StockValueFactories.swift │ ├── StockValueImplementations.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 11 ├── Builder │ ├── Builder.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Builder.xcscheme │ │ │ └── xcschememanagement.plist │ └── Builder │ │ ├── Builder.swift │ │ ├── Food.swift │ │ └── main.swift ├── DateBuilder.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── ChangeRecord.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── StockValueFactories.swift │ ├── StockValueImplementations.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 12 ├── Adapter │ ├── Adapter.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Adapter.xcscheme │ │ │ └── xcschememanagement.plist │ └── Adapter │ │ ├── Adapter.swift │ │ ├── DataSources.swift │ │ ├── EmployeeSearch.swift │ │ ├── Employees.swift │ │ ├── NewCo.swift │ │ └── main.swift ├── SportsStore │ ├── SportsStore.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── SportsStore.xcscheme │ │ │ └── xcschememanagement.plist │ ├── SportsStore │ │ ├── AppDelegate.swift │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── ChangeRecord.swift │ │ ├── Euro.swift │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── Logger.swift │ │ ├── NetworkConnection.swift │ │ ├── NetworkPool.swift │ │ ├── Product.swift │ │ ├── ProductDataStore.swift │ │ ├── StockValueFactories.swift │ │ ├── StockValueImplementations.swift │ │ ├── Utils.swift │ │ └── ViewController.swift │ └── SportsStoreTests │ │ ├── Info.plist │ │ └── SportsStoreTests.swift └── TwoWayAdapter.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── Chapter 13 ├── Bridge │ ├── Bridge.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Bridge.xcscheme │ │ │ └── xcschememanagement.plist │ └── Bridge │ │ ├── Bridge.swift │ │ ├── Channels.swift │ │ ├── Comms.swift │ │ ├── Messages.swift │ │ ├── NewFeatures.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── ChangeRecord.swift │ ├── Euro.swift │ ├── EventBridge.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── StockValueFactories.swift │ ├── StockValueImplementations.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 14 ├── Decorator │ ├── Decorator.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Decorator.xcscheme │ │ │ └── xcschememanagement.plist │ └── Decorator │ │ ├── CustomerAccount.swift │ │ ├── Discounts.swift │ │ ├── Options.swift │ │ ├── Purchase.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── ChangeRecord.swift │ ├── Euro.swift │ ├── EventBridge.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── ProductDecorators.swift │ ├── StockValueFactories.swift │ ├── StockValueImplementations.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 15 ├── Composite │ ├── Composite.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Composite.xcscheme │ │ │ └── xcschememanagement.plist │ └── Composite │ │ ├── CarParts.swift │ │ ├── Orders.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── ChangeRecord.swift │ ├── Euro.swift │ ├── EventBridge.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── ProductDecorators.swift │ ├── StockValueFactories.swift │ ├── StockValueImplementations.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 16 ├── Facade │ ├── Facade.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Facade.xcscheme │ │ │ └── xcschememanagement.plist │ └── Facade │ │ ├── Facade.swift │ │ ├── PirateCrew.swift │ │ ├── PirateShip.swift │ │ ├── TreasureMap.swift │ │ └── main.swift ├── SportsStore │ ├── SportsStore.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── SportsStore.xcscheme │ │ │ └── xcschememanagement.plist │ ├── SportsStore │ │ ├── AppDelegate.swift │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── ChangeRecord.swift │ │ ├── Euro.swift │ │ ├── EventBridge.swift │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── Logger.swift │ │ ├── NetworkConnection.swift │ │ ├── NetworkPool.swift │ │ ├── Product.swift │ │ ├── ProductDataStore.swift │ │ ├── ProductDecorators.swift │ │ ├── StockTotalFacade.swift │ │ ├── StockValueFactories.swift │ │ ├── StockValueImplementations.swift │ │ ├── Utils.swift │ │ └── ViewController.swift │ └── SportsStoreTests │ │ ├── Info.plist │ │ └── SportsStoreTests.swift └── TextFacade.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── Chapter 17 ├── CopyOnWrite.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── Flyweight │ ├── Flyweight.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Flyweight.xcscheme │ │ │ └── xcschememanagement.plist │ └── Flyweight │ │ ├── Flyweight.swift │ │ ├── Spreadsheet.swift │ │ └── main.swift ├── Numbers.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── ChangeRecord.swift │ ├── Euro.swift │ ├── EventBridge.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkConnectionFlyweight.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── ProductDecorators.swift │ ├── StockTotalFacade.swift │ ├── StockValueFactories.swift │ ├── StockValueImplementations.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 18 ├── Proxy │ ├── Proxy.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Proxy.xcscheme │ │ │ └── xcschememanagement.plist │ └── Proxy │ │ ├── Auth.swift │ │ ├── Proxy.swift │ │ └── main.swift ├── ReferenceCounting │ ├── ReferenceCounting.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── ReferenceCounting.xcscheme │ │ │ └── xcschememanagement.plist │ └── ReferenceCounting │ │ ├── NetworkRequest.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── ChangeRecord.swift │ ├── Euro.swift │ ├── EventBridge.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkConnectionFlyweight.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── ProductDecorators.swift │ ├── Proxy.swift │ ├── StockTotalFacade.swift │ ├── StockValueFactories.swift │ ├── StockValueImplementations.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 19 ├── ChainOfResp │ ├── ChainOfResp.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── ChainOfResp.xcscheme │ │ │ └── xcschememanagement.plist │ └── ChainOfResp │ │ ├── Message.swift │ │ ├── Transmitters.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── ChangeRecord.swift │ ├── Euro.swift │ ├── EventBridge.swift │ ├── FormatterChain.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkConnectionFlyweight.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── ProductDecorators.swift │ ├── Proxy.swift │ ├── StockTotalFacade.swift │ ├── StockValueFactories.swift │ ├── StockValueImplementations.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 20 ├── Command │ ├── Command.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Command.xcscheme │ │ │ └── xcschememanagement.plist │ └── Command │ │ ├── Calculator.swift │ │ ├── Commands.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── ChangeRecord.swift │ ├── Euro.swift │ ├── EventBridge.swift │ ├── FormatterChain.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkConnectionFlyweight.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── ProductDecorators.swift │ ├── Proxy.swift │ ├── StockTotalFacade.swift │ ├── StockValueFactories.swift │ ├── StockValueImplementations.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 21 ├── Mediator │ ├── Mediator.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Mediator.xcscheme │ │ │ └── xcschememanagement.plist │ └── Mediator │ │ ├── Airplane.swift │ │ ├── CommandMediator.swift │ │ ├── Mediator.swift │ │ ├── MessageMediator.swift │ │ └── main.swift └── Notifications.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── Chapter 22 ├── KVO │ ├── KVO.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── KVO.xcscheme │ │ │ └── xcschememanagement.plist │ └── KVO │ │ └── main.swift ├── Observer │ ├── Observer.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Observer.xcscheme │ │ │ └── xcschememanagement.plist │ └── Observer │ │ ├── Authentication.swift │ │ ├── MetaObserver.swift │ │ ├── Observer.swift │ │ ├── SystemComponents.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── ChangeRecord.swift │ ├── Euro.swift │ ├── EventBridge.swift │ ├── FormatterChain.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkConnectionFlyweight.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── ProductDecorators.swift │ ├── Proxy.swift │ ├── StockTotalFacade.swift │ ├── StockValueFactories.swift │ ├── StockValueImplementations.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 23 ├── Memento │ ├── Memento.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── adam.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Memento.xcscheme │ │ │ └── xcschememanagement.plist │ └── Memento │ │ ├── Ledger.swift │ │ ├── Memento.swift │ │ └── main.swift └── SportsStore │ ├── SportsStore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── SportsStore.xcscheme │ │ └── xcschememanagement.plist │ ├── SportsStore │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── ChangeRecord.swift │ ├── Euro.swift │ ├── EventBridge.swift │ ├── FormatterChain.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Logger.swift │ ├── NetworkConnection.swift │ ├── NetworkConnectionFlyweight.swift │ ├── NetworkPool.swift │ ├── Product.swift │ ├── ProductDataStore.swift │ ├── ProductDecorators.swift │ ├── Proxy.swift │ ├── StockTotalFacade.swift │ ├── StockValueFactories.swift │ ├── StockValueImplementations.swift │ ├── Utils.swift │ └── ViewController.swift │ └── SportsStoreTests │ ├── Info.plist │ └── SportsStoreTests.swift ├── Chapter 24 ├── ProtocolStrategy.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline ├── SelectorStrategy.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline └── Strategy │ ├── Strategy.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── Strategy.xcscheme │ │ └── xcschememanagement.plist │ └── Strategy │ ├── Sequence.swift │ ├── Strategies.swift │ └── main.swift ├── Chapter 25 ├── DoubleDispatch.playground │ ├── contents.xcplayground │ ├── section-1.swift │ └── timeline.xctimeline └── Visitor │ ├── Visitor.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── Visitor.xcscheme │ │ └── xcschememanagement.plist │ └── Visitor │ ├── Shapes.swift │ ├── Visitor.swift │ └── main.swift ├── Chapter 26 └── TemplateMethod │ ├── TemplateMethod.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── TemplateMethod.xcscheme │ │ └── xcschememanagement.plist │ └── TemplateMethod │ ├── Donors.swift │ └── main.swift ├── Chapter 27 └── MVC │ ├── MVC.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── adam.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adam.xcuserdatad │ │ └── xcschemes │ │ ├── MVC.xcscheme │ │ └── xcschememanagement.plist │ └── MVC │ ├── Commands.swift │ ├── Controllers.swift │ ├── Extensions.swift │ ├── Model.swift │ ├── Views.swift │ └── main.swift ├── LICENSE.txt ├── README.md └── contributing.md /9781484203958.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/9781484203958.jpg -------------------------------------------------------------------------------- /Chapter 02/MyCommandLine/MyCommandLine.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 02/MyCommandLine/MyCommandLine.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 02/MyCommandLine/MyCommandLine.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 02/MyCommandLine/MyCommandLine.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 02/MyCommandLine/MyCommandLine/MyCode.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 02/MyCommandLine/MyCommandLine/MyCode.swift -------------------------------------------------------------------------------- /Chapter 02/MyCommandLine/MyCommandLine/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 02/MyCommandLine/MyCommandLine/main.swift -------------------------------------------------------------------------------- /Chapter 02/MyFirstPlayground.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 02/MyFirstPlayground.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 02/MyFirstPlayground.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 02/MyFirstPlayground.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 02/MyFirstPlayground.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 02/MyFirstPlayground.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 03/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 03/Tuples.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/Tuples.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 03/Tuples.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/Tuples.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 03/Tuples.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 03/Tuples.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 04/ObjectTemplate/ObjectTemplate.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/ObjectTemplate/ObjectTemplate.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 04/ObjectTemplate/ObjectTemplate.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/ObjectTemplate/ObjectTemplate.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 04/ObjectTemplate/ObjectTemplate/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/ObjectTemplate/ObjectTemplate/Product.swift -------------------------------------------------------------------------------- /Chapter 04/ObjectTemplate/ObjectTemplate/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/ObjectTemplate/ObjectTemplate/main.swift -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 04/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 04/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 05/ArrayCopy.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/ArrayCopy.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 05/ArrayCopy.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/ArrayCopy.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 05/ArrayCopy.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/ArrayCopy.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 05/Hiding.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/Hiding.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 05/Hiding.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/Hiding.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 05/Hiding.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/Hiding.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 05/Initialization.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/Initialization.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 05/Initialization.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/Initialization.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 05/Initialization.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/Initialization.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 05/NSArray.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/NSArray.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 05/NSArray.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/NSArray.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 05/NSArray.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/NSArray.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 05/NSCopying.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/NSCopying.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 05/NSCopying.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/NSCopying.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 05/NSCopying.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/NSCopying.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 05/ReferenceTypes.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/ReferenceTypes.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 05/ReferenceTypes.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/ReferenceTypes.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 05/ReferenceTypes.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/ReferenceTypes.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 05/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 05/ValueTypes.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/ValueTypes.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 05/ValueTypes.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/ValueTypes.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 05/ValueTypes.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 05/ValueTypes.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 06/Singleton/Singleton.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/Singleton/Singleton.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 06/Singleton/Singleton.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/Singleton/Singleton.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 06/Singleton/Singleton.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Singleton.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/Singleton/Singleton.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Singleton.xcscheme -------------------------------------------------------------------------------- /Chapter 06/Singleton/Singleton.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/Singleton/Singleton.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 06/Singleton/Singleton/BackupServer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/Singleton/Singleton/BackupServer.swift -------------------------------------------------------------------------------- /Chapter 06/Singleton/Singleton/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/Singleton/Singleton/Logger.swift -------------------------------------------------------------------------------- /Chapter 06/Singleton/Singleton/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/Singleton/Singleton/main.swift -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 06/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 06/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 07/ObjectPool/ObjectPool.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/ObjectPool/ObjectPool.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 07/ObjectPool/ObjectPool.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/ObjectPool/ObjectPool.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 07/ObjectPool/ObjectPool.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/ObjectPool.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/ObjectPool/ObjectPool.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/ObjectPool.xcscheme -------------------------------------------------------------------------------- /Chapter 07/ObjectPool/ObjectPool.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/ObjectPool/ObjectPool.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 07/ObjectPool/ObjectPool/Book.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/ObjectPool/ObjectPool/Book.swift -------------------------------------------------------------------------------- /Chapter 07/ObjectPool/ObjectPool/Library.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/ObjectPool/ObjectPool/Library.swift -------------------------------------------------------------------------------- /Chapter 07/ObjectPool/ObjectPool/Pool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/ObjectPool/ObjectPool/Pool.swift -------------------------------------------------------------------------------- /Chapter 07/ObjectPool/ObjectPool/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/ObjectPool/ObjectPool/main.swift -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 07/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 07/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 08/ObjectPool/ObjectPool.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/ObjectPool/ObjectPool.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 08/ObjectPool/ObjectPool.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/ObjectPool/ObjectPool.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 08/ObjectPool/ObjectPool.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/ObjectPool.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/ObjectPool/ObjectPool.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/ObjectPool.xcscheme -------------------------------------------------------------------------------- /Chapter 08/ObjectPool/ObjectPool.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/ObjectPool/ObjectPool.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 08/ObjectPool/ObjectPool/Book.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/ObjectPool/ObjectPool/Book.swift -------------------------------------------------------------------------------- /Chapter 08/ObjectPool/ObjectPool/BookSources.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/ObjectPool/ObjectPool/BookSources.swift -------------------------------------------------------------------------------- /Chapter 08/ObjectPool/ObjectPool/Library.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/ObjectPool/ObjectPool/Library.swift -------------------------------------------------------------------------------- /Chapter 08/ObjectPool/ObjectPool/Pool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/ObjectPool/ObjectPool/Pool.swift -------------------------------------------------------------------------------- /Chapter 08/ObjectPool/ObjectPool/PoolItem.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/ObjectPool/ObjectPool/PoolItem.swift -------------------------------------------------------------------------------- /Chapter 08/ObjectPool/ObjectPool/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/ObjectPool/ObjectPool/main.swift -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 08/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 08/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 09/FactoryMethod/FactoryMethod.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/FactoryMethod/FactoryMethod.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 09/FactoryMethod/FactoryMethod.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/FactoryMethod/FactoryMethod.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 09/FactoryMethod/FactoryMethod/CarSelector.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/FactoryMethod/FactoryMethod/CarSelector.swift -------------------------------------------------------------------------------- /Chapter 09/FactoryMethod/FactoryMethod/PriceCalculator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/FactoryMethod/FactoryMethod/PriceCalculator.swift -------------------------------------------------------------------------------- /Chapter 09/FactoryMethod/FactoryMethod/RentalCar.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/FactoryMethod/FactoryMethod/RentalCar.swift -------------------------------------------------------------------------------- /Chapter 09/FactoryMethod/FactoryMethod/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/FactoryMethod/FactoryMethod/main.swift -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 09/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 09/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/AbstractFactory/AbstractFactory.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/AbstractFactory/AbstractFactory.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory/Abstract.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/AbstractFactory/AbstractFactory/Abstract.swift -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory/AbstractFactory-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "SuspensionOption.h" -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory/CarParts.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/AbstractFactory/AbstractFactory/CarParts.swift -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory/Concrete.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/AbstractFactory/AbstractFactory/Concrete.swift -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory/Drivetrains.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/AbstractFactory/AbstractFactory/Drivetrains.swift -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory/Floorplans.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/AbstractFactory/AbstractFactory/Floorplans.swift -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory/Suspension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/AbstractFactory/AbstractFactory/Suspension.swift -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory/SuspensionOption.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/AbstractFactory/AbstractFactory/SuspensionOption.h -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory/SuspensionOption.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/AbstractFactory/AbstractFactory/SuspensionOption.m -------------------------------------------------------------------------------- /Chapter 10/AbstractFactory/AbstractFactory/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/AbstractFactory/AbstractFactory/main.swift -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 10/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 10/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 11/Builder/Builder.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/Builder/Builder.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 11/Builder/Builder.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/Builder/Builder.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 11/Builder/Builder.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Builder.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/Builder/Builder.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Builder.xcscheme -------------------------------------------------------------------------------- /Chapter 11/Builder/Builder.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/Builder/Builder.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 11/Builder/Builder/Builder.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/Builder/Builder/Builder.swift -------------------------------------------------------------------------------- /Chapter 11/Builder/Builder/Food.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/Builder/Builder/Food.swift -------------------------------------------------------------------------------- /Chapter 11/Builder/Builder/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/Builder/Builder/main.swift -------------------------------------------------------------------------------- /Chapter 11/DateBuilder.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/DateBuilder.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 11/DateBuilder.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/DateBuilder.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 11/DateBuilder.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/DateBuilder.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 11/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 11/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 12/Adapter/Adapter.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/Adapter/Adapter.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 12/Adapter/Adapter.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/Adapter/Adapter.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 12/Adapter/Adapter.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Adapter.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/Adapter/Adapter.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Adapter.xcscheme -------------------------------------------------------------------------------- /Chapter 12/Adapter/Adapter.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/Adapter/Adapter.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 12/Adapter/Adapter/Adapter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/Adapter/Adapter/Adapter.swift -------------------------------------------------------------------------------- /Chapter 12/Adapter/Adapter/DataSources.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/Adapter/Adapter/DataSources.swift -------------------------------------------------------------------------------- /Chapter 12/Adapter/Adapter/EmployeeSearch.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/Adapter/Adapter/EmployeeSearch.swift -------------------------------------------------------------------------------- /Chapter 12/Adapter/Adapter/Employees.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/Adapter/Adapter/Employees.swift -------------------------------------------------------------------------------- /Chapter 12/Adapter/Adapter/NewCo.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/Adapter/Adapter/NewCo.swift -------------------------------------------------------------------------------- /Chapter 12/Adapter/Adapter/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/Adapter/Adapter/main.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/Euro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/Euro.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 12/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 12/TwoWayAdapter.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/TwoWayAdapter.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 12/TwoWayAdapter.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/TwoWayAdapter.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 12/TwoWayAdapter.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 12/TwoWayAdapter.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 13/Bridge/Bridge.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/Bridge/Bridge.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 13/Bridge/Bridge.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/Bridge/Bridge.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 13/Bridge/Bridge.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Bridge.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/Bridge/Bridge.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Bridge.xcscheme -------------------------------------------------------------------------------- /Chapter 13/Bridge/Bridge.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/Bridge/Bridge.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 13/Bridge/Bridge/Bridge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/Bridge/Bridge/Bridge.swift -------------------------------------------------------------------------------- /Chapter 13/Bridge/Bridge/Channels.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/Bridge/Bridge/Channels.swift -------------------------------------------------------------------------------- /Chapter 13/Bridge/Bridge/Comms.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/Bridge/Bridge/Comms.swift -------------------------------------------------------------------------------- /Chapter 13/Bridge/Bridge/Messages.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/Bridge/Bridge/Messages.swift -------------------------------------------------------------------------------- /Chapter 13/Bridge/Bridge/NewFeatures.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/Bridge/Bridge/NewFeatures.swift -------------------------------------------------------------------------------- /Chapter 13/Bridge/Bridge/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/Bridge/Bridge/main.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/Euro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/Euro.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/EventBridge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/EventBridge.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 13/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 13/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 14/Decorator/Decorator.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/Decorator/Decorator.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 14/Decorator/Decorator.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/Decorator/Decorator.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 14/Decorator/Decorator.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Decorator.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/Decorator/Decorator.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Decorator.xcscheme -------------------------------------------------------------------------------- /Chapter 14/Decorator/Decorator.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/Decorator/Decorator.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 14/Decorator/Decorator/CustomerAccount.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/Decorator/Decorator/CustomerAccount.swift -------------------------------------------------------------------------------- /Chapter 14/Decorator/Decorator/Discounts.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/Decorator/Decorator/Discounts.swift -------------------------------------------------------------------------------- /Chapter 14/Decorator/Decorator/Options.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/Decorator/Decorator/Options.swift -------------------------------------------------------------------------------- /Chapter 14/Decorator/Decorator/Purchase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/Decorator/Decorator/Purchase.swift -------------------------------------------------------------------------------- /Chapter 14/Decorator/Decorator/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/Decorator/Decorator/main.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/Euro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/Euro.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/EventBridge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/EventBridge.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/ProductDecorators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/ProductDecorators.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 14/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 14/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 15/Composite/Composite.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/Composite/Composite.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 15/Composite/Composite.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/Composite/Composite.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 15/Composite/Composite.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Composite.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/Composite/Composite.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Composite.xcscheme -------------------------------------------------------------------------------- /Chapter 15/Composite/Composite.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/Composite/Composite.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 15/Composite/Composite/CarParts.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/Composite/Composite/CarParts.swift -------------------------------------------------------------------------------- /Chapter 15/Composite/Composite/Orders.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/Composite/Composite/Orders.swift -------------------------------------------------------------------------------- /Chapter 15/Composite/Composite/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/Composite/Composite/main.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/Euro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/Euro.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/EventBridge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/EventBridge.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/ProductDecorators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/ProductDecorators.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 15/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 15/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 16/Facade/Facade.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/Facade/Facade.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 16/Facade/Facade.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/Facade/Facade.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 16/Facade/Facade.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Facade.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/Facade/Facade.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Facade.xcscheme -------------------------------------------------------------------------------- /Chapter 16/Facade/Facade.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/Facade/Facade.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 16/Facade/Facade/Facade.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/Facade/Facade/Facade.swift -------------------------------------------------------------------------------- /Chapter 16/Facade/Facade/PirateCrew.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/Facade/Facade/PirateCrew.swift -------------------------------------------------------------------------------- /Chapter 16/Facade/Facade/PirateShip.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/Facade/Facade/PirateShip.swift -------------------------------------------------------------------------------- /Chapter 16/Facade/Facade/TreasureMap.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/Facade/Facade/TreasureMap.swift -------------------------------------------------------------------------------- /Chapter 16/Facade/Facade/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/Facade/Facade/main.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/Euro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/Euro.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/EventBridge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/EventBridge.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/ProductDecorators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/ProductDecorators.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/StockTotalFacade.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/StockTotalFacade.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 16/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 16/TextFacade.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/TextFacade.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 16/TextFacade.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/TextFacade.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 16/TextFacade.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 16/TextFacade.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 17/CopyOnWrite.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/CopyOnWrite.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 17/CopyOnWrite.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/CopyOnWrite.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 17/CopyOnWrite.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/CopyOnWrite.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 17/Flyweight/Flyweight.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/Flyweight/Flyweight.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 17/Flyweight/Flyweight.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/Flyweight/Flyweight.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 17/Flyweight/Flyweight.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Flyweight.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/Flyweight/Flyweight.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Flyweight.xcscheme -------------------------------------------------------------------------------- /Chapter 17/Flyweight/Flyweight.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/Flyweight/Flyweight.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 17/Flyweight/Flyweight/Flyweight.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/Flyweight/Flyweight/Flyweight.swift -------------------------------------------------------------------------------- /Chapter 17/Flyweight/Flyweight/Spreadsheet.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/Flyweight/Flyweight/Spreadsheet.swift -------------------------------------------------------------------------------- /Chapter 17/Flyweight/Flyweight/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/Flyweight/Flyweight/main.swift -------------------------------------------------------------------------------- /Chapter 17/Numbers.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/Numbers.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 17/Numbers.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/Numbers.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 17/Numbers.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/Numbers.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/Euro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/Euro.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/EventBridge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/EventBridge.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/NetworkConnectionFlyweight.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/NetworkConnectionFlyweight.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/ProductDecorators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/ProductDecorators.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/StockTotalFacade.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/StockTotalFacade.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 17/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 17/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 18/Proxy/Proxy.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/Proxy/Proxy.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 18/Proxy/Proxy.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/Proxy/Proxy.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 18/Proxy/Proxy.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Proxy.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/Proxy/Proxy.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Proxy.xcscheme -------------------------------------------------------------------------------- /Chapter 18/Proxy/Proxy.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/Proxy/Proxy.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 18/Proxy/Proxy/Auth.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/Proxy/Proxy/Auth.swift -------------------------------------------------------------------------------- /Chapter 18/Proxy/Proxy/Proxy.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/Proxy/Proxy/Proxy.swift -------------------------------------------------------------------------------- /Chapter 18/Proxy/Proxy/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/Proxy/Proxy/main.swift -------------------------------------------------------------------------------- /Chapter 18/ReferenceCounting/ReferenceCounting.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/ReferenceCounting/ReferenceCounting.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 18/ReferenceCounting/ReferenceCounting.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/ReferenceCounting/ReferenceCounting.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 18/ReferenceCounting/ReferenceCounting/NetworkRequest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/ReferenceCounting/ReferenceCounting/NetworkRequest.swift -------------------------------------------------------------------------------- /Chapter 18/ReferenceCounting/ReferenceCounting/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/ReferenceCounting/ReferenceCounting/main.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/Euro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/Euro.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/EventBridge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/EventBridge.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/NetworkConnectionFlyweight.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/NetworkConnectionFlyweight.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/ProductDecorators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/ProductDecorators.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/Proxy.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/Proxy.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/StockTotalFacade.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/StockTotalFacade.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 18/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 18/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 19/ChainOfResp/ChainOfResp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/ChainOfResp/ChainOfResp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 19/ChainOfResp/ChainOfResp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/ChainOfResp/ChainOfResp.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 19/ChainOfResp/ChainOfResp.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/ChainOfResp.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/ChainOfResp/ChainOfResp.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/ChainOfResp.xcscheme -------------------------------------------------------------------------------- /Chapter 19/ChainOfResp/ChainOfResp.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/ChainOfResp/ChainOfResp.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 19/ChainOfResp/ChainOfResp/Message.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/ChainOfResp/ChainOfResp/Message.swift -------------------------------------------------------------------------------- /Chapter 19/ChainOfResp/ChainOfResp/Transmitters.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/ChainOfResp/ChainOfResp/Transmitters.swift -------------------------------------------------------------------------------- /Chapter 19/ChainOfResp/ChainOfResp/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/ChainOfResp/ChainOfResp/main.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/Euro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/Euro.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/EventBridge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/EventBridge.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/FormatterChain.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/FormatterChain.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/NetworkConnectionFlyweight.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/NetworkConnectionFlyweight.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/ProductDecorators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/ProductDecorators.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/Proxy.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/Proxy.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/StockTotalFacade.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/StockTotalFacade.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 19/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 19/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 20/Command/Command.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/Command/Command.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 20/Command/Command.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/Command/Command.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 20/Command/Command.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Command.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/Command/Command.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Command.xcscheme -------------------------------------------------------------------------------- /Chapter 20/Command/Command.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/Command/Command.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 20/Command/Command/Calculator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/Command/Command/Calculator.swift -------------------------------------------------------------------------------- /Chapter 20/Command/Command/Commands.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/Command/Command/Commands.swift -------------------------------------------------------------------------------- /Chapter 20/Command/Command/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/Command/Command/main.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/Euro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/Euro.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/EventBridge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/EventBridge.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/FormatterChain.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/FormatterChain.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/NetworkConnectionFlyweight.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/NetworkConnectionFlyweight.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/ProductDecorators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/ProductDecorators.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/Proxy.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/Proxy.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/StockTotalFacade.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/StockTotalFacade.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 20/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 20/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 21/Mediator/Mediator.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Mediator/Mediator.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 21/Mediator/Mediator.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Mediator/Mediator.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 21/Mediator/Mediator.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Mediator.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Mediator/Mediator.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Mediator.xcscheme -------------------------------------------------------------------------------- /Chapter 21/Mediator/Mediator.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Mediator/Mediator.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 21/Mediator/Mediator/Airplane.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Mediator/Mediator/Airplane.swift -------------------------------------------------------------------------------- /Chapter 21/Mediator/Mediator/CommandMediator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Mediator/Mediator/CommandMediator.swift -------------------------------------------------------------------------------- /Chapter 21/Mediator/Mediator/Mediator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Mediator/Mediator/Mediator.swift -------------------------------------------------------------------------------- /Chapter 21/Mediator/Mediator/MessageMediator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Mediator/Mediator/MessageMediator.swift -------------------------------------------------------------------------------- /Chapter 21/Mediator/Mediator/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Mediator/Mediator/main.swift -------------------------------------------------------------------------------- /Chapter 21/Notifications.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Notifications.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 21/Notifications.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Notifications.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 21/Notifications.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 21/Notifications.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 22/KVO/KVO.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/KVO/KVO.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 22/KVO/KVO.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/KVO/KVO.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 22/KVO/KVO.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/KVO.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/KVO/KVO.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/KVO.xcscheme -------------------------------------------------------------------------------- /Chapter 22/KVO/KVO.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/KVO/KVO.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 22/KVO/KVO/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/KVO/KVO/main.swift -------------------------------------------------------------------------------- /Chapter 22/Observer/Observer.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/Observer/Observer.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 22/Observer/Observer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/Observer/Observer.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 22/Observer/Observer.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Observer.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/Observer/Observer.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Observer.xcscheme -------------------------------------------------------------------------------- /Chapter 22/Observer/Observer.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/Observer/Observer.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 22/Observer/Observer/Authentication.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/Observer/Observer/Authentication.swift -------------------------------------------------------------------------------- /Chapter 22/Observer/Observer/MetaObserver.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/Observer/Observer/MetaObserver.swift -------------------------------------------------------------------------------- /Chapter 22/Observer/Observer/Observer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/Observer/Observer/Observer.swift -------------------------------------------------------------------------------- /Chapter 22/Observer/Observer/SystemComponents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/Observer/Observer/SystemComponents.swift -------------------------------------------------------------------------------- /Chapter 22/Observer/Observer/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/Observer/Observer/main.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/Euro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/Euro.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/EventBridge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/EventBridge.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/FormatterChain.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/FormatterChain.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/NetworkConnectionFlyweight.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/NetworkConnectionFlyweight.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/ProductDecorators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/ProductDecorators.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/Proxy.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/Proxy.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/StockTotalFacade.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/StockTotalFacade.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 22/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 22/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 23/Memento/Memento.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/Memento/Memento.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 23/Memento/Memento.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/Memento/Memento.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 23/Memento/Memento.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Memento.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/Memento/Memento.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Memento.xcscheme -------------------------------------------------------------------------------- /Chapter 23/Memento/Memento.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/Memento/Memento.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 23/Memento/Memento/Ledger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/Memento/Memento/Ledger.swift -------------------------------------------------------------------------------- /Chapter 23/Memento/Memento/Memento.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/Memento/Memento/Memento.swift -------------------------------------------------------------------------------- /Chapter 23/Memento/Memento/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/Memento/Memento/main.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/SportsStore.xcscheme -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/AppDelegate.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/ChangeRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/ChangeRecord.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/Euro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/Euro.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/EventBridge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/EventBridge.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/FormatterChain.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/FormatterChain.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/Info.plist -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/Logger.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/NetworkConnection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/NetworkConnection.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/NetworkConnectionFlyweight.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/NetworkConnectionFlyweight.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/NetworkPool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/NetworkPool.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/Product.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/ProductDataStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/ProductDataStore.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/ProductDecorators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/ProductDecorators.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/Proxy.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/Proxy.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/StockTotalFacade.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/StockTotalFacade.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/StockValueFactories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/StockValueFactories.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/StockValueImplementations.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/StockValueImplementations.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/Utils.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStore/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStore/ViewController.swift -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStoreTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStoreTests/Info.plist -------------------------------------------------------------------------------- /Chapter 23/SportsStore/SportsStoreTests/SportsStoreTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 23/SportsStore/SportsStoreTests/SportsStoreTests.swift -------------------------------------------------------------------------------- /Chapter 24/ProtocolStrategy.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/ProtocolStrategy.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 24/ProtocolStrategy.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/ProtocolStrategy.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 24/ProtocolStrategy.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/ProtocolStrategy.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 24/SelectorStrategy.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/SelectorStrategy.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 24/SelectorStrategy.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/SelectorStrategy.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 24/SelectorStrategy.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/SelectorStrategy.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 24/Strategy/Strategy.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/Strategy/Strategy.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 24/Strategy/Strategy.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/Strategy/Strategy.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 24/Strategy/Strategy.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Strategy.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/Strategy/Strategy.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Strategy.xcscheme -------------------------------------------------------------------------------- /Chapter 24/Strategy/Strategy.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/Strategy/Strategy.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 24/Strategy/Strategy/Sequence.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/Strategy/Strategy/Sequence.swift -------------------------------------------------------------------------------- /Chapter 24/Strategy/Strategy/Strategies.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/Strategy/Strategy/Strategies.swift -------------------------------------------------------------------------------- /Chapter 24/Strategy/Strategy/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 24/Strategy/Strategy/main.swift -------------------------------------------------------------------------------- /Chapter 25/DoubleDispatch.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 25/DoubleDispatch.playground/contents.xcplayground -------------------------------------------------------------------------------- /Chapter 25/DoubleDispatch.playground/section-1.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 25/DoubleDispatch.playground/section-1.swift -------------------------------------------------------------------------------- /Chapter 25/DoubleDispatch.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 25/DoubleDispatch.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Chapter 25/Visitor/Visitor.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 25/Visitor/Visitor.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 25/Visitor/Visitor.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 25/Visitor/Visitor.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 25/Visitor/Visitor.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Visitor.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 25/Visitor/Visitor.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/Visitor.xcscheme -------------------------------------------------------------------------------- /Chapter 25/Visitor/Visitor.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 25/Visitor/Visitor.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 25/Visitor/Visitor/Shapes.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 25/Visitor/Visitor/Shapes.swift -------------------------------------------------------------------------------- /Chapter 25/Visitor/Visitor/Visitor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 25/Visitor/Visitor/Visitor.swift -------------------------------------------------------------------------------- /Chapter 25/Visitor/Visitor/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 25/Visitor/Visitor/main.swift -------------------------------------------------------------------------------- /Chapter 26/TemplateMethod/TemplateMethod.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 26/TemplateMethod/TemplateMethod.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 26/TemplateMethod/TemplateMethod.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 26/TemplateMethod/TemplateMethod.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 26/TemplateMethod/TemplateMethod/Donors.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 26/TemplateMethod/TemplateMethod/Donors.swift -------------------------------------------------------------------------------- /Chapter 26/TemplateMethod/TemplateMethod/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 26/TemplateMethod/TemplateMethod/main.swift -------------------------------------------------------------------------------- /Chapter 27/MVC/MVC.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 27/MVC/MVC.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Chapter 27/MVC/MVC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 27/MVC/MVC.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Chapter 27/MVC/MVC.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/MVC.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 27/MVC/MVC.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/MVC.xcscheme -------------------------------------------------------------------------------- /Chapter 27/MVC/MVC.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 27/MVC/MVC.xcodeproj/xcuserdata/adam.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /Chapter 27/MVC/MVC/Commands.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 27/MVC/MVC/Commands.swift -------------------------------------------------------------------------------- /Chapter 27/MVC/MVC/Controllers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 27/MVC/MVC/Controllers.swift -------------------------------------------------------------------------------- /Chapter 27/MVC/MVC/Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 27/MVC/MVC/Extensions.swift -------------------------------------------------------------------------------- /Chapter 27/MVC/MVC/Model.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 27/MVC/MVC/Model.swift -------------------------------------------------------------------------------- /Chapter 27/MVC/MVC/Views.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 27/MVC/MVC/Views.swift -------------------------------------------------------------------------------- /Chapter 27/MVC/MVC/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/Chapter 27/MVC/MVC/main.swift -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/README.md -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/pro-design-patterns-in-swift/HEAD/contributing.md --------------------------------------------------------------------------------