在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Design Patterns by Tutorials v2.0(包含源代码)

Design Patterns by Tutorials v2.0(包含源代码)

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:148.69M
  • 下载次数:2
  • 浏览次数:63
  • 发布时间:2021-03-02
  • 实例类别:一般编程问题
  • 发 布 人:好学IT男
  • 文件格式:.zip
  • 所需积分:2
 

实例介绍

【实例简介】
Raywendlich 的 Design Patterns by Tutorials v2.0 (iOS12 & Swift4.2 & Xcode10),包含pdf, epub 两种格式 附有源代码
【实例截图】
【核心代码】
54f51a4c-d898-4139-af71-f65b8c370d02
├── Design Patterns by Tutorials v2.0
│   ├── 03-model-view-controller-pattern
│   │   ├── final
│   │   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Observable.swift
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Strategy_Diagram.png
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── RabbleWabble
│   │   │   ├── RabbleWabble
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── Controllers
│   │   │   │   │   └── QuestionViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   ├── QuestionGroupData.swift
│   │   │   │   │   ├── QuestionGroup.swift
│   │   │   │   │   └── Question.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   │   └── logo.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── logo.pdf
│   │   │   │   │   └── Info.plist
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── QuestionView.swift
│   │   │   └── RabbleWabble.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   ├── resources
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   ├── Contents.json
│   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── ic_menu.pdf
│   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── ic_settings.pdf
│   │   │   │   └── logo.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── logo.pdf
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── QuestionGroupData.swift
│   │   └── starter
│   │   └── FundamentalDesignPatterns.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   ├── FundamentalDesignPatterns.playground
│   │   │   ├── contents.xcplayground
│   │   │   └── Pages
│   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Builder_Diagram.png
│   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Delegation_Diagram.png
│   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Memento_Diagram.png
│   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── MVC_Diagram.png
│   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── Resources
│   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   └── Sources
│   │   │   │   └── Observable.swift
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Singleton_Diagram.png
│   │   │   └── Strategy.xcplaygroundpage
│   │   │   ├── Contents.swift
│   │   │   └── Resources
│   │   │   └── Strategy_Diagram.png
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── 04-delegation-pattern
│   │   ├── final
│   │   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Observable.swift
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Strategy_Diagram.png
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── RabbleWabble
│   │   │   ├── RabbleWabble
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── Controllers
│   │   │   │   │   ├── QuestionViewController.swift
│   │   │   │   │   └── SelectQuestionGroupViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   ├── QuestionGroupData.swift
│   │   │   │   │   ├── QuestionGroup.swift
│   │   │   │   │   └── Question.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   │   └── logo.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── logo.pdf
│   │   │   │   │   └── Info.plist
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   ├── QuestionGroupCell.swift
│   │   │   │   └── QuestionView.swift
│   │   │   └── RabbleWabble.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── starter
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Observable.swift
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Strategy_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── Controllers
│   │   │   │   └── QuestionViewController.swift
│   │   │   ├── Models
│   │   │   │   ├── QuestionGroupData.swift
│   │   │   │   ├── QuestionGroup.swift
│   │   │   │   └── Question.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   └── logo.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── logo.pdf
│   │   │   │   └── Info.plist
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── QuestionView.swift
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 05-strategy-pattern
│   │   ├── final
│   │   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Observable.swift
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Strategy_Diagram.png
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── RabbleWabble
│   │   │   ├── RabbleWabble
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── Controllers
│   │   │   │   │   ├── QuestionViewController.swift
│   │   │   │   │   └── SelectQuestionGroupViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   ├── QuestionGroupData.swift
│   │   │   │   │   ├── QuestionGroup.swift
│   │   │   │   │   └── Question.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   │   └── logo.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── logo.pdf
│   │   │   │   │   └── Info.plist
│   │   │   │   ├── Strategies
│   │   │   │   │   ├── QuestionStrategy.swift
│   │   │   │   │   ├── RandomQuestionStrategy.swift
│   │   │   │   │   └── SequentialQuestionStrategy.swift
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   ├── QuestionGroupCell.swift
│   │   │   │   └── QuestionView.swift
│   │   │   └── RabbleWabble.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── starter
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Observable.swift
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Strategy_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── Controllers
│   │   │   │   ├── QuestionViewController.swift
│   │   │   │   └── SelectQuestionGroupViewController.swift
│   │   │   ├── Models
│   │   │   │   ├── QuestionGroupData.swift
│   │   │   │   ├── QuestionGroup.swift
│   │   │   │   └── Question.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   └── logo.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── logo.pdf
│   │   │   │   └── Info.plist
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── LaunchScreen.storyboard
│   │   │   ├── QuestionGroupCell.swift
│   │   │   └── QuestionView.swift
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 06-singleton-pattern
│   │   ├── final
│   │   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Observable.swift
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Strategy_Diagram.png
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── RabbleWabble
│   │   │   ├── RabbleWabble
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── Controllers
│   │   │   │   │   ├── AppSettingsViewController.swift
│   │   │   │   │   ├── QuestionViewController.swift
│   │   │   │   │   └── SelectQuestionGroupViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   ├── AppSettings.swift
│   │   │   │   │   ├── QuestionGroupData.swift
│   │   │   │   │   ├── QuestionGroup.swift
│   │   │   │   │   └── Question.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   │   └── logo.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── logo.pdf
│   │   │   │   │   └── Info.plist
│   │   │   │   ├── Strategies
│   │   │   │   │   ├── QuestionStrategy.swift
│   │   │   │   │   ├── RandomQuestionStrategy.swift
│   │   │   │   │   └── SequentialQuestionStrategy.swift
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   ├── QuestionGroupCell.swift
│   │   │   │   └── QuestionView.swift
│   │   │   └── RabbleWabble.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── starter
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Observable.swift
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Strategy_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── Controllers
│   │   │   │   ├── QuestionViewController.swift
│   │   │   │   └── SelectQuestionGroupViewController.swift
│   │   │   ├── Models
│   │   │   │   ├── QuestionGroupData.swift
│   │   │   │   ├── QuestionGroup.swift
│   │   │   │   └── Question.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   └── logo.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── logo.pdf
│   │   │   │   └── Info.plist
│   │   │   ├── Strategies
│   │   │   │   ├── QuestionStrategy.swift
│   │   │   │   ├── RandomQuestionStrategy.swift
│   │   │   │   └── SequentialQuestionStrategy.swift
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── LaunchScreen.storyboard
│   │   │   ├── QuestionGroupCell.swift
│   │   │   └── QuestionView.swift
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 07-memento-pattern
│   │   ├── final
│   │   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Observable.swift
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Strategy_Diagram.png
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── RabbleWabble
│   │   │   ├── RabbleWabble
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── Caretakers
│   │   │   │   │   ├── DiskCaretaker.swift
│   │   │   │   │   └── QuestionGroupCaretaker.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   ├── AppSettingsViewController.swift
│   │   │   │   │   ├── QuestionViewController.swift
│   │   │   │   │   └── SelectQuestionGroupViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   ├── AppSettings.swift
│   │   │   │   │   ├── QuestionGroup.swift
│   │   │   │   │   └── Question.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   │   └── logo.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── logo.pdf
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   └── QuestionGroupData.json
│   │   │   │   ├── Strategies
│   │   │   │   │   ├── BaseQuestionStrategy.swift
│   │   │   │   │   ├── QuestionStrategy.swift
│   │   │   │   │   ├── RandomQuestionStrategy.swift
│   │   │   │   │   └── SequentialQuestionStrategy.swift
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   ├── QuestionGroupCell.swift
│   │   │   │   └── QuestionView.swift
│   │   │   └── RabbleWabble.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   ├── resources
│   │   │   └── QuestionGroupData.json
│   │   └── starter
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Observable.swift
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Strategy_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── Controllers
│   │   │   │   ├── AppSettingsViewController.swift
│   │   │   │   ├── QuestionViewController.swift
│   │   │   │   └── SelectQuestionGroupViewController.swift
│   │   │   ├── Models
│   │   │   │   ├── AppSettings.swift
│   │   │   │   ├── QuestionGroupData.swift
│   │   │   │   ├── QuestionGroup.swift
│   │   │   │   └── Question.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   └── logo.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── logo.pdf
│   │   │   │   └── Info.plist
│   │   │   ├── Strategies
│   │   │   │   ├── QuestionStrategy.swift
│   │   │   │   ├── RandomQuestionStrategy.swift
│   │   │   │   └── SequentialQuestionStrategy.swift
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── LaunchScreen.storyboard
│   │   │   ├── QuestionGroupCell.swift
│   │   │   └── QuestionView.swift
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 08-observer-pattern
│   │   ├── final
│   │   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Observable.swift
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Strategy_Diagram.png
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── RabbleWabble
│   │   │   ├── RabbleWabble
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── Caretakers
│   │   │   │   │   ├── DiskCaretaker.swift
│   │   │   │   │   └── QuestionGroupCaretaker.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   ├── AppSettingsViewController.swift
│   │   │   │   │   ├── QuestionViewController.swift
│   │   │   │   │   └── SelectQuestionGroupViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   ├── AppSettings.swift
│   │   │   │   │   ├── Observable.swift
│   │   │   │   │   ├── QuestionGroup.swift
│   │   │   │   │   └── Question.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   │   └── logo.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── logo.pdf
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   └── QuestionGroupData.json
│   │   │   │   ├── Strategies
│   │   │   │   │   ├── BaseQuestionStrategy.swift
│   │   │   │   │   ├── QuestionStrategy.swift
│   │   │   │   │   ├── RandomQuestionStrategy.swift
│   │   │   │   │   └── SequentialQuestionStrategy.swift
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   ├── QuestionGroupCell.swift
│   │   │   │   └── QuestionView.swift
│   │   │   └── RabbleWabble.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── starter
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Observable.swift
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Strategy_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── Caretakers
│   │   │   │   ├── DiskCaretaker.swift
│   │   │   │   └── QuestionGroupCaretaker.swift
│   │   │   ├── Controllers
│   │   │   │   ├── AppSettingsViewController.swift
│   │   │   │   ├── QuestionViewController.swift
│   │   │   │   └── SelectQuestionGroupViewController.swift
│   │   │   ├── Models
│   │   │   │   ├── AppSettings.swift
│   │   │   │   ├── QuestionGroup.swift
│   │   │   │   └── Question.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   └── logo.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── logo.pdf
│   │   │   │   ├── Info.plist
│   │   │   │   └── QuestionGroupData.json
│   │   │   ├── Strategies
│   │   │   │   ├── BaseQuestionStrategy.swift
│   │   │   │   ├── QuestionStrategy.swift
│   │   │   │   ├── RandomQuestionStrategy.swift
│   │   │   │   └── SequentialQuestionStrategy.swift
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── LaunchScreen.storyboard
│   │   │   ├── QuestionGroupCell.swift
│   │   │   └── QuestionView.swift
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 09-builder-pattern
│   │   ├── final
│   │   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Observable.swift
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Strategy_Diagram.png
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── RabbleWabble
│   │   │   ├── RabbleWabble
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── Builders
│   │   │   │   │   └── QuestionGroupBuilder.swift
│   │   │   │   ├── Caretakers
│   │   │   │   │   ├── DiskCaretaker.swift
│   │   │   │   │   └── QuestionGroupCaretaker.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   ├── AppSettingsViewController.swift
│   │   │   │   │   ├── CreateQuestionGroupViewController.swift
│   │   │   │   │   ├── QuestionViewController.swift
│   │   │   │   │   └── SelectQuestionGroupViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   ├── AppSettings.swift
│   │   │   │   │   ├── Observable.swift
│   │   │   │   │   ├── QuestionGroup.swift
│   │   │   │   │   └── Question.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   │   └── logo.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── logo.pdf
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   └── QuestionGroupData.json
│   │   │   │   ├── Strategies
│   │   │   │   │   ├── BaseQuestionStrategy.swift
│   │   │   │   │   ├── QuestionStrategy.swift
│   │   │   │   │   ├── RandomQuestionStrategy.swift
│   │   │   │   │   └── SequentialQuestionStrategy.swift
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── CreateQuestionCell.swift
│   │   │   │   ├── CreateQuestionGroupTitleCell.swift
│   │   │   │   ├── JapaneseTextField.swift
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   ├── NewQuestionGroup.storyboard
│   │   │   │   ├── QuestionGroupCell.swift
│   │   │   │   └── QuestionView.swift
│   │   │   └── RabbleWabble.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   ├── resources
│   │   │   ├── Controllers
│   │   │   │   └── CreateQuestionGroupViewController.swift
│   │   │   └── Views
│   │   │   ├── CreateQuestionCell.swift
│   │   │   ├── CreateQuestionGroupTitleCell.swift
│   │   │   ├── JapaneseTextField.swift
│   │   │   └── NewQuestionGroup.storyboard
│   │   └── starter
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Builder_Diagram.png
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Delegation_Diagram.png
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Memento_Diagram.png
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── MVC_Diagram.png
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Observer_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Observable.swift
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Singleton_Diagram.png
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Strategy_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── Caretakers
│   │   │   │   ├── DiskCaretaker.swift
│   │   │   │   └── QuestionGroupCaretaker.swift
│   │   │   ├── Controllers
│   │   │   │   ├── AppSettingsViewController.swift
│   │   │   │   ├── CreateQuestionGroupViewController.swift
│   │   │   │   ├── QuestionViewController.swift
│   │   │   │   └── SelectQuestionGroupViewController.swift
│   │   │   ├── Models
│   │   │   │   ├── AppSettings.swift
│   │   │   │   ├── Observable.swift
│   │   │   │   ├── QuestionGroup.swift
│   │   │   │   └── Question.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_plus.pdf
│   │   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_x.pdf
│   │   │   │   │   ├── ic_menu.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_menu.pdf
│   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   └── logo.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── logo.pdf
│   │   │   │   ├── Info.plist
│   │   │   │   └── QuestionGroupData.json
│   │   │   ├── Strategies
│   │   │   │   ├── BaseQuestionStrategy.swift
│   │   │   │   ├── QuestionStrategy.swift
│   │   │   │   ├── RandomQuestionStrategy.swift
│   │   │   │   └── SequentialQuestionStrategy.swift
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   ├── CreateQuestionCell.swift
│   │   │   ├── CreateQuestionGroupTitleCell.swift
│   │   │   ├── JapaneseTextField.swift
│   │   │   ├── LaunchScreen.storyboard
│   │   │   ├── NewQuestionGroup.storyboard
│   │   │   ├── QuestionGroupCell.swift
│   │   │   └── QuestionView.swift
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 10-model-view-viewmodel-pattern
│   │   ├── final
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── CoffeeQuest
│   │   │   │   │   ├── AppDelegate
│   │   │   │   │   │   └── AppDelegate.swift
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   └── ViewController.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   ├── APIKeys.swift
│   │   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   │   ├── bad.imageset
│   │   │   │   │   │   │   │   ├── bad@2x.png
│   │   │   │   │   │   │   │   ├── bad@3x.png
│   │   │   │   │   │   │   │   ├── bad.png
│   │   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── good.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── good@2x.png
│   │   │   │   │   │   │   │   ├── good@3x.png
│   │   │   │   │   │   │   │   └── good.png
│   │   │   │   │   │   │   ├── great.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── great@2x.png
│   │   │   │   │   │   │   │   ├── great@3x.png
│   │   │   │   │   │   │   │   └── great.png
│   │   │   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── Launch@2x.png
│   │   │   │   │   │   │   │   ├── Launch@3x.png
│   │   │   │   │   │   │   │   └── Launch.png
│   │   │   │   │   │   │   ├── meh.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── meh@2x.png
│   │   │   │   │   │   │   │   ├── meh@3x.png
│   │   │   │   │   │   │   │   └── meh.png
│   │   │   │   │   │   │   └── terrible.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── terrible@2x.png
│   │   │   │   │   │   │   ├── terrible@3x.png
│   │   │   │   │   │   │   └── terrible.png
│   │   │   │   │   │   └── Info.plist
│   │   │   │   │   ├── ViewModels
│   │   │   │   │   │   └── BusinessMapViewModel.swift
│   │   │   │   │   └── Views
│   │   │   │   │   └── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   │   ├── project.pbxproj
│   │   │   │   │   ├── project.xcworkspace
│   │   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   │   └── xcshareddata
│   │   │   │   │   └── IDETemplateMacros.plist
│   │   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   │   └── xcshareddata
│   │   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   │   ├── Podfile
│   │   │   │   ├── Podfile.lock
│   │   │   │   └── Pods
│   │   │   │   ├── Manifest.lock
│   │   │   │   ├── Pods.xcodeproj
│   │   │   │   │   └── project.pbxproj
│   │   │   │   ├── Target Support Files
│   │   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   │   │   ├── Info.plist
│   │   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.markdown
│   │   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.plist
│   │   │   │   │   │   ├── Pods-CoffeeQuest.debug.xcconfig
│   │   │   │   │   │   ├── Pods-CoffeeQuest-dummy.m
│   │   │   │   │   │   ├── Pods-CoffeeQuest-frameworks.sh
│   │   │   │   │   │   ├── Pods-CoffeeQuest.modulemap
│   │   │   │   │   │   ├── Pods-CoffeeQuest.release.xcconfig
│   │   │   │   │   │   ├── Pods-CoffeeQuest-resources.sh
│   │   │   │   │   │   └── Pods-CoffeeQuest-umbrella.h
│   │   │   │   │   └── YelpAPI
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── YelpAPI-dummy.m
│   │   │   │   │   ├── YelpAPI.modulemap
│   │   │   │   │   ├── YelpAPI-prefix.pch
│   │   │   │   │   ├── YelpAPI-umbrella.h
│   │   │   │   │   └── YelpAPI.xcconfig
│   │   │   │   └── YelpAPI
│   │   │   │   ├── Classes
│   │   │   │   │   ├── Client
│   │   │   │   │   │   ├── YLPClient+Business.h
│   │   │   │   │   │   ├── YLPClient+Business.m
│   │   │   │   │   │   ├── YLPClient.h
│   │   │   │   │   │   ├── YLPClient.m
│   │   │   │   │   │   ├── YLPClient+PhoneSearch.h
│   │   │   │   │   │   ├── YLPClient+PhoneSearch.m
│   │   │   │   │   │   ├── YLPClientPrivate.h
│   │   │   │   │   │   ├── YLPClient+Reviews.h
│   │   │   │   │   │   ├── YLPClient+Reviews.m
│   │   │   │   │   │   ├── YLPClient+Search.h
│   │   │   │   │   │   └── YLPClient+Search.m
│   │   │   │   │   ├── Common
│   │   │   │   │   │   ├── YLPCoordinate.h
│   │   │   │   │   │   └── YLPCoordinate.m
│   │   │   │   │   ├── Request
│   │   │   │   │   │   ├── YLPQuery.h
│   │   │   │   │   │   ├── YLPQuery.m
│   │   │   │   │   │   ├── YLPQueryPrivate.h
│   │   │   │   │   │   └── YLPSortType.h
│   │   │   │   │   ├── Response
│   │   │   │   │   │   ├── NSDictionary+YLPUtils.m
│   │   │   │   │   │   ├── YLPBusiness.h
│   │   │   │   │   │   ├── YLPBusiness.m
│   │   │   │   │   │   ├── YLPBusinessReviews.h
│   │   │   │   │   │   ├── YLPBusinessReviews.m
│   │   │   │   │   │   ├── YLPCategory.h
│   │   │   │   │   │   ├── YLPCategory.m
│   │   │   │   │   │   ├── YLPLocation.h
│   │   │   │   │   │   ├── YLPLocation.m
│   │   │   │   │   │   ├── YLPResponsePrivate.h
│   │   │   │   │   │   ├── YLPReview.h
│   │   │   │   │   │   ├── YLPReview.m
│   │   │   │   │   │   ├── YLPSearch.h
│   │   │   │   │   │   ├── YLPSearch.m
│   │   │   │   │   │   ├── YLPUser.h
│   │   │   │   │   │   └── YLPUser.m
│   │   │   │   │   └── YelpAPI.h
│   │   │   │   ├── LICENSE
│   │   │   │   └── README.md
│   │   │   └── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   ├── MVVM_Diagram.png
│   │   │   │   │   └── stuart.png
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── State_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── starter
│   │   ├── CoffeeQuest
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   └── ViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   └── MapPin.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── APIKeys.swift
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── bad.imageset
│   │   │   │   │   │   │   ├── bad@2x.png
│   │   │   │   │   │   │   ├── bad@3x.png
│   │   │   │   │   │   │   ├── bad.png
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── good.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── good@2x.png
│   │   │   │   │   │   │   ├── good@3x.png
│   │   │   │   │   │   │   └── good.png
│   │   │   │   │   │   ├── great.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── great@2x.png
│   │   │   │   │   │   │   ├── great@3x.png
│   │   │   │   │   │   │   └── great.png
│   │   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Launch@2x.png
│   │   │   │   │   │   │   ├── Launch@3x.png
│   │   │   │   │   │   │   └── Launch.png
│   │   │   │   │   │   ├── meh.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── meh@2x.png
│   │   │   │   │   │   │   ├── meh@3x.png
│   │   │   │   │   │   │   └── meh.png
│   │   │   │   │   │   └── terrible.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── terrible@2x.png
│   │   │   │   │   │   ├── terrible@3x.png
│   │   │   │   │   │   └── terrible.png
│   │   │   │   │   └── Info.plist
│   │   │   │   └── Views
│   │   │   │   └── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   ├── project.pbxproj
│   │   │   │   ├── project.xcworkspace
│   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDETemplateMacros.plist
│   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   ├── Podfile
│   │   │   ├── Podfile.lock
│   │   │   └── Pods
│   │   │   ├── Manifest.lock
│   │   │   ├── Pods.xcodeproj
│   │   │   │   └── project.pbxproj
│   │   │   ├── Target Support Files
│   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.markdown
│   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.plist
│   │   │   │   │   ├── Pods-CoffeeQuest.debug.xcconfig
│   │   │   │   │   ├── Pods-CoffeeQuest-dummy.m
│   │   │   │   │   ├── Pods-CoffeeQuest-frameworks.sh
│   │   │   │   │   ├── Pods-CoffeeQuest.modulemap
│   │   │   │   │   ├── Pods-CoffeeQuest.release.xcconfig
│   │   │   │   │   ├── Pods-CoffeeQuest-resources.sh
│   │   │   │   │   └── Pods-CoffeeQuest-umbrella.h
│   │   │   │   └── YelpAPI
│   │   │   │   ├── Info.plist
│   │   │   │   ├── YelpAPI-dummy.m
│   │   │   │   ├── YelpAPI.modulemap
│   │   │   │   ├── YelpAPI-prefix.pch
│   │   │   │   ├── YelpAPI-umbrella.h
│   │   │   │   └── YelpAPI.xcconfig
│   │   │   └── YelpAPI
│   │   │   ├── Classes
│   │   │   │   ├── Client
│   │   │   │   │   ├── YLPClient+Business.h
│   │   │   │   │   ├── YLPClient+Business.m
│   │   │   │   │   ├── YLPClient.h
│   │   │   │   │   ├── YLPClient.m
│   │   │   │   │   ├── YLPClient+PhoneSearch.h
│   │   │   │   │   ├── YLPClient+PhoneSearch.m
│   │   │   │   │   ├── YLPClientPrivate.h
│   │   │   │   │   ├── YLPClient+Reviews.h
│   │   │   │   │   ├── YLPClient+Reviews.m
│   │   │   │   │   ├── YLPClient+Search.h
│   │   │   │   │   └── YLPClient+Search.m
│   │   │   │   ├── Common
│   │   │   │   │   ├── YLPCoordinate.h
│   │   │   │   │   └── YLPCoordinate.m
│   │   │   │   ├── Request
│   │   │   │   │   ├── YLPQuery.h
│   │   │   │   │   ├── YLPQuery.m
│   │   │   │   │   ├── YLPQueryPrivate.h
│   │   │   │   │   └── YLPSortType.h
│   │   │   │   ├── Response
│   │   │   │   │   ├── NSDictionary+YLPUtils.m
│   │   │   │   │   ├── YLPBusiness.h
│   │   │   │   │   ├── YLPBusiness.m
│   │   │   │   │   ├── YLPBusinessReviews.h
│   │   │   │   │   ├── YLPBusinessReviews.m
│   │   │   │   │   ├── YLPCategory.h
│   │   │   │   │   ├── YLPCategory.m
│   │   │   │   │   ├── YLPLocation.h
│   │   │   │   │   ├── YLPLocation.m
│   │   │   │   │   ├── YLPResponsePrivate.h
│   │   │   │   │   ├── YLPReview.h
│   │   │   │   │   ├── YLPReview.m
│   │   │   │   │   ├── YLPSearch.h
│   │   │   │   │   ├── YLPSearch.m
│   │   │   │   │   ├── YLPUser.h
│   │   │   │   │   └── YLPUser.m
│   │   │   │   └── YelpAPI.h
│   │   │   ├── LICENSE
│   │   │   └── README.md
│   │   └── IntermediateDesignPatterns.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   ├── contents.xcplayground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Adapter_Diagram.png
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Facade_Diagram.png
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Factory_Diagram.png
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Iterator_Diagram.png
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── Resources
│   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   └── Sources
│   │   │   │   └── MulticastDelegate.swift
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   ├── MVVM_Diagram.png
│   │   │   │   └── stuart.png
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Prototype_Diagram.png
│   │   │   └── State.xcplaygroundpage
│   │   │   ├── Contents.swift
│   │   │   └── Resources
│   │   │   └── State_Diagram.png
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── 11-factory-pattern
│   │   ├── final
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── CoffeeQuest
│   │   │   │   │   ├── AppDelegate
│   │   │   │   │   │   └── AppDelegate.swift
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   └── ViewController.swift
│   │   │   │   │   ├── Factories
│   │   │   │   │   │   └── AnnotationFactory.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   ├── APIKeys.swift
│   │   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   │   ├── bad.imageset
│   │   │   │   │   │   │   │   ├── bad@2x.png
│   │   │   │   │   │   │   │   ├── bad@3x.png
│   │   │   │   │   │   │   │   ├── bad.png
│   │   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── good.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── good@2x.png
│   │   │   │   │   │   │   │   ├── good@3x.png
│   │   │   │   │   │   │   │   └── good.png
│   │   │   │   │   │   │   ├── great.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── great@2x.png
│   │   │   │   │   │   │   │   ├── great@3x.png
│   │   │   │   │   │   │   │   └── great.png
│   │   │   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── Launch@2x.png
│   │   │   │   │   │   │   │   ├── Launch@3x.png
│   │   │   │   │   │   │   │   └── Launch.png
│   │   │   │   │   │   │   ├── meh.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── meh@2x.png
│   │   │   │   │   │   │   │   ├── meh@3x.png
│   │   │   │   │   │   │   │   └── meh.png
│   │   │   │   │   │   │   └── terrible.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── terrible@2x.png
│   │   │   │   │   │   │   ├── terrible@3x.png
│   │   │   │   │   │   │   └── terrible.png
│   │   │   │   │   │   └── Info.plist
│   │   │   │   │   ├── ViewModels
│   │   │   │   │   │   └── BusinessMapViewModel.swift
│   │   │   │   │   └── Views
│   │   │   │   │   └── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   │   ├── project.pbxproj
│   │   │   │   │   ├── project.xcworkspace
│   │   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   │   └── xcshareddata
│   │   │   │   │   └── IDETemplateMacros.plist
│   │   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   │   └── xcshareddata
│   │   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   │   ├── Podfile
│   │   │   │   ├── Podfile.lock
│   │   │   │   └── Pods
│   │   │   │   ├── Manifest.lock
│   │   │   │   ├── Pods.xcodeproj
│   │   │   │   │   └── project.pbxproj
│   │   │   │   ├── Target Support Files
│   │   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   │   │   ├── Info.plist
│   │   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.markdown
│   │   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.plist
│   │   │   │   │   │   ├── Pods-CoffeeQuest.debug.xcconfig
│   │   │   │   │   │   ├── Pods-CoffeeQuest-dummy.m
│   │   │   │   │   │   ├── Pods-CoffeeQuest-frameworks.sh
│   │   │   │   │   │   ├── Pods-CoffeeQuest.modulemap
│   │   │   │   │   │   ├── Pods-CoffeeQuest.release.xcconfig
│   │   │   │   │   │   ├── Pods-CoffeeQuest-resources.sh
│   │   │   │   │   │   └── Pods-CoffeeQuest-umbrella.h
│   │   │   │   │   └── YelpAPI
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── YelpAPI-dummy.m
│   │   │   │   │   ├── YelpAPI.modulemap
│   │   │   │   │   ├── YelpAPI-prefix.pch
│   │   │   │   │   ├── YelpAPI-umbrella.h
│   │   │   │   │   └── YelpAPI.xcconfig
│   │   │   │   └── YelpAPI
│   │   │   │   ├── Classes
│   │   │   │   │   ├── Client
│   │   │   │   │   │   ├── YLPClient+Business.h
│   │   │   │   │   │   ├── YLPClient+Business.m
│   │   │   │   │   │   ├── YLPClient.h
│   │   │   │   │   │   ├── YLPClient.m
│   │   │   │   │   │   ├── YLPClient+PhoneSearch.h
│   │   │   │   │   │   ├── YLPClient+PhoneSearch.m
│   │   │   │   │   │   ├── YLPClientPrivate.h
│   │   │   │   │   │   ├── YLPClient+Reviews.h
│   │   │   │   │   │   ├── YLPClient+Reviews.m
│   │   │   │   │   │   ├── YLPClient+Search.h
│   │   │   │   │   │   └── YLPClient+Search.m
│   │   │   │   │   ├── Common
│   │   │   │   │   │   ├── YLPCoordinate.h
│   │   │   │   │   │   └── YLPCoordinate.m
│   │   │   │   │   ├── Request
│   │   │   │   │   │   ├── YLPQuery.h
│   │   │   │   │   │   ├── YLPQuery.m
│   │   │   │   │   │   ├── YLPQueryPrivate.h
│   │   │   │   │   │   └── YLPSortType.h
│   │   │   │   │   ├── Response
│   │   │   │   │   │   ├── NSDictionary+YLPUtils.m
│   │   │   │   │   │   ├── YLPBusiness.h
│   │   │   │   │   │   ├── YLPBusiness.m
│   │   │   │   │   │   ├── YLPBusinessReviews.h
│   │   │   │   │   │   ├── YLPBusinessReviews.m
│   │   │   │   │   │   ├── YLPCategory.h
│   │   │   │   │   │   ├── YLPCategory.m
│   │   │   │   │   │   ├── YLPLocation.h
│   │   │   │   │   │   ├── YLPLocation.m
│   │   │   │   │   │   ├── YLPResponsePrivate.h
│   │   │   │   │   │   ├── YLPReview.h
│   │   │   │   │   │   ├── YLPReview.m
│   │   │   │   │   │   ├── YLPSearch.h
│   │   │   │   │   │   ├── YLPSearch.m
│   │   │   │   │   │   ├── YLPUser.h
│   │   │   │   │   │   └── YLPUser.m
│   │   │   │   │   └── YelpAPI.h
│   │   │   │   ├── LICENSE
│   │   │   │   └── README.md
│   │   │   └── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   ├── MVVM_Diagram.png
│   │   │   │   │   └── stuart.png
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── State_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── starter
│   │   ├── CoffeeQuest
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   └── ViewController.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── APIKeys.swift
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── bad.imageset
│   │   │   │   │   │   │   ├── bad@2x.png
│   │   │   │   │   │   │   ├── bad@3x.png
│   │   │   │   │   │   │   ├── bad.png
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── good.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── good@2x.png
│   │   │   │   │   │   │   ├── good@3x.png
│   │   │   │   │   │   │   └── good.png
│   │   │   │   │   │   ├── great.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── great@2x.png
│   │   │   │   │   │   │   ├── great@3x.png
│   │   │   │   │   │   │   └── great.png
│   │   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Launch@2x.png
│   │   │   │   │   │   │   ├── Launch@3x.png
│   │   │   │   │   │   │   └── Launch.png
│   │   │   │   │   │   ├── meh.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── meh@2x.png
│   │   │   │   │   │   │   ├── meh@3x.png
│   │   │   │   │   │   │   └── meh.png
│   │   │   │   │   │   └── terrible.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── terrible@2x.png
│   │   │   │   │   │   ├── terrible@3x.png
│   │   │   │   │   │   └── terrible.png
│   │   │   │   │   └── Info.plist
│   │   │   │   ├── ViewModels
│   │   │   │   │   └── BusinessMapViewModel.swift
│   │   │   │   └── Views
│   │   │   │   └── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   ├── project.pbxproj
│   │   │   │   ├── project.xcworkspace
│   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDETemplateMacros.plist
│   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   ├── Podfile
│   │   │   ├── Podfile.lock
│   │   │   └── Pods
│   │   │   ├── Manifest.lock
│   │   │   ├── Pods.xcodeproj
│   │   │   │   └── project.pbxproj
│   │   │   ├── Target Support Files
│   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.markdown
│   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.plist
│   │   │   │   │   ├── Pods-CoffeeQuest.debug.xcconfig
│   │   │   │   │   ├── Pods-CoffeeQuest-dummy.m
│   │   │   │   │   ├── Pods-CoffeeQuest-frameworks.sh
│   │   │   │   │   ├── Pods-CoffeeQuest.modulemap
│   │   │   │   │   ├── Pods-CoffeeQuest.release.xcconfig
│   │   │   │   │   ├── Pods-CoffeeQuest-resources.sh
│   │   │   │   │   └── Pods-CoffeeQuest-umbrella.h
│   │   │   │   └── YelpAPI
│   │   │   │   ├── Info.plist
│   │   │   │   ├── YelpAPI-dummy.m
│   │   │   │   ├── YelpAPI.modulemap
│   │   │   │   ├── YelpAPI-prefix.pch
│   │   │   │   ├── YelpAPI-umbrella.h
│   │   │   │   └── YelpAPI.xcconfig
│   │   │   └── YelpAPI
│   │   │   ├── Classes
│   │   │   │   ├── Client
│   │   │   │   │   ├── YLPClient+Business.h
│   │   │   │   │   ├── YLPClient+Business.m
│   │   │   │   │   ├── YLPClient.h
│   │   │   │   │   ├── YLPClient.m
│   │   │   │   │   ├── YLPClient+PhoneSearch.h
│   │   │   │   │   ├── YLPClient+PhoneSearch.m
│   │   │   │   │   ├── YLPClientPrivate.h
│   │   │   │   │   ├── YLPClient+Reviews.h
│   │   │   │   │   ├── YLPClient+Reviews.m
│   │   │   │   │   ├── YLPClient+Search.h
│   │   │   │   │   └── YLPClient+Search.m
│   │   │   │   ├── Common
│   │   │   │   │   ├── YLPCoordinate.h
│   │   │   │   │   └── YLPCoordinate.m
│   │   │   │   ├── Request
│   │   │   │   │   ├── YLPQuery.h
│   │   │   │   │   ├── YLPQuery.m
│   │   │   │   │   ├── YLPQueryPrivate.h
│   │   │   │   │   └── YLPSortType.h
│   │   │   │   ├── Response
│   │   │   │   │   ├── NSDictionary+YLPUtils.m
│   │   │   │   │   ├── YLPBusiness.h
│   │   │   │   │   ├── YLPBusiness.m
│   │   │   │   │   ├── YLPBusinessReviews.h
│   │   │   │   │   ├── YLPBusinessReviews.m
│   │   │   │   │   ├── YLPCategory.h
│   │   │   │   │   ├── YLPCategory.m
│   │   │   │   │   ├── YLPLocation.h
│   │   │   │   │   ├── YLPLocation.m
│   │   │   │   │   ├── YLPResponsePrivate.h
│   │   │   │   │   ├── YLPReview.h
│   │   │   │   │   ├── YLPReview.m
│   │   │   │   │   ├── YLPSearch.h
│   │   │   │   │   ├── YLPSearch.m
│   │   │   │   │   ├── YLPUser.h
│   │   │   │   │   └── YLPUser.m
│   │   │   │   └── YelpAPI.h
│   │   │   ├── LICENSE
│   │   │   └── README.md
│   │   └── IntermediateDesignPatterns.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   ├── contents.xcplayground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Adapter_Diagram.png
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Facade_Diagram.png
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Factory_Diagram.png
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Iterator_Diagram.png
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── Resources
│   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   └── Sources
│   │   │   │   └── MulticastDelegate.swift
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   ├── MVVM_Diagram.png
│   │   │   │   └── stuart.png
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Prototype_Diagram.png
│   │   │   └── State.xcplaygroundpage
│   │   │   ├── Contents.swift
│   │   │   └── Resources
│   │   │   └── State_Diagram.png
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── 12-adapter-pattern
│   │   ├── final
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── CoffeeQuest
│   │   │   │   │   ├── AppDelegate
│   │   │   │   │   │   └── AppDelegate.swift
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   └── ViewController.swift
│   │   │   │   │   ├── Factories
│   │   │   │   │   │   └── AnnotationFactory.swift
│   │   │   │   │   ├── Models
│   │   │   │   │   │   └── Protocols.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   ├── APIKeys.swift
│   │   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   │   ├── bad.imageset
│   │   │   │   │   │   │   │   ├── bad@2x.png
│   │   │   │   │   │   │   │   ├── bad@3x.png
│   │   │   │   │   │   │   │   ├── bad.png
│   │   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── good.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── good@2x.png
│   │   │   │   │   │   │   │   ├── good@3x.png
│   │   │   │   │   │   │   │   └── good.png
│   │   │   │   │   │   │   ├── great.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── great@2x.png
│   │   │   │   │   │   │   │   ├── great@3x.png
│   │   │   │   │   │   │   │   └── great.png
│   │   │   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── Launch@2x.png
│   │   │   │   │   │   │   │   ├── Launch@3x.png
│   │   │   │   │   │   │   │   └── Launch.png
│   │   │   │   │   │   │   ├── meh.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── meh@2x.png
│   │   │   │   │   │   │   │   ├── meh@3x.png
│   │   │   │   │   │   │   │   └── meh.png
│   │   │   │   │   │   │   └── terrible.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── terrible@2x.png
│   │   │   │   │   │   │   ├── terrible@3x.png
│   │   │   │   │   │   │   └── terrible.png
│   │   │   │   │   │   └── Info.plist
│   │   │   │   │   ├── ViewModels
│   │   │   │   │   │   └── BusinessMapViewModel.swift
│   │   │   │   │   └── Views
│   │   │   │   │   └── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   │   ├── project.pbxproj
│   │   │   │   │   ├── project.xcworkspace
│   │   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   │   └── xcshareddata
│   │   │   │   │   └── IDETemplateMacros.plist
│   │   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   │   └── xcshareddata
│   │   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   │   ├── Podfile
│   │   │   │   ├── Podfile.lock
│   │   │   │   └── Pods
│   │   │   │   ├── Manifest.lock
│   │   │   │   ├── Pods.xcodeproj
│   │   │   │   │   └── project.pbxproj
│   │   │   │   ├── Target Support Files
│   │   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   │   │   ├── Info.plist
│   │   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.markdown
│   │   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.plist
│   │   │   │   │   │   ├── Pods-CoffeeQuest.debug.xcconfig
│   │   │   │   │   │   ├── Pods-CoffeeQuest-dummy.m
│   │   │   │   │   │   ├── Pods-CoffeeQuest-frameworks.sh
│   │   │   │   │   │   ├── Pods-CoffeeQuest.modulemap
│   │   │   │   │   │   ├── Pods-CoffeeQuest.release.xcconfig
│   │   │   │   │   │   ├── Pods-CoffeeQuest-resources.sh
│   │   │   │   │   │   └── Pods-CoffeeQuest-umbrella.h
│   │   │   │   │   └── YelpAPI
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── YelpAPI-dummy.m
│   │   │   │   │   ├── YelpAPI.modulemap
│   │   │   │   │   ├── YelpAPI-prefix.pch
│   │   │   │   │   ├── YelpAPI-umbrella.h
│   │   │   │   │   └── YelpAPI.xcconfig
│   │   │   │   └── YelpAPI
│   │   │   │   ├── Classes
│   │   │   │   │   ├── Client
│   │   │   │   │   │   ├── YLPClient+Business.h
│   │   │   │   │   │   ├── YLPClient+Business.m
│   │   │   │   │   │   ├── YLPClient.h
│   │   │   │   │   │   ├── YLPClient.m
│   │   │   │   │   │   ├── YLPClient+PhoneSearch.h
│   │   │   │   │   │   ├── YLPClient+PhoneSearch.m
│   │   │   │   │   │   ├── YLPClientPrivate.h
│   │   │   │   │   │   ├── YLPClient+Reviews.h
│   │   │   │   │   │   ├── YLPClient+Reviews.m
│   │   │   │   │   │   ├── YLPClient+Search.h
│   │   │   │   │   │   └── YLPClient+Search.m
│   │   │   │   │   ├── Common
│   │   │   │   │   │   ├── YLPCoordinate.h
│   │   │   │   │   │   └── YLPCoordinate.m
│   │   │   │   │   ├── Request
│   │   │   │   │   │   ├── YLPQuery.h
│   │   │   │   │   │   ├── YLPQuery.m
│   │   │   │   │   │   ├── YLPQueryPrivate.h
│   │   │   │   │   │   └── YLPSortType.h
│   │   │   │   │   ├── Response
│   │   │   │   │   │   ├── NSDictionary+YLPUtils.m
│   │   │   │   │   │   ├── YLPBusiness.h
│   │   │   │   │   │   ├── YLPBusiness.m
│   │   │   │   │   │   ├── YLPBusinessReviews.h
│   │   │   │   │   │   ├── YLPBusinessReviews.m
│   │   │   │   │   │   ├── YLPCategory.h
│   │   │   │   │   │   ├── YLPCategory.m
│   │   │   │   │   │   ├── YLPLocation.h
│   │   │   │   │   │   ├── YLPLocation.m
│   │   │   │   │   │   ├── YLPResponsePrivate.h
│   │   │   │   │   │   ├── YLPReview.h
│   │   │   │   │   │   ├── YLPReview.m
│   │   │   │   │   │   ├── YLPSearch.h
│   │   │   │   │   │   ├── YLPSearch.m
│   │   │   │   │   │   ├── YLPUser.h
│   │   │   │   │   │   └── YLPUser.m
│   │   │   │   │   └── YelpAPI.h
│   │   │   │   ├── LICENSE
│   │   │   │   └── README.md
│   │   │   └── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   ├── MVVM_Diagram.png
│   │   │   │   │   └── stuart.png
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── State_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── starter
│   │   ├── CoffeeQuest
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   └── ViewController.swift
│   │   │   │   ├── Factories
│   │   │   │   │   └── AnnotationFactory.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── APIKeys.swift
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── bad.imageset
│   │   │   │   │   │   │   ├── bad@2x.png
│   │   │   │   │   │   │   ├── bad@3x.png
│   │   │   │   │   │   │   ├── bad.png
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── good.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── good@2x.png
│   │   │   │   │   │   │   ├── good@3x.png
│   │   │   │   │   │   │   └── good.png
│   │   │   │   │   │   ├── great.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── great@2x.png
│   │   │   │   │   │   │   ├── great@3x.png
│   │   │   │   │   │   │   └── great.png
│   │   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Launch@2x.png
│   │   │   │   │   │   │   ├── Launch@3x.png
│   │   │   │   │   │   │   └── Launch.png
│   │   │   │   │   │   ├── meh.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── meh@2x.png
│   │   │   │   │   │   │   ├── meh@3x.png
│   │   │   │   │   │   │   └── meh.png
│   │   │   │   │   │   └── terrible.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── terrible@2x.png
│   │   │   │   │   │   ├── terrible@3x.png
│   │   │   │   │   │   └── terrible.png
│   │   │   │   │   └── Info.plist
│   │   │   │   ├── ViewModels
│   │   │   │   │   └── BusinessMapViewModel.swift
│   │   │   │   └── Views
│   │   │   │   └── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   ├── project.pbxproj
│   │   │   │   ├── project.xcworkspace
│   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDETemplateMacros.plist
│   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   ├── Podfile
│   │   │   ├── Podfile.lock
│   │   │   └── Pods
│   │   │   ├── Manifest.lock
│   │   │   ├── Pods.xcodeproj
│   │   │   │   └── project.pbxproj
│   │   │   ├── Target Support Files
│   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.markdown
│   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.plist
│   │   │   │   │   ├── Pods-CoffeeQuest.debug.xcconfig
│   │   │   │   │   ├── Pods-CoffeeQuest-dummy.m
│   │   │   │   │   ├── Pods-CoffeeQuest-frameworks.sh
│   │   │   │   │   ├── Pods-CoffeeQuest.modulemap
│   │   │   │   │   ├── Pods-CoffeeQuest.release.xcconfig
│   │   │   │   │   ├── Pods-CoffeeQuest-resources.sh
│   │   │   │   │   └── Pods-CoffeeQuest-umbrella.h
│   │   │   │   └── YelpAPI
│   │   │   │   ├── Info.plist
│   │   │   │   ├── YelpAPI-dummy.m
│   │   │   │   ├── YelpAPI.modulemap
│   │   │   │   ├── YelpAPI-prefix.pch
│   │   │   │   ├── YelpAPI-umbrella.h
│   │   │   │   └── YelpAPI.xcconfig
│   │   │   └── YelpAPI
│   │   │   ├── Classes
│   │   │   │   ├── Client
│   │   │   │   │   ├── YLPClient+Business.h
│   │   │   │   │   ├── YLPClient+Business.m
│   │   │   │   │   ├── YLPClient.h
│   │   │   │   │   ├── YLPClient.m
│   │   │   │   │   ├── YLPClient+PhoneSearch.h
│   │   │   │   │   ├── YLPClient+PhoneSearch.m
│   │   │   │   │   ├── YLPClientPrivate.h
│   │   │   │   │   ├── YLPClient+Reviews.h
│   │   │   │   │   ├── YLPClient+Reviews.m
│   │   │   │   │   ├── YLPClient+Search.h
│   │   │   │   │   └── YLPClient+Search.m
│   │   │   │   ├── Common
│   │   │   │   │   ├── YLPCoordinate.h
│   │   │   │   │   └── YLPCoordinate.m
│   │   │   │   ├── Request
│   │   │   │   │   ├── YLPQuery.h
│   │   │   │   │   ├── YLPQuery.m
│   │   │   │   │   ├── YLPQueryPrivate.h
│   │   │   │   │   └── YLPSortType.h
│   │   │   │   ├── Response
│   │   │   │   │   ├── NSDictionary+YLPUtils.m
│   │   │   │   │   ├── YLPBusiness.h
│   │   │   │   │   ├── YLPBusiness.m
│   │   │   │   │   ├── YLPBusinessReviews.h
│   │   │   │   │   ├── YLPBusinessReviews.m
│   │   │   │   │   ├── YLPCategory.h
│   │   │   │   │   ├── YLPCategory.m
│   │   │   │   │   ├── YLPLocation.h
│   │   │   │   │   ├── YLPLocation.m
│   │   │   │   │   ├── YLPResponsePrivate.h
│   │   │   │   │   ├── YLPReview.h
│   │   │   │   │   ├── YLPReview.m
│   │   │   │   │   ├── YLPSearch.h
│   │   │   │   │   ├── YLPSearch.m
│   │   │   │   │   ├── YLPUser.h
│   │   │   │   │   └── YLPUser.m
│   │   │   │   └── YelpAPI.h
│   │   │   ├── LICENSE
│   │   │   └── README.md
│   │   └── IntermediateDesignPatterns.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   ├── contents.xcplayground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Adapter_Diagram.png
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Facade_Diagram.png
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Factory_Diagram.png
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Iterator_Diagram.png
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── Resources
│   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   └── Sources
│   │   │   │   └── MulticastDelegate.swift
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   ├── MVVM_Diagram.png
│   │   │   │   └── stuart.png
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Prototype_Diagram.png
│   │   │   └── State.xcplaygroundpage
│   │   │   ├── Contents.swift
│   │   │   └── Resources
│   │   │   └── State_Diagram.png
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── 13-iterator-pattern
│   │   ├── final
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── CoffeeQuest
│   │   │   │   │   ├── AppDelegate
│   │   │   │   │   │   └── AppDelegate.swift
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   └── ViewController.swift
│   │   │   │   │   ├── Factories
│   │   │   │   │   │   └── AnnotationFactory.swift
│   │   │   │   │   ├── Models
│   │   │   │   │   │   ├── Filter.swift
│   │   │   │   │   │   └── Protocols.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   ├── APIKeys.swift
│   │   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   │   ├── bad.imageset
│   │   │   │   │   │   │   │   ├── bad@2x.png
│   │   │   │   │   │   │   │   ├── bad@3x.png
│   │   │   │   │   │   │   │   ├── bad.png
│   │   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── good.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── good@2x.png
│   │   │   │   │   │   │   │   ├── good@3x.png
│   │   │   │   │   │   │   │   └── good.png
│   │   │   │   │   │   │   ├── great.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── great@2x.png
│   │   │   │   │   │   │   │   ├── great@3x.png
│   │   │   │   │   │   │   │   └── great.png
│   │   │   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── Launch@2x.png
│   │   │   │   │   │   │   │   ├── Launch@3x.png
│   │   │   │   │   │   │   │   └── Launch.png
│   │   │   │   │   │   │   ├── meh.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   ├── meh@2x.png
│   │   │   │   │   │   │   │   ├── meh@3x.png
│   │   │   │   │   │   │   │   └── meh.png
│   │   │   │   │   │   │   └── terrible.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── terrible@2x.png
│   │   │   │   │   │   │   ├── terrible@3x.png
│   │   │   │   │   │   │   └── terrible.png
│   │   │   │   │   │   └── Info.plist
│   │   │   │   │   ├── ViewModels
│   │   │   │   │   │   └── BusinessMapViewModel.swift
│   │   │   │   │   └── Views
│   │   │   │   │   └── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   │   ├── project.pbxproj
│   │   │   │   │   ├── project.xcworkspace
│   │   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   │   └── xcshareddata
│   │   │   │   │   └── IDETemplateMacros.plist
│   │   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   │   └── xcshareddata
│   │   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   │   ├── Podfile
│   │   │   │   ├── Podfile.lock
│   │   │   │   └── Pods
│   │   │   │   ├── Manifest.lock
│   │   │   │   ├── Pods.xcodeproj
│   │   │   │   │   └── project.pbxproj
│   │   │   │   ├── Target Support Files
│   │   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   │   │   ├── Info.plist
│   │   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.markdown
│   │   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.plist
│   │   │   │   │   │   ├── Pods-CoffeeQuest.debug.xcconfig
│   │   │   │   │   │   ├── Pods-CoffeeQuest-dummy.m
│   │   │   │   │   │   ├── Pods-CoffeeQuest-frameworks.sh
│   │   │   │   │   │   ├── Pods-CoffeeQuest.modulemap
│   │   │   │   │   │   ├── Pods-CoffeeQuest.release.xcconfig
│   │   │   │   │   │   ├── Pods-CoffeeQuest-resources.sh
│   │   │   │   │   │   └── Pods-CoffeeQuest-umbrella.h
│   │   │   │   │   └── YelpAPI
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── YelpAPI-dummy.m
│   │   │   │   │   ├── YelpAPI.modulemap
│   │   │   │   │   ├── YelpAPI-prefix.pch
│   │   │   │   │   ├── YelpAPI-umbrella.h
│   │   │   │   │   └── YelpAPI.xcconfig
│   │   │   │   └── YelpAPI
│   │   │   │   ├── Classes
│   │   │   │   │   ├── Client
│   │   │   │   │   │   ├── YLPClient+Business.h
│   │   │   │   │   │   ├── YLPClient+Business.m
│   │   │   │   │   │   ├── YLPClient.h
│   │   │   │   │   │   ├── YLPClient.m
│   │   │   │   │   │   ├── YLPClient+PhoneSearch.h
│   │   │   │   │   │   ├── YLPClient+PhoneSearch.m
│   │   │   │   │   │   ├── YLPClientPrivate.h
│   │   │   │   │   │   ├── YLPClient+Reviews.h
│   │   │   │   │   │   ├── YLPClient+Reviews.m
│   │   │   │   │   │   ├── YLPClient+Search.h
│   │   │   │   │   │   └── YLPClient+Search.m
│   │   │   │   │   ├── Common
│   │   │   │   │   │   ├── YLPCoordinate.h
│   │   │   │   │   │   └── YLPCoordinate.m
│   │   │   │   │   ├── Request
│   │   │   │   │   │   ├── YLPQuery.h
│   │   │   │   │   │   ├── YLPQuery.m
│   │   │   │   │   │   ├── YLPQueryPrivate.h
│   │   │   │   │   │   └── YLPSortType.h
│   │   │   │   │   ├── Response
│   │   │   │   │   │   ├── NSDictionary+YLPUtils.m
│   │   │   │   │   │   ├── YLPBusiness.h
│   │   │   │   │   │   ├── YLPBusiness.m
│   │   │   │   │   │   ├── YLPBusinessReviews.h
│   │   │   │   │   │   ├── YLPBusinessReviews.m
│   │   │   │   │   │   ├── YLPCategory.h
│   │   │   │   │   │   ├── YLPCategory.m
│   │   │   │   │   │   ├── YLPLocation.h
│   │   │   │   │   │   ├── YLPLocation.m
│   │   │   │   │   │   ├── YLPResponsePrivate.h
│   │   │   │   │   │   ├── YLPReview.h
│   │   │   │   │   │   ├── YLPReview.m
│   │   │   │   │   │   ├── YLPSearch.h
│   │   │   │   │   │   ├── YLPSearch.m
│   │   │   │   │   │   ├── YLPUser.h
│   │   │   │   │   │   └── YLPUser.m
│   │   │   │   │   └── YelpAPI.h
│   │   │   │   ├── LICENSE
│   │   │   │   └── README.md
│   │   │   └── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   ├── MVVM_Diagram.png
│   │   │   │   │   └── stuart.png
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── State_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── starter
│   │   ├── CoffeeQuest
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   └── ViewController.swift
│   │   │   │   ├── Factories
│   │   │   │   │   └── AnnotationFactory.swift
│   │   │   │   ├── Models
│   │   │   │   │   └── Protocols.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── APIKeys.swift
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── bad.imageset
│   │   │   │   │   │   │   ├── bad@2x.png
│   │   │   │   │   │   │   ├── bad@3x.png
│   │   │   │   │   │   │   ├── bad.png
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── good.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── good@2x.png
│   │   │   │   │   │   │   ├── good@3x.png
│   │   │   │   │   │   │   └── good.png
│   │   │   │   │   │   ├── great.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── great@2x.png
│   │   │   │   │   │   │   ├── great@3x.png
│   │   │   │   │   │   │   └── great.png
│   │   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Launch@2x.png
│   │   │   │   │   │   │   ├── Launch@3x.png
│   │   │   │   │   │   │   └── Launch.png
│   │   │   │   │   │   ├── meh.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── meh@2x.png
│   │   │   │   │   │   │   ├── meh@3x.png
│   │   │   │   │   │   │   └── meh.png
│   │   │   │   │   │   └── terrible.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── terrible@2x.png
│   │   │   │   │   │   ├── terrible@3x.png
│   │   │   │   │   │   └── terrible.png
│   │   │   │   │   └── Info.plist
│   │   │   │   ├── ViewModels
│   │   │   │   │   └── BusinessMapViewModel.swift
│   │   │   │   └── Views
│   │   │   │   └── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   ├── project.pbxproj
│   │   │   │   ├── project.xcworkspace
│   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDETemplateMacros.plist
│   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   ├── Podfile
│   │   │   ├── Podfile.lock
│   │   │   └── Pods
│   │   │   ├── Manifest.lock
│   │   │   ├── Pods.xcodeproj
│   │   │   │   └── project.pbxproj
│   │   │   ├── Target Support Files
│   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.markdown
│   │   │   │   │   ├── Pods-CoffeeQuest-acknowledgements.plist
│   │   │   │   │   ├── Pods-CoffeeQuest.debug.xcconfig
│   │   │   │   │   ├── Pods-CoffeeQuest-dummy.m
│   │   │   │   │   ├── Pods-CoffeeQuest-frameworks.sh
│   │   │   │   │   ├── Pods-CoffeeQuest.modulemap
│   │   │   │   │   ├── Pods-CoffeeQuest.release.xcconfig
│   │   │   │   │   ├── Pods-CoffeeQuest-resources.sh
│   │   │   │   │   └── Pods-CoffeeQuest-umbrella.h
│   │   │   │   └── YelpAPI
│   │   │   │   ├── Info.plist
│   │   │   │   ├── YelpAPI-dummy.m
│   │   │   │   ├── YelpAPI.modulemap
│   │   │   │   ├── YelpAPI-prefix.pch
│   │   │   │   ├── YelpAPI-umbrella.h
│   │   │   │   └── YelpAPI.xcconfig
│   │   │   └── YelpAPI
│   │   │   ├── Classes
│   │   │   │   ├── Client
│   │   │   │   │   ├── YLPClient+Business.h
│   │   │   │   │   ├── YLPClient+Business.m
│   │   │   │   │   ├── YLPClient.h
│   │   │   │   │   ├── YLPClient.m
│   │   │   │   │   ├── YLPClient+PhoneSearch.h
│   │   │   │   │   ├── YLPClient+PhoneSearch.m
│   │   │   │   │   ├── YLPClientPrivate.h
│   │   │   │   │   ├── YLPClient+Reviews.h
│   │   │   │   │   ├── YLPClient+Reviews.m
│   │   │   │   │   ├── YLPClient+Search.h
│   │   │   │   │   └── YLPClient+Search.m
│   │   │   │   ├── Common
│   │   │   │   │   ├── YLPCoordinate.h
│   │   │   │   │   └── YLPCoordinate.m
│   │   │   │   ├── Request
│   │   │   │   │   ├── YLPQuery.h
│   │   │   │   │   ├── YLPQuery.m
│   │   │   │   │   ├── YLPQueryPrivate.h
│   │   │   │   │   └── YLPSortType.h
│   │   │   │   ├── Response
│   │   │   │   │   ├── NSDictionary+YLPUtils.m
│   │   │   │   │   ├── YLPBusiness.h
│   │   │   │   │   ├── YLPBusiness.m
│   │   │   │   │   ├── YLPBusinessReviews.h
│   │   │   │   │   ├── YLPBusinessReviews.m
│   │   │   │   │   ├── YLPCategory.h
│   │   │   │   │   ├── YLPCategory.m
│   │   │   │   │   ├── YLPLocation.h
│   │   │   │   │   ├── YLPLocation.m
│   │   │   │   │   ├── YLPResponsePrivate.h
│   │   │   │   │   ├── YLPReview.h
│   │   │   │   │   ├── YLPReview.m
│   │   │   │   │   ├── YLPSearch.h
│   │   │   │   │   ├── YLPSearch.m
│   │   │   │   │   ├── YLPUser.h
│   │   │   │   │   └── YLPUser.m
│   │   │   │   └── YelpAPI.h
│   │   │   ├── LICENSE
│   │   │   └── README.md
│   │   └── IntermediateDesignPatterns.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   ├── contents.xcplayground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Adapter_Diagram.png
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Facade_Diagram.png
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Factory_Diagram.png
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Iterator_Diagram.png
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── Resources
│   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   └── Sources
│   │   │   │   └── MulticastDelegate.swift
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   ├── MVVM_Diagram.png
│   │   │   │   └── stuart.png
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── Prototype_Diagram.png
│   │   │   └── State.xcplaygroundpage
│   │   │   ├── Contents.swift
│   │   │   └── Resources
│   │   │   └── State_Diagram.png
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── 14-prototype-pattern
│   │   ├── final
│   │   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── MVVM_Diagram.png
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   │   └── State.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── State_Diagram.png
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── MirrorPad
│   │   │   ├── MirrorPad
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   └── ViewController.swift
│   │   │   │   ├── Protocols
│   │   │   │   │   └── Copying.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── expand_arrows.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── expand_arrows.pdf
│   │   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── launch_background@2x.png
│   │   │   │   │   │   ├── launch_background@3x.png
│   │   │   │   │   │   └── launch_background.png
│   │   │   │   │   └── Info.plist
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── DrawView.swift
│   │   │   │   └── LineShape.swift
│   │   │   └── MirrorPad.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── starter
│   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── MVVM_Diagram.png
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── State_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── MirrorPad
│   │   ├── MirrorPad
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Controllers
│   │   │   │   └── ViewController.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── expand_arrows.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── expand_arrows.pdf
│   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── launch_background@2x.png
│   │   │   │   │   ├── launch_background@3x.png
│   │   │   │   │   └── launch_background.png
│   │   │   │   └── Info.plist
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── DrawView.swift
│   │   │   └── LineShape.swift
│   │   └── MirrorPad.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 15-state-pattern
│   │   ├── final
│   │   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── MVVM_Diagram.png
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   │   └── State.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── State_Diagram.png
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── MirrorPad
│   │   │   ├── MirrorPad
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   └── ViewController.swift
│   │   │   │   ├── Protocols
│   │   │   │   │   └── Copying.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── expand_arrows.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── expand_arrows.pdf
│   │   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── launch_background@2x.png
│   │   │   │   │   │   ├── launch_background@3x.png
│   │   │   │   │   │   └── launch_background.png
│   │   │   │   │   └── Info.plist
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   └── DrawView
│   │   │   │   ├── DrawView.swift
│   │   │   │   ├── LineShape.swift
│   │   │   │   └── States
│   │   │   │   ├── AcceptInputState.swift
│   │   │   │   ├── AnimateState.swift
│   │   │   │   ├── ClearState.swift
│   │   │   │   ├── CopyState.swift
│   │   │   │   └── DrawViewState.swift
│   │   │   └── MirrorPad.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── starter
│   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── MVVM_Diagram.png
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── State_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── MirrorPad
│   │   ├── MirrorPad
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Controllers
│   │   │   │   └── ViewController.swift
│   │   │   ├── Protocols
│   │   │   │   └── Copying.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── expand_arrows.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── expand_arrows.pdf
│   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── launch_background@2x.png
│   │   │   │   │   ├── launch_background@3x.png
│   │   │   │   │   └── launch_background.png
│   │   │   │   └── Info.plist
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── DrawView.swift
│   │   │   └── LineShape.swift
│   │   └── MirrorPad.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 16-multicast-delegate-pattern
│   │   ├── final
│   │   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── MVVM_Diagram.png
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   │   └── State.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── State_Diagram.png
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── MirrorPad
│   │   │   ├── MirrorPad
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   └── ViewController.swift
│   │   │   │   ├── Protocols
│   │   │   │   │   ├── Copying.swift
│   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── expand_arrows.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── expand_arrows.pdf
│   │   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── launch_background@2x.png
│   │   │   │   │   │   ├── launch_background@3x.png
│   │   │   │   │   │   └── launch_background.png
│   │   │   │   │   └── Info.plist
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   └── DrawView
│   │   │   │   ├── DrawView.swift
│   │   │   │   ├── LineShape.swift
│   │   │   │   └── States
│   │   │   │   ├── AcceptInputState.swift
│   │   │   │   ├── AnimateState.swift
│   │   │   │   ├── ClearState.swift
│   │   │   │   ├── CopyState.swift
│   │   │   │   └── DrawViewState.swift
│   │   │   └── MirrorPad.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── starter
│   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── MVVM_Diagram.png
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── State_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── MirrorPad
│   │   ├── MirrorPad
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Controllers
│   │   │   │   └── ViewController.swift
│   │   │   ├── Protocols
│   │   │   │   └── Copying.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── expand_arrows.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── expand_arrows.pdf
│   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── launch_background@2x.png
│   │   │   │   │   ├── launch_background@3x.png
│   │   │   │   │   └── launch_background.png
│   │   │   │   └── Info.plist
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   └── DrawView
│   │   │   ├── DrawView.swift
│   │   │   ├── LineShape.swift
│   │   │   └── States
│   │   │   ├── AcceptInputState.swift
│   │   │   ├── AnimateState.swift
│   │   │   ├── ClearState.swift
│   │   │   ├── CopyState.swift
│   │   │   └── DrawViewState.swift
│   │   └── MirrorPad.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 17-facade-pattern
│   │   ├── final
│   │   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── MVVM_Diagram.png
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   │   └── State.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── State_Diagram.png
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── MirrorPad
│   │   │   ├── MirrorPad
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   └── ViewController.swift
│   │   │   │   ├── Facades
│   │   │   │   │   ├── DrawingSelectionViewController.swift
│   │   │   │   │   ├── ImageRenderer.swift
│   │   │   │   │   └── ShareFacade.swift
│   │   │   │   ├── Protocols
│   │   │   │   │   ├── Copying.swift
│   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── expand_arrows.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── expand_arrows.pdf
│   │   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── launch_background@2x.png
│   │   │   │   │   │   ├── launch_background@3x.png
│   │   │   │   │   │   └── launch_background.png
│   │   │   │   │   └── Info.plist
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── DrawingSelectionViewController.xib
│   │   │   │   └── DrawView
│   │   │   │   ├── DrawView.swift
│   │   │   │   ├── LineShape.swift
│   │   │   │   └── States
│   │   │   │   ├── AcceptInputState.swift
│   │   │   │   ├── AnimateState.swift
│   │   │   │   ├── ClearState.swift
│   │   │   │   ├── CopyState.swift
│   │   │   │   └── DrawViewState.swift
│   │   │   └── MirrorPad.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   ├── resources
│   │   │   ├── DrawingSelectionViewController.swift
│   │   │   ├── DrawingSelectionViewController.xib
│   │   │   └── ImageRenderer.swift
│   │   └── starter
│   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Adapter_Diagram.png
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Facade_Diagram.png
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Factory_Diagram.png
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Iterator_Diagram.png
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── MulticastDelegate_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── MulticastDelegate.swift
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── MVVM_Diagram.png
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Prototype_Diagram.png
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   ├── Contents.swift
│   │   │   │   └── Resources
│   │   │   │   └── State_Diagram.png
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── MirrorPad
│   │   ├── MirrorPad
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Controllers
│   │   │   │   └── ViewController.swift
│   │   │   ├── Protocols
│   │   │   │   ├── Copying.swift
│   │   │   │   └── MulticastDelegate.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── expand_arrows.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── expand_arrows.pdf
│   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── launch_background@2x.png
│   │   │   │   │   ├── launch_background@3x.png
│   │   │   │   │   └── launch_background.png
│   │   │   │   └── Info.plist
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   └── DrawView
│   │   │   ├── DrawView.swift
│   │   │   ├── LineShape.swift
│   │   │   └── States
│   │   │   ├── AcceptInputState.swift
│   │   │   ├── AnimateState.swift
│   │   │   ├── ClearState.swift
│   │   │   ├── CopyState.swift
│   │   │   └── DrawViewState.swift
│   │   └── MirrorPad.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 18-flyweight-pattern
│   │   ├── final
│   │   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Command_Diagram.png
│   │   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   ├── Controllers
│   │   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   │   └── Routers
│   │   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   │   └── Router.swift
│   │   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Mediator.swift
│   │   │   │   │   └── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── YetiJokes
│   │   │   ├── YetiJokes
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   └── ViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   ├── JokeProvider.swift
│   │   │   │   │   └── Joke.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── background.imageset
│   │   │   │   │   │   │   ├── background.png
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── cool_yeti.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── cool_yeti@2x.png
│   │   │   │   │   │   ├── cool_yeti@3x.png
│   │   │   │   │   │   └── cool_yeti.png
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   └── jokes.json
│   │   │   │   └── Views
│   │   │   │   └── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── YetiJokes.xcodeproj
│   │   │   │   ├── project.pbxproj
│   │   │   │   ├── project.xcworkspace
│   │   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   │   └── xcshareddata
│   │   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDETemplateMacros.plist
│   │   │   └── YetiTheme
│   │   │   ├── YetiTheme
│   │   │   │   ├── coolstory-regular.ttf
│   │   │   │   ├── Fonts.swift
│   │   │   │   ├── Info.plist
│   │   │   │   └── YetiTheme.h
│   │   │   └── YetiTheme.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── starter
│   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Command_Diagram.png
│   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   └── Routers
│   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   └── Router.swift
│   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Mediator.swift
│   │   │   │   └── Overview.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── YetiJokes
│   │   ├── YetiJokes
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Controllers
│   │   │   │   └── ViewController.swift
│   │   │   ├── Models
│   │   │   │   ├── JokeProvider.swift
│   │   │   │   └── Joke.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── background.imageset
│   │   │   │   │   │   ├── background.png
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── cool_yeti.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── cool_yeti@2x.png
│   │   │   │   │   ├── cool_yeti@3x.png
│   │   │   │   │   └── cool_yeti.png
│   │   │   │   ├── Info.plist
│   │   │   │   └── jokes.json
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── YetiJokes.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── YetiTheme
│   │   ├── YetiTheme
│   │   │   ├── coolstory-regular.ttf
│   │   │   ├── Fonts.swift
│   │   │   ├── Info.plist
│   │   │   └── YetiTheme.h
│   │   └── YetiTheme.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── 19-mediator-pattern
│   │   ├── final
│   │   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Command_Diagram.png
│   │   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   ├── Controllers
│   │   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   │   └── Routers
│   │   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   │   └── Router.swift
│   │   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Mediator.swift
│   │   │   │   │   └── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── YetiDate
│   │   │   ├── Podfile
│   │   │   ├── Podfile.lock
│   │   │   ├── Pods
│   │   │   │   ├── Manifest.lock
│   │   │   │   ├── Pods.xcodeproj
│   │   │   │   │   └── project.pbxproj
│   │   │   │   ├── Target Support Files
│   │   │   │   │   ├── Pods-YetiDate
│   │   │   │   │   │   ├── Info.plist
│   │   │   │   │   │   ├── Pods-YetiDate-acknowledgements.markdown
│   │   │   │   │   │   ├── Pods-YetiDate-acknowledgements.plist
│   │   │   │   │   │   ├── Pods-YetiDate.debug.xcconfig
│   │   │   │   │   │   ├── Pods-YetiDate-dummy.m
│   │   │   │   │   │   ├── Pods-YetiDate-frameworks.sh
│   │   │   │   │   │   ├── Pods-YetiDate.modulemap
│   │   │   │   │   │   ├── Pods-YetiDate.release.xcconfig
│   │   │   │   │   │   ├── Pods-YetiDate-resources.sh
│   │   │   │   │   │   └── Pods-YetiDate-umbrella.h
│   │   │   │   │   └── YelpAPI
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── YelpAPI-dummy.m
│   │   │   │   │   ├── YelpAPI.modulemap
│   │   │   │   │   ├── YelpAPI-prefix.pch
│   │   │   │   │   ├── YelpAPI-umbrella.h
│   │   │   │   │   └── YelpAPI.xcconfig
│   │   │   │   └── YelpAPI
│   │   │   │   ├── Classes
│   │   │   │   │   ├── Client
│   │   │   │   │   │   ├── YLPClient+Business.h
│   │   │   │   │   │   ├── YLPClient+Business.m
│   │   │   │   │   │   ├── YLPClient.h
│   │   │   │   │   │   ├── YLPClient.m
│   │   │   │   │   │   ├── YLPClient+PhoneSearch.h
│   │   │   │   │   │   ├── YLPClient+PhoneSearch.m
│   │   │   │   │   │   ├── YLPClientPrivate.h
│   │   │   │   │   │   ├── YLPClient+Reviews.h
│   │   │   │   │   │   ├── YLPClient+Reviews.m
│   │   │   │   │   │   ├── YLPClient+Search.h
│   │   │   │   │   │   └── YLPClient+Search.m
│   │   │   │   │   ├── Common
│   │   │   │   │   │   ├── YLPCoordinate.h
│   │   │   │   │   │   └── YLPCoordinate.m
│   │   │   │   │   ├── Request
│   │   │   │   │   │   ├── YLPQuery.h
│   │   │   │   │   │   ├── YLPQuery.m
│   │   │   │   │   │   ├── YLPQueryPrivate.h
│   │   │   │   │   │   └── YLPSortType.h
│   │   │   │   │   ├── Response
│   │   │   │   │   │   ├── NSDictionary+YLPUtils.m
│   │   │   │   │   │   ├── YLPBusiness.h
│   │   │   │   │   │   ├── YLPBusiness.m
│   │   │   │   │   │   ├── YLPBusinessReviews.h
│   │   │   │   │   │   ├── YLPBusinessReviews.m
│   │   │   │   │   │   ├── YLPCategory.h
│   │   │   │   │   │   ├── YLPCategory.m
│   │   │   │   │   │   ├── YLPLocation.h
│   │   │   │   │   │   ├── YLPLocation.m
│   │   │   │   │   │   ├── YLPResponsePrivate.h
│   │   │   │   │   │   ├── YLPReview.h
│   │   │   │   │   │   ├── YLPReview.m
│   │   │   │   │   │   ├── YLPSearch.h
│   │   │   │   │   │   ├── YLPSearch.m
│   │   │   │   │   │   ├── YLPUser.h
│   │   │   │   │   │   └── YLPUser.m
│   │   │   │   │   └── YelpAPI.h
│   │   │   │   ├── LICENSE
│   │   │   │   └── README.md
│   │   │   ├── YetiDate
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   ├── PlanDateViewController.swift
│   │   │   │   │   └── ReviewDateDetailsViewController.swift
│   │   │   │   ├── Extensions
│   │   │   │   │   ├── CLLocationCoordinate2D+Hashable.swift
│   │   │   │   │   └── YLPCoordinate+CLLocationCoordinate2D.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── APIKeys.swift
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── background_yeti_date.imageset
│   │   │   │   │   │   │   ├── background_yeti_date@2x.png
│   │   │   │   │   │   │   ├── background_yeti_date@3x.png
│   │   │   │   │   │   │   ├── background_yeti_date.png
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_bar.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── ic_bar@2x.png
│   │   │   │   │   │   │   ├── ic_bar@3x.png
│   │   │   │   │   │   │   └── ic_bar.png
│   │   │   │   │   │   ├── ic_bar_large.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── ic_bar_large@2x.png
│   │   │   │   │   │   │   ├── ic_bar_large@3x.png
│   │   │   │   │   │   │   └── ic_bar_large.png
│   │   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   │   ├── ic_food.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── ic_food@2x.png
│   │   │   │   │   │   │   ├── ic_food@3x.png
│   │   │   │   │   │   │   └── ic_food.png
│   │   │   │   │   │   ├── ic_food_large.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── ic_food_large@2x.png
│   │   │   │   │   │   │   ├── ic_food_large@3x.png
│   │   │   │   │   │   │   └── ic_food_large.png
│   │   │   │   │   │   ├── ic_movie.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── ic_movie@2x.png
│   │   │   │   │   │   │   ├── ic_movie@3x.png
│   │   │   │   │   │   │   └── ic_movie.png
│   │   │   │   │   │   └── ic_movie_large.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_movie_large@2x.png
│   │   │   │   │   │   ├── ic_movie_large@3x.png
│   │   │   │   │   │   └── ic_movie_large.png
│   │   │   │   │   └── Info.plist
│   │   │   │   ├── SearchClient
│   │   │   │   │   ├── Mediator.swift
│   │   │   │   │   ├── Protocols
│   │   │   │   │   │   ├── SearchClientDelegate.swift
│   │   │   │   │   │   ├── SearchColleagueMediating.swift
│   │   │   │   │   │   └── SearchColleague.swift
│   │   │   │   │   ├── SearchClient.swift
│   │   │   │   │   └── YelpSearchColleague.swift
│   │   │   │   ├── Utils
│   │   │   │   │   └── ContestedAnnotationTool.swift
│   │   │   │   ├── ViewModels
│   │   │   │   │   ├── BusinessMapViewModel.swift
│   │   │   │   │   ├── BusinessTableViewModel.swift
│   │   │   │   │   └── YelpCategory.swift
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   └── BusinessTableViewCell.swift
│   │   │   ├── YetiDate.xcodeproj
│   │   │   │   ├── project.pbxproj
│   │   │   │   ├── project.xcworkspace
│   │   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   │   └── xcshareddata
│   │   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   │   └── xcshareddata
│   │   │   │   ├── IDETemplateMacros.plist
│   │   │   │   └── xcschemes
│   │   │   │   └── YetiDate.xcscheme
│   │   │   └── YetiDate.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   ├── IDEWorkspaceChecks.plist
│   │   │   └── WorkspaceSettings.xcsettings
│   │   └── starter
│   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Command_Diagram.png
│   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   └── Routers
│   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   └── Router.swift
│   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Mediator.swift
│   │   │   │   └── Overview.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── YetiDate
│   │   ├── Podfile
│   │   ├── Podfile.lock
│   │   ├── Pods
│   │   │   ├── Manifest.lock
│   │   │   ├── Pods.xcodeproj
│   │   │   │   └── project.pbxproj
│   │   │   ├── Target Support Files
│   │   │   │   ├── Pods-YetiDate
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── Pods-YetiDate-acknowledgements.markdown
│   │   │   │   │   ├── Pods-YetiDate-acknowledgements.plist
│   │   │   │   │   ├── Pods-YetiDate.debug.xcconfig
│   │   │   │   │   ├── Pods-YetiDate-dummy.m
│   │   │   │   │   ├── Pods-YetiDate-frameworks.sh
│   │   │   │   │   ├── Pods-YetiDate.modulemap
│   │   │   │   │   ├── Pods-YetiDate.release.xcconfig
│   │   │   │   │   ├── Pods-YetiDate-resources.sh
│   │   │   │   │   └── Pods-YetiDate-umbrella.h
│   │   │   │   └── YelpAPI
│   │   │   │   ├── Info.plist
│   │   │   │   ├── YelpAPI-dummy.m
│   │   │   │   ├── YelpAPI.modulemap
│   │   │   │   ├── YelpAPI-prefix.pch
│   │   │   │   ├── YelpAPI-umbrella.h
│   │   │   │   └── YelpAPI.xcconfig
│   │   │   └── YelpAPI
│   │   │   ├── Classes
│   │   │   │   ├── Client
│   │   │   │   │   ├── YLPClient+Business.h
│   │   │   │   │   ├── YLPClient+Business.m
│   │   │   │   │   ├── YLPClient.h
│   │   │   │   │   ├── YLPClient.m
│   │   │   │   │   ├── YLPClient+PhoneSearch.h
│   │   │   │   │   ├── YLPClient+PhoneSearch.m
│   │   │   │   │   ├── YLPClientPrivate.h
│   │   │   │   │   ├── YLPClient+Reviews.h
│   │   │   │   │   ├── YLPClient+Reviews.m
│   │   │   │   │   ├── YLPClient+Search.h
│   │   │   │   │   └── YLPClient+Search.m
│   │   │   │   ├── Common
│   │   │   │   │   ├── YLPCoordinate.h
│   │   │   │   │   └── YLPCoordinate.m
│   │   │   │   ├── Request
│   │   │   │   │   ├── YLPQuery.h
│   │   │   │   │   ├── YLPQuery.m
│   │   │   │   │   ├── YLPQueryPrivate.h
│   │   │   │   │   └── YLPSortType.h
│   │   │   │   ├── Response
│   │   │   │   │   ├── NSDictionary+YLPUtils.m
│   │   │   │   │   ├── YLPBusiness.h
│   │   │   │   │   ├── YLPBusiness.m
│   │   │   │   │   ├── YLPBusinessReviews.h
│   │   │   │   │   ├── YLPBusinessReviews.m
│   │   │   │   │   ├── YLPCategory.h
│   │   │   │   │   ├── YLPCategory.m
│   │   │   │   │   ├── YLPLocation.h
│   │   │   │   │   ├── YLPLocation.m
│   │   │   │   │   ├── YLPResponsePrivate.h
│   │   │   │   │   ├── YLPReview.h
│   │   │   │   │   ├── YLPReview.m
│   │   │   │   │   ├── YLPSearch.h
│   │   │   │   │   ├── YLPSearch.m
│   │   │   │   │   ├── YLPUser.h
│   │   │   │   │   └── YLPUser.m
│   │   │   │   └── YelpAPI.h
│   │   │   ├── LICENSE
│   │   │   └── README.md
│   │   ├── YetiDate
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Controllers
│   │   │   │   ├── PlanDateViewController.swift
│   │   │   │   └── ReviewDateDetailsViewController.swift
│   │   │   ├── Extensions
│   │   │   │   ├── CLLocationCoordinate2D+Hashable.swift
│   │   │   │   └── YLPCoordinate+CLLocationCoordinate2D.swift
│   │   │   ├── Resources
│   │   │   │   ├── APIKeys.swift
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── background_yeti_date.imageset
│   │   │   │   │   │   ├── background_yeti_date@2x.png
│   │   │   │   │   │   ├── background_yeti_date@3x.png
│   │   │   │   │   │   ├── background_yeti_date.png
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ic_bar.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_bar@2x.png
│   │   │   │   │   │   ├── ic_bar@3x.png
│   │   │   │   │   │   └── ic_bar.png
│   │   │   │   │   ├── ic_bar_large.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_bar_large@2x.png
│   │   │   │   │   │   ├── ic_bar_large@3x.png
│   │   │   │   │   │   └── ic_bar_large.png
│   │   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_circle_check.pdf
│   │   │   │   │   ├── ic_food.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_food@2x.png
│   │   │   │   │   │   ├── ic_food@3x.png
│   │   │   │   │   │   └── ic_food.png
│   │   │   │   │   ├── ic_food_large.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_food_large@2x.png
│   │   │   │   │   │   ├── ic_food_large@3x.png
│   │   │   │   │   │   └── ic_food_large.png
│   │   │   │   │   ├── ic_movie.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_movie@2x.png
│   │   │   │   │   │   ├── ic_movie@3x.png
│   │   │   │   │   │   └── ic_movie.png
│   │   │   │   │   └── ic_movie_large.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ic_movie_large@2x.png
│   │   │   │   │   ├── ic_movie_large@3x.png
│   │   │   │   │   └── ic_movie_large.png
│   │   │   │   └── Info.plist
│   │   │   ├── SearchClient
│   │   │   │   ├── Mediator.swift
│   │   │   │   ├── Protocols
│   │   │   │   │   ├── SearchClientDelegate.swift
│   │   │   │   │   ├── SearchColleagueMediating.swift
│   │   │   │   │   └── SearchColleague.swift
│   │   │   │   ├── SearchClient.swift
│   │   │   │   └── YelpSearchColleague.swift
│   │   │   ├── Utils
│   │   │   │   └── ContestedAnnotationTool.swift
│   │   │   ├── ViewModels
│   │   │   │   ├── BusinessMapViewModel.swift
│   │   │   │   ├── BusinessTableViewModel.swift
│   │   │   │   └── YelpCategory.swift
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   └── BusinessTableViewCell.swift
│   │   ├── YetiDate.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   ├── IDETemplateMacros.plist
│   │   │   └── xcschemes
│   │   │   └── YetiDate.xcscheme
│   │   └── YetiDate.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   ├── IDEWorkspaceChecks.plist
│   │   └── WorkspaceSettings.xcsettings
│   ├── 20-composite-pattern
│   │   ├── final
│   │   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Command_Diagram.png
│   │   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   ├── Controllers
│   │   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   │   └── Routers
│   │   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   │   └── Router.swift
│   │   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Mediator.swift
│   │   │   │   │   └── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── DefeatYourToDoList
│   │   │   ├── DefeatYourToDoList
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   └── ViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   └── Models.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── door.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── door.png
│   │   │   │   │   │   ├── helmet.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── object-tool-helmet.png
│   │   │   │   │   │   ├── NinjaCat.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── NinjaCat_icon1_1024.png
│   │   │   │   │   │   └── treasure.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── object-treasure.png
│   │   │   │   │   └── Info.plist
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── ToDoCell.swift
│   │   │   │   └── ToDoCell.xib
│   │   │   └── DefeatYourToDoList.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── starter
│   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Command_Diagram.png
│   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   └── Routers
│   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   └── Router.swift
│   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Mediator.swift
│   │   │   │   └── Overview.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── DefeatYourToDoList
│   │   ├── DefeatYourToDoList
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Controllers
│   │   │   │   └── ViewController.swift
│   │   │   ├── Models
│   │   │   │   └── Models.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── door.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── door.png
│   │   │   │   │   ├── helmet.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── object-tool-helmet.png
│   │   │   │   │   ├── NinjaCat.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── NinjaCat_icon1_1024.png
│   │   │   │   │   └── treasure.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── object-treasure.png
│   │   │   │   └── Info.plist
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── ToDoCell.swift
│   │   │   └── ToDoCell.xib
│   │   └── DefeatYourToDoList.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 21-command-pattern
│   │   ├── final
│   │   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Command_Diagram.png
│   │   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   ├── Controllers
│   │   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   │   └── Routers
│   │   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   │   └── Router.swift
│   │   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Mediator.swift
│   │   │   │   │   └── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── RayWenToe
│   │   │   ├── RayWenToe
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   ├── GameManager
│   │   │   │   │   │   ├── GameManager.swift
│   │   │   │   │   │   ├── GameplayStrategy.temp_caseinsensitive_rename.swift
│   │   │   │   │   │   ├── MoveCommand.swift
│   │   │   │   │   │   ├── Referee.swift
│   │   │   │   │   │   └── States
│   │   │   │   │   │   ├── ComputerInputState.swift
│   │   │   │   │   │   ├── GameState.swift
│   │   │   │   │   │   ├── PlayerInputState.swift
│   │   │   │   │   │   └── PlayGameState.swift
│   │   │   │   │   ├── GameplayViewController.swift
│   │   │   │   │   └── SettingsViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   ├── GameboardPosition.swift
│   │   │   │   │   ├── GameboardSize.swift
│   │   │   │   │   ├── Gameboard.swift
│   │   │   │   │   └── Player.swift
│   │   │   │   ├── Protocols
│   │   │   │   │   └── Copying.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── launch_background.pdf
│   │   │   │   │   └── Info.plist
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── GameboardView.swift
│   │   │   │   ├── GameplayView.swift
│   │   │   │   └── MarkViews
│   │   │   │   ├── MarkView.swift
│   │   │   │   ├── OView.swift
│   │   │   │   └── XView.swift
│   │   │   ├── RayWenToeTests
│   │   │   │   ├── Info.plist
│   │   │   │   └── RefereeTests.swift
│   │   │   └── RayWenToe.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── starter
│   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Command_Diagram.png
│   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   └── Routers
│   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   └── Router.swift
│   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Mediator.swift
│   │   │   │   └── Overview.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── RayWenToe
│   │   ├── RayWenToe
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Controllers
│   │   │   │   ├── GameManager
│   │   │   │   │   ├── GameManager.swift
│   │   │   │   │   ├── GameplayStrategy.temp_caseinsensitive_rename.swift
│   │   │   │   │   ├── Referee.swift
│   │   │   │   │   └── States
│   │   │   │   │   ├── ComputerInputState.swift
│   │   │   │   │   ├── GameState.swift
│   │   │   │   │   ├── PlayerInputState.swift
│   │   │   │   │   └── PlayGameState.swift
│   │   │   │   ├── GameplayViewController.swift
│   │   │   │   └── SettingsViewController.swift
│   │   │   ├── Models
│   │   │   │   ├── GameboardPosition.swift
│   │   │   │   ├── GameboardSize.swift
│   │   │   │   ├── Gameboard.swift
│   │   │   │   └── Player.swift
│   │   │   ├── Protocols
│   │   │   │   └── Copying.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ic_settings.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── ic_settings.pdf
│   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── launch_background.pdf
│   │   │   │   └── Info.plist
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameboardView.swift
│   │   │   ├── GameplayView.swift
│   │   │   └── MarkViews
│   │   │   ├── MarkView.swift
│   │   │   ├── OView.swift
│   │   │   └── XView.swift
│   │   ├── RayWenToeTests
│   │   │   ├── Info.plist
│   │   │   └── RefereeTests.swift
│   │   └── RayWenToe.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── 22-chain-of-responsibility
│   │   ├── final
│   │   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Command_Diagram.png
│   │   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   ├── Controllers
│   │   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   │   └── Routers
│   │   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   │   └── Router.swift
│   │   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Mediator.swift
│   │   │   │   │   └── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── RWSecret
│   │   │   ├── Podfile
│   │   │   ├── Podfile.lock
│   │   │   ├── Pods
│   │   │   │   ├── Manifest.lock
│   │   │   │   ├── Pods.xcodeproj
│   │   │   │   │   └── project.pbxproj
│   │   │   │   ├── RNCryptor
│   │   │   │   │   ├── LICENSE
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Cryptor
│   │   │   │   │   │   └── include
│   │   │   │   │   │   └── RNCryptor.h
│   │   │   │   │   └── RNCryptor
│   │   │   │   │   └── RNCryptor.swift
│   │   │   │   ├── SwiftKeychainWrapper
│   │   │   │   │   ├── LICENSE
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── SwiftKeychainWrapper
│   │   │   │   │   ├── KeychainItemAccessibility.swift
│   │   │   │   │   ├── KeychainWrapper.swift
│   │   │   │   │   └── SwiftKeychainWrapper.h
│   │   │   │   └── Target Support Files
│   │   │   │   ├── Pods-RWSecret
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── Pods-RWSecret-acknowledgements.markdown
│   │   │   │   │   ├── Pods-RWSecret-acknowledgements.plist
│   │   │   │   │   ├── Pods-RWSecret.debug.xcconfig
│   │   │   │   │   ├── Pods-RWSecret-dummy.m
│   │   │   │   │   ├── Pods-RWSecret-frameworks.sh
│   │   │   │   │   ├── Pods-RWSecret.modulemap
│   │   │   │   │   ├── Pods-RWSecret.release.xcconfig
│   │   │   │   │   ├── Pods-RWSecret-resources.sh
│   │   │   │   │   └── Pods-RWSecret-umbrella.h
│   │   │   │   ├── Pods-RWSecret-RWSecretTests
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── Pods-RWSecret-RWSecretTests-acknowledgements.markdown
│   │   │   │   │   ├── Pods-RWSecret-RWSecretTests-acknowledgements.plist
│   │   │   │   │   ├── Pods-RWSecret-RWSecretTests.debug.xcconfig
│   │   │   │   │   ├── Pods-RWSecret-RWSecretTests-dummy.m
│   │   │   │   │   ├── Pods-RWSecret-RWSecretTests-frameworks.sh
│   │   │   │   │   ├── Pods-RWSecret-RWSecretTests.modulemap
│   │   │   │   │   ├── Pods-RWSecret-RWSecretTests.release.xcconfig
│   │   │   │   │   ├── Pods-RWSecret-RWSecretTests-resources.sh
│   │   │   │   │   └── Pods-RWSecret-RWSecretTests-umbrella.h
│   │   │   │   ├── RNCryptor
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── RNCryptor-dummy.m
│   │   │   │   │   ├── RNCryptor.modulemap
│   │   │   │   │   ├── RNCryptor-prefix.pch
│   │   │   │   │   ├── RNCryptor-umbrella.h
│   │   │   │   │   └── RNCryptor.xcconfig
│   │   │   │   └── SwiftKeychainWrapper
│   │   │   │   ├── Info.plist
│   │   │   │   ├── SwiftKeychainWrapper-dummy.m
│   │   │   │   ├── SwiftKeychainWrapper.modulemap
│   │   │   │   ├── SwiftKeychainWrapper-prefix.pch
│   │   │   │   ├── SwiftKeychainWrapper-umbrella.h
│   │   │   │   └── SwiftKeychainWrapper.xcconfig
│   │   │   ├── RWSecret
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   ├── DecryptViewController.swift
│   │   │   │   │   └── PasswordViewController.swift
│   │   │   │   ├── Models
│   │   │   │   │   ├── SecretMessageCareTaker.swift
│   │   │   │   │   └── SecretMessage.swift
│   │   │   │   ├── PasswordClient
│   │   │   │   │   ├── DecryptionHandlerProtocol.swift
│   │   │   │   │   ├── DecryptionHandler.swift
│   │   │   │   │   ├── EncryptHandlerProtocol.swift
│   │   │   │   │   └── PasswordClient.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── launch_background.pdf
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   └── SecretMessages.json
│   │   │   │   └── Views
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   └── SecretMessageCell.swift
│   │   │   ├── RWSecretTests
│   │   │   │   ├── Cases
│   │   │   │   │   └── PasswordManagerTests.swift
│   │   │   │   └── Supporting Files
│   │   │   │   └── Info.plist
│   │   │   ├── RWSecret.xcodeproj
│   │   │   │   ├── project.pbxproj
│   │   │   │   ├── project.xcworkspace
│   │   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   │   └── xcshareddata
│   │   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDETemplateMacros.plist
│   │   │   └── RWSecret.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── starter
│   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Command_Diagram.png
│   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   └── Routers
│   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   └── Router.swift
│   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Mediator.swift
│   │   │   │   └── Overview.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── RWSecret
│   │   ├── Podfile
│   │   ├── Podfile.lock
│   │   ├── Pods
│   │   │   ├── Manifest.lock
│   │   │   ├── Pods.xcodeproj
│   │   │   │   └── project.pbxproj
│   │   │   ├── RNCryptor
│   │   │   │   ├── LICENSE
│   │   │   │   ├── README.md
│   │   │   │   └── Sources
│   │   │   │   ├── Cryptor
│   │   │   │   │   └── include
│   │   │   │   │   └── RNCryptor.h
│   │   │   │   └── RNCryptor
│   │   │   │   └── RNCryptor.swift
│   │   │   ├── SwiftKeychainWrapper
│   │   │   │   ├── LICENSE
│   │   │   │   ├── README.md
│   │   │   │   └── SwiftKeychainWrapper
│   │   │   │   ├── KeychainItemAccessibility.swift
│   │   │   │   ├── KeychainWrapper.swift
│   │   │   │   └── SwiftKeychainWrapper.h
│   │   │   └── Target Support Files
│   │   │   ├── Pods-RWSecret
│   │   │   │   ├── Info.plist
│   │   │   │   ├── Pods-RWSecret-acknowledgements.markdown
│   │   │   │   ├── Pods-RWSecret-acknowledgements.plist
│   │   │   │   ├── Pods-RWSecret.debug.xcconfig
│   │   │   │   ├── Pods-RWSecret-dummy.m
│   │   │   │   ├── Pods-RWSecret-frameworks.sh
│   │   │   │   ├── Pods-RWSecret.modulemap
│   │   │   │   ├── Pods-RWSecret.release.xcconfig
│   │   │   │   ├── Pods-RWSecret-resources.sh
│   │   │   │   └── Pods-RWSecret-umbrella.h
│   │   │   ├── Pods-RWSecret-RWSecretTests
│   │   │   │   ├── Info.plist
│   │   │   │   ├── Pods-RWSecret-RWSecretTests-acknowledgements.markdown
│   │   │   │   ├── Pods-RWSecret-RWSecretTests-acknowledgements.plist
│   │   │   │   ├── Pods-RWSecret-RWSecretTests.debug.xcconfig
│   │   │   │   ├── Pods-RWSecret-RWSecretTests-dummy.m
│   │   │   │   ├── Pods-RWSecret-RWSecretTests-frameworks.sh
│   │   │   │   ├── Pods-RWSecret-RWSecretTests.modulemap
│   │   │   │   ├── Pods-RWSecret-RWSecretTests.release.xcconfig
│   │   │   │   ├── Pods-RWSecret-RWSecretTests-resources.sh
│   │   │   │   └── Pods-RWSecret-RWSecretTests-umbrella.h
│   │   │   ├── RNCryptor
│   │   │   │   ├── Info.plist
│   │   │   │   ├── RNCryptor-dummy.m
│   │   │   │   ├── RNCryptor.modulemap
│   │   │   │   ├── RNCryptor-prefix.pch
│   │   │   │   ├── RNCryptor-umbrella.h
│   │   │   │   └── RNCryptor.xcconfig
│   │   │   └── SwiftKeychainWrapper
│   │   │   ├── Info.plist
│   │   │   ├── SwiftKeychainWrapper-dummy.m
│   │   │   ├── SwiftKeychainWrapper.modulemap
│   │   │   ├── SwiftKeychainWrapper-prefix.pch
│   │   │   ├── SwiftKeychainWrapper-umbrella.h
│   │   │   └── SwiftKeychainWrapper.xcconfig
│   │   ├── RWSecret
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Controllers
│   │   │   │   ├── DecryptViewController.swift
│   │   │   │   └── PasswordViewController.swift
│   │   │   ├── Models
│   │   │   │   ├── SecretMessageCareTaker.swift
│   │   │   │   └── SecretMessage.swift
│   │   │   ├── PasswordClient
│   │   │   │   ├── EncryptHandlerProtocol.swift
│   │   │   │   └── PasswordClient.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── launch_background.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── launch_background.pdf
│   │   │   │   ├── Info.plist
│   │   │   │   └── SecretMessages.json
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   └── SecretMessageCell.swift
│   │   ├── RWSecretTests
│   │   │   ├── Cases
│   │   │   │   └── PasswordManagerTests.swift
│   │   │   └── Supporting Files
│   │   │   └── Info.plist
│   │   ├── RWSecret.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── RWSecret.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── 23-coordinator-pattern
│   │   ├── final
│   │   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Pages
│   │   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Command_Diagram.png
│   │   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   ├── Controllers
│   │   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   │   └── Routers
│   │   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   │   └── Router.swift
│   │   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   └── Resources
│   │   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   │   ├── Contents.swift
│   │   │   │   │   │   ├── Resources
│   │   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   │   └── Sources
│   │   │   │   │   │   └── Mediator.swift
│   │   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   │   └── Contents.swift
│   │   │   │   │   └── Proxy.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── RayPets
│   │   │   ├── RayPets
│   │   │   │   ├── AppDelegate
│   │   │   │   │   └── AppDelegate.swift
│   │   │   │   ├── Coordinators
│   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   ├── HomeCoordinator.swift
│   │   │   │   │   └── PetAppointmentBuilderCoordinator.swift
│   │   │   │   ├── Models
│   │   │   │   │   ├── PainLevel.swift
│   │   │   │   │   ├── PetAppointment.swift
│   │   │   │   │   └── VisitType.swift
│   │   │   │   ├── Resources
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── faking_it.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── faking_it@2x.png
│   │   │   │   │   │   │   ├── faking_it@3x.png
│   │   │   │   │   │   │   └── faking_it.png
│   │   │   │   │   │   ├── logo.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── logo@2x.png
│   │   │   │   │   │   │   ├── logo@3x.png
│   │   │   │   │   │   │   └── logo.png
│   │   │   │   │   │   ├── no_appointment_owl.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── no_appointment_owl@2x.png
│   │   │   │   │   │   │   ├── no_appointment_owl@3x.png
│   │   │   │   │   │   │   └── no_appointment_owl.png
│   │   │   │   │   │   ├── pain_level_little.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── pain_level_little@2x.png
│   │   │   │   │   │   │   ├── pain_level_little@3x.png
│   │   │   │   │   │   │   └── pain_level_little.png
│   │   │   │   │   │   ├── pain_level_moderate.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── pain_level_moderate@2x.png
│   │   │   │   │   │   │   ├── pain_level_moderate@3x.png
│   │   │   │   │   │   │   └── pain_level_moderate.png
│   │   │   │   │   │   ├── pain_level_none.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── pain_level_none@2x.png
│   │   │   │   │   │   │   ├── pain_level_none@3x.png
│   │   │   │   │   │   │   └── pain_level_none.png
│   │   │   │   │   │   ├── pain_level_severe.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── pain_level_severe@2x.png
│   │   │   │   │   │   │   ├── pain_level_severe@3x.png
│   │   │   │   │   │   │   └── pain_level_severe.png
│   │   │   │   │   │   ├── pain_level_worst_possible.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── pain_level_worst_possible@2x.png
│   │   │   │   │   │   │   ├── pain_level_worst_possible@3x.png
│   │   │   │   │   │   │   └── pain_level_worst_possible.png
│   │   │   │   │   │   ├── visit_type_sick.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   ├── visit_type_sick@2x.png
│   │   │   │   │   │   │   ├── visit_type_sick@3x.png
│   │   │   │   │   │   │   └── visit_type_sick.png
│   │   │   │   │   │   └── visit_type_well.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── visit_type_well@2x.png
│   │   │   │   │   │   ├── visit_type_well@3x.png
│   │   │   │   │   │   └── visit_type_well.png
│   │   │   │   │   └── Info.plist
│   │   │   │   ├── Routers
│   │   │   │   │   ├── AppDelegateRouter.swift
│   │   │   │   │   ├── ModalNavigationRouter.swift
│   │   │   │   │   └── Router.swift
│   │   │   │   └── Screens
│   │   │   │   ├── FakingIt
│   │   │   │   │   ├── FakingIt.storyboard
│   │   │   │   │   └── FakingItViewController.swift
│   │   │   │   ├── Home
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   └── HomeViewController.swift
│   │   │   │   │   └── Views
│   │   │   │   │   ├── Home.storyboard
│   │   │   │   │   └── LaunchScreen.storyboard
│   │   │   │   ├── NoAppointmentRequired
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   └── NoAppointmentRequiredViewController.swift
│   │   │   │   │   └── Views
│   │   │   │   │   └── NoAppointmentRequired.storyboard
│   │   │   │   ├── PainLevel
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   ├── PainLevelViewController.swift
│   │   │   │   │   │   └── SelectPainLevelViewController.swift
│   │   │   │   │   └── Views
│   │   │   │   │   └── SelectPainLevel.storyboard
│   │   │   │   ├── Protocols
│   │   │   │   │   └── StoryboardInstantiable.swift
│   │   │   │   └── VisitType
│   │   │   │   ├── Controllers
│   │   │   │   │   └── SelectVisitTypeViewController.swift
│   │   │   │   └── Views
│   │   │   │   └── SelectVisitType.storyboard
│   │   │   └── RayPets.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata
│   │   │   └── IDETemplateMacros.plist
│   │   └── starter
│   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Pages
│   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── ChainOfResponsibility_Diagram.png
│   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Command_Diagram.png
│   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Composite_Diagram.png
│   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Coordinator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Controllers
│   │   │   │   │   │   ├── HomeViewController.swift
│   │   │   │   │   │   ├── StartOverViewController.swift
│   │   │   │   │   │   └── StepViewController.swift
│   │   │   │   │   ├── Coordinators
│   │   │   │   │   │   ├── Coordinator.swift
│   │   │   │   │   │   └── HowToCodeCoordinator.swift
│   │   │   │   │   └── Routers
│   │   │   │   │   ├── NavigationRouter.swift
│   │   │   │   │   └── Router.swift
│   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   └── Resources
│   │   │   │   │   └── Flyweight_Diagram.png
│   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── Resources
│   │   │   │   │   │   └── Mediator_Diagram.png
│   │   │   │   │   └── Sources
│   │   │   │   │   └── Mediator.swift
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   └── Proxy.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── RayPets
│   │   ├── RayPets
│   │   │   ├── AppDelegate
│   │   │   │   └── AppDelegate.swift
│   │   │   ├── Coordinators
│   │   │   │   └── Coordinator.swift
│   │   │   ├── Models
│   │   │   │   ├── PainLevel.swift
│   │   │   │   ├── PetAppointment.swift
│   │   │   │   └── VisitType.swift
│   │   │   ├── Resources
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Icon-App-20x20@1x.png
│   │   │   │   │   │   ├── Icon-App-20x20@2x.png
│   │   │   │   │   │   ├── Icon-App-20x20@3x.png
│   │   │   │   │   │   ├── Icon-App-29x29@1x.png
│   │   │   │   │   │   ├── Icon-App-29x29@2x.png
│   │   │   │   │   │   ├── Icon-App-29x29@3x.png
│   │   │   │   │   │   ├── Icon-App-40x40@1x.png
│   │   │   │   │   │   ├── Icon-App-40x40@2x.png
│   │   │   │   │   │   ├── Icon-App-40x40@3x.png
│   │   │   │   │   │   ├── Icon-App-57x57@1x.png
│   │   │   │   │   │   ├── Icon-App-57x57@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@2x.png
│   │   │   │   │   │   ├── Icon-App-60x60@3x.png
│   │   │   │   │   │   ├── Icon-App-72x72@1x.png
│   │   │   │   │   │   ├── Icon-App-72x72@2x.png
│   │   │   │   │   │   ├── Icon-App-76x76@1x.png
│   │   │   │   │   │   ├── Icon-App-76x76@2x.png
│   │   │   │   │   │   ├── Icon-App-83.5x83.5@2x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@1x.png
│   │   │   │   │   │   ├── Icon-Small-50x50@2x.png
│   │   │   │   │   │   └── ItunesArtwork@2x.png
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── faking_it.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── faking_it@2x.png
│   │   │   │   │   │   ├── faking_it@3x.png
│   │   │   │   │   │   └── faking_it.png
│   │   │   │   │   ├── logo.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── logo@2x.png
│   │   │   │   │   │   ├── logo@3x.png
│   │   │   │   │   │   └── logo.png
│   │   │   │   │   ├── no_appointment_owl.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── no_appointment_owl@2x.png
│   │   │   │   │   │   ├── no_appointment_owl@3x.png
│   │   │   │   │   │   └── no_appointment_owl.png
│   │   │   │   │   ├── pain_level_little.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── pain_level_little@2x.png
│   │   │   │   │   │   ├── pain_level_little@3x.png
│   │   │   │   │   │   └── pain_level_little.png
│   │   │   │   │   ├── pain_level_moderate.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── pain_level_moderate@2x.png
│   │   │   │   │   │   ├── pain_level_moderate@3x.png
│   │   │   │   │   │   └── pain_level_moderate.png
│   │   │   │   │   ├── pain_level_none.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── pain_level_none@2x.png
│   │   │   │   │   │   ├── pain_level_none@3x.png
│   │   │   │   │   │   └── pain_level_none.png
│   │   │   │   │   ├── pain_level_severe.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── pain_level_severe@2x.png
│   │   │   │   │   │   ├── pain_level_severe@3x.png
│   │   │   │   │   │   └── pain_level_severe.png
│   │   │   │   │   ├── pain_level_worst_possible.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── pain_level_worst_possible@2x.png
│   │   │   │   │   │   ├── pain_level_worst_possible@3x.png
│   │   │   │   │   │   └── pain_level_worst_possible.png
│   │   │   │   │   ├── visit_type_sick.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── visit_type_sick@2x.png
│   │   │   │   │   │   ├── visit_type_sick@3x.png
│   │   │   │   │   │   └── visit_type_sick.png
│   │   │   │   │   └── visit_type_well.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── visit_type_well@2x.png
│   │   │   │   │   ├── visit_type_well@3x.png
│   │   │   │   │   └── visit_type_well.png
│   │   │   │   └── Info.plist
│   │   │   ├── Routers
│   │   │   │   └── Router.swift
│   │   │   └── Screens
│   │   │   ├── FakingIt
│   │   │   │   ├── FakingIt.storyboard
│   │   │   │   └── FakingItViewController.swift
│   │   │   ├── Home
│   │   │   │   ├── Controllers
│   │   │   │   │   └── HomeViewController.swift
│   │   │   │   └── Views
│   │   │   │   ├── Home.storyboard
│   │   │   │   └── LaunchScreen.storyboard
│   │   │   ├── NoAppointmentRequired
│   │   │   │   ├── Controllers
│   │   │   │   │   └── NoAppointmentRequiredViewController.swift
│   │   │   │   └── Views
│   │   │   │   └── NoAppointmentRequired.storyboard
│   │   │   ├── PainLevel
│   │   │   │   ├── Controllers
│   │   │   │   │   ├── PainLevelViewController.swift
│   │   │   │   │   └── SelectPainLevelViewController.swift
│   │   │   │   └── Views
│   │   │   │   └── SelectPainLevel.storyboard
│   │   │   ├── Protocols
│   │   │   │   └── StoryboardInstantiable.swift
│   │   │   └── VisitType
│   │   │   ├── Controllers
│   │   │   │   └── SelectVisitTypeViewController.swift
│   │   │   └── Views
│   │   │   └── SelectVisitType.storyboard
│   │   └── RayPets.xcodeproj
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcshareddata
│   │   └── IDETemplateMacros.plist
│   ├── Design_Patterns_by_Tutorials_v2.0.epub
│   └── Design_Patterns_by_Tutorials_v2.0.pdf
└── __MACOSX
└── Design Patterns by Tutorials v2.0
├── 03-model-view-controller-pattern
│   ├── final
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── xcshareddata
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   ├── Base.lproj
│   │   │   ├── Controllers
│   │   │   ├── Models
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   ├── ic_menu.imageset
│   │   │   │   ├── ic_settings.imageset
│   │   │   │   └── logo.imageset
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   ├── resources
│   │   └── Assets.xcassets
│   │   ├── AppIcon.appiconset
│   │   ├── ic_circle_check.imageset
│   │   ├── ic_circle_plus.imageset
│   │   ├── ic_circle_x.imageset
│   │   ├── ic_menu.imageset
│   │   ├── ic_settings.imageset
│   │   └── logo.imageset
│   └── starter
│   └── FundamentalDesignPatterns.xcworkspace
│   ├── FundamentalDesignPatterns.playground
│   │   └── Pages
│   │   ├── Builder.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Delegation.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Memento.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Observer.xcplaygroundpage
│   │   │   ├── Resources
│   │   │   └── Sources
│   │   ├── Overview.xcplaygroundpage
│   │   ├── Singleton.xcplaygroundpage
│   │   │   └── Resources
│   │   └── Strategy.xcplaygroundpage
│   │   └── Resources
│   └── xcshareddata
├── 04-delegation-pattern
│   ├── final
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── xcshareddata
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   ├── Base.lproj
│   │   │   ├── Controllers
│   │   │   ├── Models
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   ├── ic_menu.imageset
│   │   │   │   ├── ic_settings.imageset
│   │   │   │   └── logo.imageset
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   └── starter
│   ├── FundamentalDesignPatterns.xcworkspace
│   │   ├── FundamentalDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── Strategy.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── RabbleWabble
│   ├── RabbleWabble
│   │   ├── AppDelegate
│   │   ├── Base.lproj
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── ic_circle_check.imageset
│   │   │   ├── ic_circle_plus.imageset
│   │   │   ├── ic_circle_x.imageset
│   │   │   ├── ic_menu.imageset
│   │   │   ├── ic_settings.imageset
│   │   │   └── logo.imageset
│   │   └── Views
│   │   └── Base.lproj
│   └── RabbleWabble.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 05-strategy-pattern
│   ├── final
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── xcshareddata
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   ├── Base.lproj
│   │   │   ├── Controllers
│   │   │   ├── Models
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   ├── ic_menu.imageset
│   │   │   │   ├── ic_settings.imageset
│   │   │   │   └── logo.imageset
│   │   │   ├── Strategies
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   └── starter
│   ├── FundamentalDesignPatterns.xcworkspace
│   │   ├── FundamentalDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── Strategy.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── RabbleWabble
│   ├── RabbleWabble
│   │   ├── AppDelegate
│   │   ├── Base.lproj
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── ic_circle_check.imageset
│   │   │   ├── ic_circle_plus.imageset
│   │   │   ├── ic_circle_x.imageset
│   │   │   ├── ic_menu.imageset
│   │   │   ├── ic_settings.imageset
│   │   │   └── logo.imageset
│   │   └── Views
│   │   └── Base.lproj
│   └── RabbleWabble.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 06-singleton-pattern
│   ├── final
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── xcshareddata
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   ├── Base.lproj
│   │   │   ├── Controllers
│   │   │   ├── Models
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   ├── ic_menu.imageset
│   │   │   │   ├── ic_settings.imageset
│   │   │   │   └── logo.imageset
│   │   │   ├── Strategies
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   └── starter
│   ├── FundamentalDesignPatterns.xcworkspace
│   │   ├── FundamentalDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── Strategy.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── RabbleWabble
│   ├── RabbleWabble
│   │   ├── AppDelegate
│   │   ├── Base.lproj
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── ic_circle_check.imageset
│   │   │   ├── ic_circle_plus.imageset
│   │   │   ├── ic_circle_x.imageset
│   │   │   ├── ic_menu.imageset
│   │   │   ├── ic_settings.imageset
│   │   │   └── logo.imageset
│   │   ├── Strategies
│   │   └── Views
│   │   └── Base.lproj
│   └── RabbleWabble.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 07-memento-pattern
│   ├── final
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── xcshareddata
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   ├── Base.lproj
│   │   │   ├── Caretakers
│   │   │   ├── Controllers
│   │   │   ├── Models
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   ├── ic_menu.imageset
│   │   │   │   ├── ic_settings.imageset
│   │   │   │   └── logo.imageset
│   │   │   ├── Strategies
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   ├── resources
│   └── starter
│   ├── FundamentalDesignPatterns.xcworkspace
│   │   ├── FundamentalDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── Strategy.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── RabbleWabble
│   ├── RabbleWabble
│   │   ├── AppDelegate
│   │   ├── Base.lproj
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── ic_circle_check.imageset
│   │   │   ├── ic_circle_plus.imageset
│   │   │   ├── ic_circle_x.imageset
│   │   │   ├── ic_menu.imageset
│   │   │   ├── ic_settings.imageset
│   │   │   └── logo.imageset
│   │   ├── Strategies
│   │   └── Views
│   │   └── Base.lproj
│   └── RabbleWabble.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 08-observer-pattern
│   ├── final
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── xcshareddata
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   ├── Base.lproj
│   │   │   ├── Caretakers
│   │   │   ├── Controllers
│   │   │   ├── Models
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   ├── ic_menu.imageset
│   │   │   │   ├── ic_settings.imageset
│   │   │   │   └── logo.imageset
│   │   │   ├── Strategies
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   └── starter
│   ├── FundamentalDesignPatterns.xcworkspace
│   │   ├── FundamentalDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── Strategy.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── RabbleWabble
│   ├── RabbleWabble
│   │   ├── AppDelegate
│   │   ├── Base.lproj
│   │   ├── Caretakers
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── ic_circle_check.imageset
│   │   │   ├── ic_circle_plus.imageset
│   │   │   ├── ic_circle_x.imageset
│   │   │   ├── ic_menu.imageset
│   │   │   ├── ic_settings.imageset
│   │   │   └── logo.imageset
│   │   ├── Strategies
│   │   └── Views
│   │   └── Base.lproj
│   └── RabbleWabble.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 09-builder-pattern
│   ├── final
│   │   ├── FundamentalDesignPatterns.xcworkspace
│   │   │   ├── FundamentalDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   └── Strategy.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── xcshareddata
│   │   └── RabbleWabble
│   │   ├── RabbleWabble
│   │   │   ├── AppDelegate
│   │   │   ├── Base.lproj
│   │   │   ├── Builders
│   │   │   ├── Caretakers
│   │   │   ├── Controllers
│   │   │   ├── Models
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   ├── ic_circle_plus.imageset
│   │   │   │   ├── ic_circle_x.imageset
│   │   │   │   ├── ic_menu.imageset
│   │   │   │   ├── ic_settings.imageset
│   │   │   │   └── logo.imageset
│   │   │   ├── Strategies
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   └── RabbleWabble.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   ├── resources
│   │   ├── Controllers
│   │   └── Views
│   └── starter
│   ├── FundamentalDesignPatterns.xcworkspace
│   │   ├── FundamentalDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Builder.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Delegation.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Memento.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Model-View-Controller.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Observer.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Singleton.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── Strategy.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── RabbleWabble
│   ├── RabbleWabble
│   │   ├── AppDelegate
│   │   ├── Base.lproj
│   │   ├── Caretakers
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── ic_circle_check.imageset
│   │   │   ├── ic_circle_plus.imageset
│   │   │   ├── ic_circle_x.imageset
│   │   │   ├── ic_menu.imageset
│   │   │   ├── ic_settings.imageset
│   │   │   └── logo.imageset
│   │   ├── Strategies
│   │   └── Views
│   │   └── Base.lproj
│   └── RabbleWabble.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 10-model-view-viewmodel-pattern
│   ├── final
│   │   ├── CoffeeQuest
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── AppDelegate
│   │   │   │   ├── Controllers
│   │   │   │   ├── Resources
│   │   │   │   │   └── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── bad.imageset
│   │   │   │   │   ├── good.imageset
│   │   │   │   │   ├── great.imageset
│   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   ├── meh.imageset
│   │   │   │   │   └── terrible.imageset
│   │   │   │   ├── ViewModels
│   │   │   │   └── Views
│   │   │   │   └── Base.lproj
│   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   ├── project.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── Pods
│   │   │   ├── Pods.xcodeproj
│   │   │   ├── Target Support Files
│   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   └── YelpAPI
│   │   │   └── YelpAPI
│   │   │   └── Classes
│   │   │   ├── Client
│   │   │   ├── Common
│   │   │   ├── Request
│   │   │   └── Response
│   │   └── IntermediateDesignPatterns.xcworkspace
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── State.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── starter
│   ├── CoffeeQuest
│   │   ├── CoffeeQuest
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Models
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── bad.imageset
│   │   │   │   ├── good.imageset
│   │   │   │   ├── great.imageset
│   │   │   │   ├── Launch.imageset
│   │   │   │   ├── meh.imageset
│   │   │   │   └── terrible.imageset
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   ├── CoffeeQuest.xcodeproj
│   │   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── CoffeeQuest.xcworkspace
│   │   │   └── xcshareddata
│   │   └── Pods
│   │   ├── Pods.xcodeproj
│   │   ├── Target Support Files
│   │   │   ├── Pods-CoffeeQuest
│   │   │   └── YelpAPI
│   │   └── YelpAPI
│   │   └── Classes
│   │   ├── Client
│   │   ├── Common
│   │   ├── Request
│   │   └── Response
│   └── IntermediateDesignPatterns.xcworkspace
│   ├── IntermediateDesignPatterns.playground
│   │   └── Pages
│   │   ├── Adapter.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Facade.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Factory.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Iterator.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   ├── Resources
│   │   │   └── Sources
│   │   ├── MVVM.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Overview.xcplaygroundpage
│   │   ├── Prototype.xcplaygroundpage
│   │   │   └── Resources
│   │   └── State.xcplaygroundpage
│   │   └── Resources
│   └── xcshareddata
├── 11-factory-pattern
│   ├── final
│   │   ├── CoffeeQuest
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── AppDelegate
│   │   │   │   ├── Controllers
│   │   │   │   ├── Factories
│   │   │   │   ├── Resources
│   │   │   │   │   └── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── bad.imageset
│   │   │   │   │   ├── good.imageset
│   │   │   │   │   ├── great.imageset
│   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   ├── meh.imageset
│   │   │   │   │   └── terrible.imageset
│   │   │   │   ├── ViewModels
│   │   │   │   └── Views
│   │   │   │   └── Base.lproj
│   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   ├── project.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── Pods
│   │   │   ├── Pods.xcodeproj
│   │   │   ├── Target Support Files
│   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   └── YelpAPI
│   │   │   └── YelpAPI
│   │   │   └── Classes
│   │   │   ├── Client
│   │   │   ├── Common
│   │   │   ├── Request
│   │   │   └── Response
│   │   └── IntermediateDesignPatterns.xcworkspace
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── State.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── starter
│   ├── CoffeeQuest
│   │   ├── CoffeeQuest
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── bad.imageset
│   │   │   │   ├── good.imageset
│   │   │   │   ├── great.imageset
│   │   │   │   ├── Launch.imageset
│   │   │   │   ├── meh.imageset
│   │   │   │   └── terrible.imageset
│   │   │   ├── ViewModels
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   ├── CoffeeQuest.xcodeproj
│   │   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── CoffeeQuest.xcworkspace
│   │   │   └── xcshareddata
│   │   └── Pods
│   │   ├── Pods.xcodeproj
│   │   ├── Target Support Files
│   │   │   ├── Pods-CoffeeQuest
│   │   │   └── YelpAPI
│   │   └── YelpAPI
│   │   └── Classes
│   │   ├── Client
│   │   ├── Common
│   │   ├── Request
│   │   └── Response
│   └── IntermediateDesignPatterns.xcworkspace
│   ├── IntermediateDesignPatterns.playground
│   │   └── Pages
│   │   ├── Adapter.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Facade.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Factory.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Iterator.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   ├── Resources
│   │   │   └── Sources
│   │   ├── MVVM.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Overview.xcplaygroundpage
│   │   ├── Prototype.xcplaygroundpage
│   │   │   └── Resources
│   │   └── State.xcplaygroundpage
│   │   └── Resources
│   └── xcshareddata
├── 12-adapter-pattern
│   ├── final
│   │   ├── CoffeeQuest
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── AppDelegate
│   │   │   │   ├── Controllers
│   │   │   │   ├── Factories
│   │   │   │   ├── Models
│   │   │   │   ├── Resources
│   │   │   │   │   └── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── bad.imageset
│   │   │   │   │   ├── good.imageset
│   │   │   │   │   ├── great.imageset
│   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   ├── meh.imageset
│   │   │   │   │   └── terrible.imageset
│   │   │   │   ├── ViewModels
│   │   │   │   └── Views
│   │   │   │   └── Base.lproj
│   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   ├── project.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── Pods
│   │   │   ├── Pods.xcodeproj
│   │   │   ├── Target Support Files
│   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   └── YelpAPI
│   │   │   └── YelpAPI
│   │   │   └── Classes
│   │   │   ├── Client
│   │   │   ├── Common
│   │   │   ├── Request
│   │   │   └── Response
│   │   └── IntermediateDesignPatterns.xcworkspace
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── State.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── starter
│   ├── CoffeeQuest
│   │   ├── CoffeeQuest
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Factories
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── bad.imageset
│   │   │   │   ├── good.imageset
│   │   │   │   ├── great.imageset
│   │   │   │   ├── Launch.imageset
│   │   │   │   ├── meh.imageset
│   │   │   │   └── terrible.imageset
│   │   │   ├── ViewModels
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   ├── CoffeeQuest.xcodeproj
│   │   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── CoffeeQuest.xcworkspace
│   │   │   └── xcshareddata
│   │   └── Pods
│   │   ├── Pods.xcodeproj
│   │   ├── Target Support Files
│   │   │   ├── Pods-CoffeeQuest
│   │   │   └── YelpAPI
│   │   └── YelpAPI
│   │   └── Classes
│   │   ├── Client
│   │   ├── Common
│   │   ├── Request
│   │   └── Response
│   └── IntermediateDesignPatterns.xcworkspace
│   ├── IntermediateDesignPatterns.playground
│   │   └── Pages
│   │   ├── Adapter.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Facade.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Factory.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Iterator.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   ├── Resources
│   │   │   └── Sources
│   │   ├── MVVM.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Overview.xcplaygroundpage
│   │   ├── Prototype.xcplaygroundpage
│   │   │   └── Resources
│   │   └── State.xcplaygroundpage
│   │   └── Resources
│   └── xcshareddata
├── 13-iterator-pattern
│   ├── final
│   │   ├── CoffeeQuest
│   │   │   ├── CoffeeQuest
│   │   │   │   ├── AppDelegate
│   │   │   │   ├── Controllers
│   │   │   │   ├── Factories
│   │   │   │   ├── Models
│   │   │   │   ├── Resources
│   │   │   │   │   └── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── bad.imageset
│   │   │   │   │   ├── good.imageset
│   │   │   │   │   ├── great.imageset
│   │   │   │   │   ├── Launch.imageset
│   │   │   │   │   ├── meh.imageset
│   │   │   │   │   └── terrible.imageset
│   │   │   │   ├── ViewModels
│   │   │   │   └── Views
│   │   │   │   └── Base.lproj
│   │   │   ├── CoffeeQuest.xcodeproj
│   │   │   │   ├── project.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   ├── CoffeeQuest.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── Pods
│   │   │   ├── Pods.xcodeproj
│   │   │   ├── Target Support Files
│   │   │   │   ├── Pods-CoffeeQuest
│   │   │   │   └── YelpAPI
│   │   │   └── YelpAPI
│   │   │   └── Classes
│   │   │   ├── Client
│   │   │   ├── Common
│   │   │   ├── Request
│   │   │   └── Response
│   │   └── IntermediateDesignPatterns.xcworkspace
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── State.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── starter
│   ├── CoffeeQuest
│   │   ├── CoffeeQuest
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Factories
│   │   │   ├── Models
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── bad.imageset
│   │   │   │   ├── good.imageset
│   │   │   │   ├── great.imageset
│   │   │   │   ├── Launch.imageset
│   │   │   │   ├── meh.imageset
│   │   │   │   └── terrible.imageset
│   │   │   ├── ViewModels
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   ├── CoffeeQuest.xcodeproj
│   │   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── CoffeeQuest.xcworkspace
│   │   │   └── xcshareddata
│   │   └── Pods
│   │   ├── Pods.xcodeproj
│   │   ├── Target Support Files
│   │   │   ├── Pods-CoffeeQuest
│   │   │   └── YelpAPI
│   │   └── YelpAPI
│   │   └── Classes
│   │   ├── Client
│   │   ├── Common
│   │   ├── Request
│   │   └── Response
│   └── IntermediateDesignPatterns.xcworkspace
│   ├── IntermediateDesignPatterns.playground
│   │   └── Pages
│   │   ├── Adapter.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Facade.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Factory.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Iterator.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   ├── Resources
│   │   │   └── Sources
│   │   ├── MVVM.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Overview.xcplaygroundpage
│   │   ├── Prototype.xcplaygroundpage
│   │   │   └── Resources
│   │   └── State.xcplaygroundpage
│   │   └── Resources
│   └── xcshareddata
├── 14-prototype-pattern
│   ├── final
│   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── xcshareddata
│   │   └── MirrorPad
│   │   ├── MirrorPad
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Protocols
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── expand_arrows.imageset
│   │   │   │   └── launch_background.imageset
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   └── MirrorPad.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   └── starter
│   ├── IntermediateDesignPatterns.xcworkspace
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── State.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── MirrorPad
│   ├── MirrorPad
│   │   ├── AppDelegate
│   │   ├── Controllers
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── expand_arrows.imageset
│   │   │   └── launch_background.imageset
│   │   └── Views
│   │   └── Base.lproj
│   └── MirrorPad.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 15-state-pattern
│   ├── final
│   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── xcshareddata
│   │   └── MirrorPad
│   │   ├── MirrorPad
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Protocols
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── expand_arrows.imageset
│   │   │   │   └── launch_background.imageset
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   └── DrawView
│   │   │   └── States
│   │   └── MirrorPad.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   └── starter
│   ├── IntermediateDesignPatterns.xcworkspace
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── State.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── MirrorPad
│   ├── MirrorPad
│   │   ├── AppDelegate
│   │   ├── Controllers
│   │   ├── Protocols
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── expand_arrows.imageset
│   │   │   └── launch_background.imageset
│   │   └── Views
│   │   └── Base.lproj
│   └── MirrorPad.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 16-multicast-delegate-pattern
│   ├── final
│   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── xcshareddata
│   │   └── MirrorPad
│   │   ├── MirrorPad
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Protocols
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── expand_arrows.imageset
│   │   │   │   └── launch_background.imageset
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   └── DrawView
│   │   │   └── States
│   │   └── MirrorPad.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   └── starter
│   ├── IntermediateDesignPatterns.xcworkspace
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── State.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── MirrorPad
│   ├── MirrorPad
│   │   ├── AppDelegate
│   │   ├── Controllers
│   │   ├── Protocols
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── expand_arrows.imageset
│   │   │   └── launch_background.imageset
│   │   └── Views
│   │   ├── Base.lproj
│   │   └── DrawView
│   │   └── States
│   └── MirrorPad.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 17-facade-pattern
│   ├── final
│   │   ├── IntermediateDesignPatterns.xcworkspace
│   │   │   ├── IntermediateDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Overview.xcplaygroundpage
│   │   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   └── State.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── xcshareddata
│   │   └── MirrorPad
│   │   ├── MirrorPad
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Facades
│   │   │   ├── Protocols
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── expand_arrows.imageset
│   │   │   │   └── launch_background.imageset
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   └── DrawView
│   │   │   └── States
│   │   └── MirrorPad.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   ├── resources
│   └── starter
│   ├── IntermediateDesignPatterns.xcworkspace
│   │   ├── IntermediateDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── Adapter.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Facade.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Factory.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Iterator.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── MulticastDelegate.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── MVVM.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   ├── Prototype.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   └── State.xcplaygroundpage
│   │   │   └── Resources
│   │   └── xcshareddata
│   └── MirrorPad
│   ├── MirrorPad
│   │   ├── AppDelegate
│   │   ├── Controllers
│   │   ├── Protocols
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── expand_arrows.imageset
│   │   │   └── launch_background.imageset
│   │   └── Views
│   │   ├── Base.lproj
│   │   └── DrawView
│   │   └── States
│   └── MirrorPad.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 18-flyweight-pattern
│   ├── final
│   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Controllers
│   │   │   │   │   ├── Coordinators
│   │   │   │   │   └── Routers
│   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   └── Overview.xcplaygroundpage
│   │   │   └── xcshareddata
│   │   └── YetiJokes
│   │   ├── YetiJokes
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Models
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── background.imageset
│   │   │   │   └── cool_yeti.imageset
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   ├── YetiJokes.xcodeproj
│   │   │   ├── project.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── xcshareddata
│   │   └── YetiTheme
│   │   ├── YetiTheme
│   │   └── YetiTheme.xcodeproj
│   │   └── project.xcworkspace
│   │   └── xcshareddata
│   └── starter
│   ├── AdvancedDesignPatterns.xcworkspace
│   │   ├── AdvancedDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Command.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   │   ├── Controllers
│   │   │   │   ├── Coordinators
│   │   │   │   └── Routers
│   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   └── Overview.xcplaygroundpage
│   │   └── xcshareddata
│   └── YetiJokes
│   ├── YetiJokes
│   │   ├── AppDelegate
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── background.imageset
│   │   │   └── cool_yeti.imageset
│   │   └── Views
│   │   └── Base.lproj
│   ├── YetiJokes.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   └── YetiTheme
│   ├── YetiTheme
│   └── YetiTheme.xcodeproj
│   └── project.xcworkspace
│   └── xcshareddata
├── 19-mediator-pattern
│   ├── final
│   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Controllers
│   │   │   │   │   ├── Coordinators
│   │   │   │   │   └── Routers
│   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   └── Overview.xcplaygroundpage
│   │   │   └── xcshareddata
│   │   └── YetiDate
│   │   ├── Pods
│   │   │   ├── Pods.xcodeproj
│   │   │   ├── Target Support Files
│   │   │   │   ├── Pods-YetiDate
│   │   │   │   └── YelpAPI
│   │   │   └── YelpAPI
│   │   │   └── Classes
│   │   │   ├── Client
│   │   │   ├── Common
│   │   │   ├── Request
│   │   │   └── Response
│   │   ├── YetiDate
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Extensions
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── background_yeti_date.imageset
│   │   │   │   ├── ic_bar.imageset
│   │   │   │   ├── ic_bar_large.imageset
│   │   │   │   ├── ic_circle_check.imageset
│   │   │   │   ├── ic_food.imageset
│   │   │   │   ├── ic_food_large.imageset
│   │   │   │   ├── ic_movie.imageset
│   │   │   │   └── ic_movie_large.imageset
│   │   │   ├── SearchClient
│   │   │   │   └── Protocols
│   │   │   ├── Utils
│   │   │   ├── ViewModels
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   ├── YetiDate.xcodeproj
│   │   │   ├── project.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── xcshareddata
│   │   │   └── xcschemes
│   │   └── YetiDate.xcworkspace
│   │   └── xcshareddata
│   └── starter
│   ├── AdvancedDesignPatterns.xcworkspace
│   │   ├── AdvancedDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Command.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   │   ├── Controllers
│   │   │   │   ├── Coordinators
│   │   │   │   └── Routers
│   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   └── Overview.xcplaygroundpage
│   │   └── xcshareddata
│   └── YetiDate
│   ├── Pods
│   │   ├── Pods.xcodeproj
│   │   ├── Target Support Files
│   │   │   ├── Pods-YetiDate
│   │   │   └── YelpAPI
│   │   └── YelpAPI
│   │   └── Classes
│   │   ├── Client
│   │   ├── Common
│   │   ├── Request
│   │   └── Response
│   ├── YetiDate
│   │   ├── AppDelegate
│   │   ├── Controllers
│   │   ├── Extensions
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── background_yeti_date.imageset
│   │   │   ├── ic_bar.imageset
│   │   │   ├── ic_bar_large.imageset
│   │   │   ├── ic_circle_check.imageset
│   │   │   ├── ic_food.imageset
│   │   │   ├── ic_food_large.imageset
│   │   │   ├── ic_movie.imageset
│   │   │   └── ic_movie_large.imageset
│   │   ├── SearchClient
│   │   │   └── Protocols
│   │   ├── Utils
│   │   ├── ViewModels
│   │   └── Views
│   │   └── Base.lproj
│   ├── YetiDate.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   │   └── xcschemes
│   └── YetiDate.xcworkspace
│   └── xcshareddata
├── 20-composite-pattern
│   ├── final
│   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Controllers
│   │   │   │   │   ├── Coordinators
│   │   │   │   │   └── Routers
│   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   └── Overview.xcplaygroundpage
│   │   │   └── xcshareddata
│   │   └── DefeatYourToDoList
│   │   ├── DefeatYourToDoList
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Models
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── door.imageset
│   │   │   │   ├── helmet.imageset
│   │   │   │   ├── NinjaCat.imageset
│   │   │   │   └── treasure.imageset
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   └── DefeatYourToDoList.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   └── starter
│   ├── AdvancedDesignPatterns.xcworkspace
│   │   ├── AdvancedDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Command.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   │   ├── Controllers
│   │   │   │   ├── Coordinators
│   │   │   │   └── Routers
│   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   └── Overview.xcplaygroundpage
│   │   └── xcshareddata
│   └── DefeatYourToDoList
│   ├── DefeatYourToDoList
│   │   ├── AppDelegate
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── door.imageset
│   │   │   ├── helmet.imageset
│   │   │   ├── NinjaCat.imageset
│   │   │   └── treasure.imageset
│   │   └── Views
│   │   └── Base.lproj
│   └── DefeatYourToDoList.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 21-command-pattern
│   ├── final
│   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Controllers
│   │   │   │   │   ├── Coordinators
│   │   │   │   │   └── Routers
│   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   └── Overview.xcplaygroundpage
│   │   │   └── xcshareddata
│   │   └── RayWenToe
│   │   ├── RayWenToe
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   │   └── GameManager
│   │   │   │   └── States
│   │   │   ├── Models
│   │   │   ├── Protocols
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── ic_settings.imageset
│   │   │   │   └── launch_background.imageset
│   │   │   └── Views
│   │   │   ├── Base.lproj
│   │   │   └── MarkViews
│   │   ├── RayWenToeTests
│   │   └── RayWenToe.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   └── starter
│   ├── AdvancedDesignPatterns.xcworkspace
│   │   ├── AdvancedDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Command.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   │   ├── Controllers
│   │   │   │   ├── Coordinators
│   │   │   │   └── Routers
│   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   └── Overview.xcplaygroundpage
│   │   └── xcshareddata
│   └── RayWenToe
│   ├── RayWenToe
│   │   ├── AppDelegate
│   │   ├── Controllers
│   │   │   └── GameManager
│   │   │   └── States
│   │   ├── Models
│   │   ├── Protocols
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── ic_settings.imageset
│   │   │   └── launch_background.imageset
│   │   └── Views
│   │   ├── Base.lproj
│   │   └── MarkViews
│   ├── RayWenToeTests
│   └── RayWenToe.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
├── 22-chain-of-responsibility
│   ├── final
│   │   ├── AdvancedDesignPatterns.xcworkspace
│   │   │   ├── AdvancedDesignPatterns.playground
│   │   │   │   └── Pages
│   │   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Command.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   │   ├── Controllers
│   │   │   │   │   ├── Coordinators
│   │   │   │   │   └── Routers
│   │   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   │   └── Resources
│   │   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   └── Overview.xcplaygroundpage
│   │   │   └── xcshareddata
│   │   └── RWSecret
│   │   ├── Pods
│   │   │   ├── Pods.xcodeproj
│   │   │   ├── RNCryptor
│   │   │   │   └── Sources
│   │   │   │   ├── Cryptor
│   │   │   │   │   └── include
│   │   │   │   └── RNCryptor
│   │   │   ├── SwiftKeychainWrapper
│   │   │   │   └── SwiftKeychainWrapper
│   │   │   └── Target Support Files
│   │   │   ├── Pods-RWSecret
│   │   │   ├── Pods-RWSecret-RWSecretTests
│   │   │   ├── RNCryptor
│   │   │   └── SwiftKeychainWrapper
│   │   ├── RWSecret
│   │   │   ├── AppDelegate
│   │   │   ├── Controllers
│   │   │   ├── Models
│   │   │   ├── PasswordClient
│   │   │   ├── Resources
│   │   │   │   └── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── launch_background.imageset
│   │   │   └── Views
│   │   │   └── Base.lproj
│   │   ├── RWSecretTests
│   │   │   ├── Cases
│   │   │   └── Supporting Files
│   │   ├── RWSecret.xcodeproj
│   │   │   ├── project.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── xcshareddata
│   │   └── RWSecret.xcworkspace
│   │   └── xcshareddata
│   └── starter
│   ├── AdvancedDesignPatterns.xcworkspace
│   │   ├── AdvancedDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Command.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   │   ├── Controllers
│   │   │   │   ├── Coordinators
│   │   │   │   └── Routers
│   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   └── Overview.xcplaygroundpage
│   │   └── xcshareddata
│   └── RWSecret
│   ├── Pods
│   │   ├── Pods.xcodeproj
│   │   ├── RNCryptor
│   │   │   └── Sources
│   │   │   ├── Cryptor
│   │   │   │   └── include
│   │   │   └── RNCryptor
│   │   ├── SwiftKeychainWrapper
│   │   │   └── SwiftKeychainWrapper
│   │   └── Target Support Files
│   │   ├── Pods-RWSecret
│   │   ├── Pods-RWSecret-RWSecretTests
│   │   ├── RNCryptor
│   │   └── SwiftKeychainWrapper
│   ├── RWSecret
│   │   ├── AppDelegate
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── PasswordClient
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   └── launch_background.imageset
│   │   └── Views
│   │   └── Base.lproj
│   ├── RWSecretTests
│   │   ├── Cases
│   │   └── Supporting Files
│   ├── RWSecret.xcodeproj
│   │   ├── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── xcshareddata
│   └── RWSecret.xcworkspace
│   └── xcshareddata
└── 23-coordinator-pattern
├── final
│   ├── AdvancedDesignPatterns.xcworkspace
│   │   ├── AdvancedDesignPatterns.playground
│   │   │   └── Pages
│   │   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Command.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Composite.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Coordinator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   │   ├── Controllers
│   │   │   │   ├── Coordinators
│   │   │   │   └── Routers
│   │   │   ├── Flyweight.xcplaygroundpage
│   │   │   │   └── Resources
│   │   │   ├── Mediator.xcplaygroundpage
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   ├── Overview.xcplaygroundpage
│   │   │   └── Proxy.xcplaygroundpage
│   │   └── xcshareddata
│   └── RayPets
│   ├── RayPets
│   │   ├── AppDelegate
│   │   ├── Coordinators
│   │   ├── Models
│   │   ├── Resources
│   │   │   └── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── faking_it.imageset
│   │   │   ├── logo.imageset
│   │   │   ├── no_appointment_owl.imageset
│   │   │   ├── pain_level_little.imageset
│   │   │   ├── pain_level_moderate.imageset
│   │   │   ├── pain_level_none.imageset
│   │   │   ├── pain_level_severe.imageset
│   │   │   ├── pain_level_worst_possible.imageset
│   │   │   ├── visit_type_sick.imageset
│   │   │   └── visit_type_well.imageset
│   │   ├── Routers
│   │   └── Screens
│   │   ├── FakingIt
│   │   ├── Home
│   │   │   ├── Controllers
│   │   │   └── Views
│   │   ├── NoAppointmentRequired
│   │   │   ├── Controllers
│   │   │   └── Views
│   │   ├── PainLevel
│   │   │   ├── Controllers
│   │   │   └── Views
│   │   ├── Protocols
│   │   └── VisitType
│   │   ├── Controllers
│   │   └── Views
│   └── RayPets.xcodeproj
│   ├── project.xcworkspace
│   │   └── xcshareddata
│   └── xcshareddata
└── starter
├── AdvancedDesignPatterns.xcworkspace
│   ├── AdvancedDesignPatterns.playground
│   │   └── Pages
│   │   ├── ChainOfResponsibility.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Command.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Composite.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Coordinator.xcplaygroundpage
│   │   │   ├── Resources
│   │   │   └── Sources
│   │   │   ├── Controllers
│   │   │   ├── Coordinators
│   │   │   └── Routers
│   │   ├── Flyweight.xcplaygroundpage
│   │   │   └── Resources
│   │   ├── Mediator.xcplaygroundpage
│   │   │   ├── Resources
│   │   │   └── Sources
│   │   ├── Overview.xcplaygroundpage
│   │   └── Proxy.xcplaygroundpage
│   └── xcshareddata
└── RayPets
├── RayPets
│   ├── AppDelegate
│   ├── Coordinators
│   ├── Models
│   ├── Resources
│   │   └── Assets.xcassets
│   │   ├── AppIcon.appiconset
│   │   ├── faking_it.imageset
│   │   ├── logo.imageset
│   │   ├── no_appointment_owl.imageset
│   │   ├── pain_level_little.imageset
│   │   ├── pain_level_moderate.imageset
│   │   ├── pain_level_none.imageset
│   │   ├── pain_level_severe.imageset
│   │   ├── pain_level_worst_possible.imageset
│   │   ├── visit_type_sick.imageset
│   │   └── visit_type_well.imageset
│   ├── Routers
│   └── Screens
│   ├── FakingIt
│   ├── Home
│   │   ├── Controllers
│   │   └── Views
│   ├── NoAppointmentRequired
│   │   ├── Controllers
│   │   └── Views
│   ├── PainLevel
│   │   ├── Controllers
│   │   └── Views
│   ├── Protocols
│   └── VisitType
│   ├── Controllers
│   └── Views
└── RayPets.xcodeproj
├── project.xcworkspace
│   └── xcshareddata
└── xcshareddata

4025 directories, 3894 files

标签:

实例下载地址

Design Patterns by Tutorials v2.0(包含源代码)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警