├── .gitignore ├── 1-collections ├── 1-Arrays.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 2-Dictionaries.playground │ ├── Contents.swift │ └── contents.xcplayground └── README.md ├── 10-error-handling ├── 1-Errors.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 2-Error-Arcade.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 3-Error-Arcade-Solution.playground │ ├── Contents.swift │ └── contents.xcplayground └── README.md ├── 11-JSON ├── 1-json.md ├── 2-result-type.md └── Playgrounds │ ├── 1-JSON.playground │ ├── Contents.swift │ └── contents.xcplayground │ ├── 2-Result.playground │ ├── Contents.swift │ └── contents.xcplayground │ ├── 3-JSON-Arcade.playground │ ├── Contents.swift │ └── contents.xcplayground │ └── 4-JSON-Arcade-Solution.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 12-retain-cycles ├── 1-Retain-cycles.playground │ ├── Contents.swift │ └── contents.xcplayground └── README.md ├── 13-generics ├── 1-Generics.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 2-Generic-Arcade.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 3-Generic-Arcade-Solution.playground │ ├── Contents.swift │ └── contents.xcplayground └── README.md ├── 14-access-control ├── 3-Access-Control.playground │ ├── Contents.swift │ └── contents.xcplayground └── README.md ├── 15-protocol-oriented-programming ├── 1-Protocol-Oriented-Programming.playground │ ├── Contents.swift │ └── contents.xcplayground ├── BuzzableTraditional │ ├── BuzzableTraditional.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── BuzzableTraditional │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ │ ├── Buzzable.swift │ │ ├── Fadeable.swift │ │ ├── Info.plist │ │ └── ViewController.swift ├── README.md └── images │ └── demo.gif ├── 2-functions ├── 1-Functions.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 2-FunctionsTypes.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 3-FunctionArcade.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 4-FunctionArcade-Solution.playground │ ├── Contents.swift │ └── contents.xcplayground └── README.md ├── 3-optionals ├── 1-Optionals.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 2-OptionalArcade.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 3-OptionalArcade-Solution.playground │ ├── Contents.swift │ └── contents.xcplayground ├── README.md └── images │ ├── example2.png │ └── unwrapping.png ├── 4-closures ├── 1-What-is-closure.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 2-CapturingValues.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 3-Escaping.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 4-Autoclosure.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 5-MapFilterReduce.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 6-ClosureArcade-Solution.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 6-ClosureArcade.playground │ ├── Contents.swift │ └── contents.xcplayground ├── README.md └── images │ └── closure.png ├── 5-tuples ├── 1-Tuples.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 2-TupleArcade.playground │ ├── Contents.swift │ └── contents.xcplayground ├── 3-TupleArcade-Solution.playground │ ├── Contents.swift │ └── contents.xcplayground └── README.md ├── 6-enums ├── 1-enums.md ├── 2-how-different.md ├── 3-cool-things.md ├── 4-enums-style-state.md ├── Playgrounds │ ├── 1-Enums.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 2-EnumsDifferent.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 3-EnumsCool.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 4-EnumArcade.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ └── 5-EnumArcade-Solution.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground └── images │ └── enums-style-state-demo.gif ├── 7-properties ├── Playgrounds │ ├── 1-Properties.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 2-PropsVsMethods.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 3a-PropertyArcade.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 3b-PropertyArcade-Solution.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 4-PropertyWrappers.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ └── 5-PropertyWrapperArcade.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground ├── README.md └── images │ └── properites.png ├── 8-structs-vs-classes ├── 1-README.md ├── 2-functional-programming.md ├── 3-let-vs-var.md ├── 4-pass-value-vs-ref.md ├── 5-initializers.md ├── Playgrounds │ ├── 1-Functional-Programming.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 2-Struct-vs-Class.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ └── 3-Initializers.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground └── images │ ├── heap.png │ ├── stack-vs-heap.png │ └── stack.png ├── 9-protocols-and-extensions ├── 1-extensions.md ├── 2-protocols.md ├── 3-protocol-delegate-pattern.md ├── 4-protocol-based-inheritance.md ├── Playgrounds │ ├── 1-Extensions.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 2-Protocols.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 3a-Protocol-Arcade-Point.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 3aa-Protocol-Arcade-Point-Solution.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 3b-Protocol-Arcade-Death.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 3bb-Protocol-Arcade-Death-Solution.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 4-Protocol-Delegate.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 5-Protocol-Inheritance.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground │ ├── 6-TableViewExample │ │ ├── TableViewExample.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── TableViewExample │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ └── LaunchScreen.storyboard │ │ │ ├── Info.plist │ │ │ └── ViewController.swift │ └── 7-WeatherService │ │ ├── WeatherService.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── WeatherService │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── SceneDelegate.swift │ │ ├── ViewController.swift │ │ └── WeatherService.swift └── images │ ├── example.png │ └── protocol.png ├── 99-Weather-App └── WeatherApp │ ├── WeatherApp.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── WeatherApp │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ └── LaunchScreen.storyboard │ ├── Info.plist │ ├── ViewController.swift │ └── WeatherService.swift ├── LICENSE ├── README.md └── helpers.txt /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/.gitignore -------------------------------------------------------------------------------- /1-collections/1-Arrays.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/1-collections/1-Arrays.playground/Contents.swift -------------------------------------------------------------------------------- /1-collections/1-Arrays.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/1-collections/1-Arrays.playground/contents.xcplayground -------------------------------------------------------------------------------- /1-collections/2-Dictionaries.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/1-collections/2-Dictionaries.playground/Contents.swift -------------------------------------------------------------------------------- /1-collections/2-Dictionaries.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/1-collections/2-Dictionaries.playground/contents.xcplayground -------------------------------------------------------------------------------- /1-collections/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/1-collections/README.md -------------------------------------------------------------------------------- /10-error-handling/1-Errors.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/10-error-handling/1-Errors.playground/Contents.swift -------------------------------------------------------------------------------- /10-error-handling/1-Errors.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/10-error-handling/1-Errors.playground/contents.xcplayground -------------------------------------------------------------------------------- /10-error-handling/2-Error-Arcade.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/10-error-handling/2-Error-Arcade.playground/Contents.swift -------------------------------------------------------------------------------- /10-error-handling/2-Error-Arcade.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/10-error-handling/2-Error-Arcade.playground/contents.xcplayground -------------------------------------------------------------------------------- /10-error-handling/3-Error-Arcade-Solution.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/10-error-handling/3-Error-Arcade-Solution.playground/Contents.swift -------------------------------------------------------------------------------- /10-error-handling/3-Error-Arcade-Solution.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/10-error-handling/3-Error-Arcade-Solution.playground/contents.xcplayground -------------------------------------------------------------------------------- /10-error-handling/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/10-error-handling/README.md -------------------------------------------------------------------------------- /11-JSON/1-json.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/11-JSON/1-json.md -------------------------------------------------------------------------------- /11-JSON/2-result-type.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/11-JSON/2-result-type.md -------------------------------------------------------------------------------- /11-JSON/Playgrounds/1-JSON.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/11-JSON/Playgrounds/1-JSON.playground/Contents.swift -------------------------------------------------------------------------------- /11-JSON/Playgrounds/1-JSON.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/11-JSON/Playgrounds/1-JSON.playground/contents.xcplayground -------------------------------------------------------------------------------- /11-JSON/Playgrounds/2-Result.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/11-JSON/Playgrounds/2-Result.playground/Contents.swift -------------------------------------------------------------------------------- /11-JSON/Playgrounds/2-Result.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/11-JSON/Playgrounds/2-Result.playground/contents.xcplayground -------------------------------------------------------------------------------- /11-JSON/Playgrounds/3-JSON-Arcade.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/11-JSON/Playgrounds/3-JSON-Arcade.playground/Contents.swift -------------------------------------------------------------------------------- /11-JSON/Playgrounds/3-JSON-Arcade.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/11-JSON/Playgrounds/3-JSON-Arcade.playground/contents.xcplayground -------------------------------------------------------------------------------- /11-JSON/Playgrounds/4-JSON-Arcade-Solution.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/11-JSON/Playgrounds/4-JSON-Arcade-Solution.playground/Contents.swift -------------------------------------------------------------------------------- /11-JSON/Playgrounds/4-JSON-Arcade-Solution.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/11-JSON/Playgrounds/4-JSON-Arcade-Solution.playground/contents.xcplayground -------------------------------------------------------------------------------- /12-retain-cycles/1-Retain-cycles.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/12-retain-cycles/1-Retain-cycles.playground/Contents.swift -------------------------------------------------------------------------------- /12-retain-cycles/1-Retain-cycles.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/12-retain-cycles/1-Retain-cycles.playground/contents.xcplayground -------------------------------------------------------------------------------- /12-retain-cycles/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/12-retain-cycles/README.md -------------------------------------------------------------------------------- /13-generics/1-Generics.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/13-generics/1-Generics.playground/Contents.swift -------------------------------------------------------------------------------- /13-generics/1-Generics.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/13-generics/1-Generics.playground/contents.xcplayground -------------------------------------------------------------------------------- /13-generics/2-Generic-Arcade.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/13-generics/2-Generic-Arcade.playground/Contents.swift -------------------------------------------------------------------------------- /13-generics/2-Generic-Arcade.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/13-generics/2-Generic-Arcade.playground/contents.xcplayground -------------------------------------------------------------------------------- /13-generics/3-Generic-Arcade-Solution.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/13-generics/3-Generic-Arcade-Solution.playground/Contents.swift -------------------------------------------------------------------------------- /13-generics/3-Generic-Arcade-Solution.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/13-generics/3-Generic-Arcade-Solution.playground/contents.xcplayground -------------------------------------------------------------------------------- /13-generics/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/13-generics/README.md -------------------------------------------------------------------------------- /14-access-control/3-Access-Control.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/14-access-control/3-Access-Control.playground/Contents.swift -------------------------------------------------------------------------------- /14-access-control/3-Access-Control.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/14-access-control/3-Access-Control.playground/contents.xcplayground -------------------------------------------------------------------------------- /14-access-control/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/14-access-control/README.md -------------------------------------------------------------------------------- /15-protocol-oriented-programming/1-Protocol-Oriented-Programming.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/1-Protocol-Oriented-Programming.playground/Contents.swift -------------------------------------------------------------------------------- /15-protocol-oriented-programming/1-Protocol-Oriented-Programming.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/1-Protocol-Oriented-Programming.playground/contents.xcplayground -------------------------------------------------------------------------------- /15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/AppDelegate.swift -------------------------------------------------------------------------------- /15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Buzzable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Buzzable.swift -------------------------------------------------------------------------------- /15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Fadeable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Fadeable.swift -------------------------------------------------------------------------------- /15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/Info.plist -------------------------------------------------------------------------------- /15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/BuzzableTraditional/BuzzableTraditional/ViewController.swift -------------------------------------------------------------------------------- /15-protocol-oriented-programming/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/README.md -------------------------------------------------------------------------------- /15-protocol-oriented-programming/images/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/15-protocol-oriented-programming/images/demo.gif -------------------------------------------------------------------------------- /2-functions/1-Functions.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/2-functions/1-Functions.playground/Contents.swift -------------------------------------------------------------------------------- /2-functions/1-Functions.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/2-functions/1-Functions.playground/contents.xcplayground -------------------------------------------------------------------------------- /2-functions/2-FunctionsTypes.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/2-functions/2-FunctionsTypes.playground/Contents.swift -------------------------------------------------------------------------------- /2-functions/2-FunctionsTypes.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/2-functions/2-FunctionsTypes.playground/contents.xcplayground -------------------------------------------------------------------------------- /2-functions/3-FunctionArcade.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/2-functions/3-FunctionArcade.playground/Contents.swift -------------------------------------------------------------------------------- /2-functions/3-FunctionArcade.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/2-functions/3-FunctionArcade.playground/contents.xcplayground -------------------------------------------------------------------------------- /2-functions/4-FunctionArcade-Solution.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/2-functions/4-FunctionArcade-Solution.playground/Contents.swift -------------------------------------------------------------------------------- /2-functions/4-FunctionArcade-Solution.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/2-functions/4-FunctionArcade-Solution.playground/contents.xcplayground -------------------------------------------------------------------------------- /2-functions/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/2-functions/README.md -------------------------------------------------------------------------------- /3-optionals/1-Optionals.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/3-optionals/1-Optionals.playground/Contents.swift -------------------------------------------------------------------------------- /3-optionals/1-Optionals.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/3-optionals/1-Optionals.playground/contents.xcplayground -------------------------------------------------------------------------------- /3-optionals/2-OptionalArcade.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/3-optionals/2-OptionalArcade.playground/Contents.swift -------------------------------------------------------------------------------- /3-optionals/2-OptionalArcade.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/3-optionals/2-OptionalArcade.playground/contents.xcplayground -------------------------------------------------------------------------------- /3-optionals/3-OptionalArcade-Solution.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/3-optionals/3-OptionalArcade-Solution.playground/Contents.swift -------------------------------------------------------------------------------- /3-optionals/3-OptionalArcade-Solution.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/3-optionals/3-OptionalArcade-Solution.playground/contents.xcplayground -------------------------------------------------------------------------------- /3-optionals/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/3-optionals/README.md -------------------------------------------------------------------------------- /3-optionals/images/example2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/3-optionals/images/example2.png -------------------------------------------------------------------------------- /3-optionals/images/unwrapping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/3-optionals/images/unwrapping.png -------------------------------------------------------------------------------- /4-closures/1-What-is-closure.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/1-What-is-closure.playground/Contents.swift -------------------------------------------------------------------------------- /4-closures/1-What-is-closure.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/1-What-is-closure.playground/contents.xcplayground -------------------------------------------------------------------------------- /4-closures/2-CapturingValues.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/2-CapturingValues.playground/Contents.swift -------------------------------------------------------------------------------- /4-closures/2-CapturingValues.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/2-CapturingValues.playground/contents.xcplayground -------------------------------------------------------------------------------- /4-closures/3-Escaping.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/3-Escaping.playground/Contents.swift -------------------------------------------------------------------------------- /4-closures/3-Escaping.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/3-Escaping.playground/contents.xcplayground -------------------------------------------------------------------------------- /4-closures/4-Autoclosure.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/4-Autoclosure.playground/Contents.swift -------------------------------------------------------------------------------- /4-closures/4-Autoclosure.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/4-Autoclosure.playground/contents.xcplayground -------------------------------------------------------------------------------- /4-closures/5-MapFilterReduce.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/5-MapFilterReduce.playground/Contents.swift -------------------------------------------------------------------------------- /4-closures/5-MapFilterReduce.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/5-MapFilterReduce.playground/contents.xcplayground -------------------------------------------------------------------------------- /4-closures/6-ClosureArcade-Solution.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/6-ClosureArcade-Solution.playground/Contents.swift -------------------------------------------------------------------------------- /4-closures/6-ClosureArcade-Solution.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/6-ClosureArcade-Solution.playground/contents.xcplayground -------------------------------------------------------------------------------- /4-closures/6-ClosureArcade.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/6-ClosureArcade.playground/Contents.swift -------------------------------------------------------------------------------- /4-closures/6-ClosureArcade.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/6-ClosureArcade.playground/contents.xcplayground -------------------------------------------------------------------------------- /4-closures/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/README.md -------------------------------------------------------------------------------- /4-closures/images/closure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/4-closures/images/closure.png -------------------------------------------------------------------------------- /5-tuples/1-Tuples.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/5-tuples/1-Tuples.playground/Contents.swift -------------------------------------------------------------------------------- /5-tuples/1-Tuples.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/5-tuples/1-Tuples.playground/contents.xcplayground -------------------------------------------------------------------------------- /5-tuples/2-TupleArcade.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/5-tuples/2-TupleArcade.playground/Contents.swift -------------------------------------------------------------------------------- /5-tuples/2-TupleArcade.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/5-tuples/2-TupleArcade.playground/contents.xcplayground -------------------------------------------------------------------------------- /5-tuples/3-TupleArcade-Solution.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/5-tuples/3-TupleArcade-Solution.playground/Contents.swift -------------------------------------------------------------------------------- /5-tuples/3-TupleArcade-Solution.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/5-tuples/3-TupleArcade-Solution.playground/contents.xcplayground -------------------------------------------------------------------------------- /5-tuples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/5-tuples/README.md -------------------------------------------------------------------------------- /6-enums/1-enums.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/1-enums.md -------------------------------------------------------------------------------- /6-enums/2-how-different.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/2-how-different.md -------------------------------------------------------------------------------- /6-enums/3-cool-things.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/3-cool-things.md -------------------------------------------------------------------------------- /6-enums/4-enums-style-state.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/4-enums-style-state.md -------------------------------------------------------------------------------- /6-enums/Playgrounds/1-Enums.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/Playgrounds/1-Enums.playground/Contents.swift -------------------------------------------------------------------------------- /6-enums/Playgrounds/1-Enums.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/Playgrounds/1-Enums.playground/contents.xcplayground -------------------------------------------------------------------------------- /6-enums/Playgrounds/2-EnumsDifferent.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/Playgrounds/2-EnumsDifferent.playground/Contents.swift -------------------------------------------------------------------------------- /6-enums/Playgrounds/2-EnumsDifferent.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/Playgrounds/2-EnumsDifferent.playground/contents.xcplayground -------------------------------------------------------------------------------- /6-enums/Playgrounds/3-EnumsCool.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/Playgrounds/3-EnumsCool.playground/Contents.swift -------------------------------------------------------------------------------- /6-enums/Playgrounds/3-EnumsCool.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/Playgrounds/3-EnumsCool.playground/contents.xcplayground -------------------------------------------------------------------------------- /6-enums/Playgrounds/4-EnumArcade.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/Playgrounds/4-EnumArcade.playground/Contents.swift -------------------------------------------------------------------------------- /6-enums/Playgrounds/4-EnumArcade.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/Playgrounds/4-EnumArcade.playground/contents.xcplayground -------------------------------------------------------------------------------- /6-enums/Playgrounds/5-EnumArcade-Solution.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/Playgrounds/5-EnumArcade-Solution.playground/Contents.swift -------------------------------------------------------------------------------- /6-enums/Playgrounds/5-EnumArcade-Solution.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/Playgrounds/5-EnumArcade-Solution.playground/contents.xcplayground -------------------------------------------------------------------------------- /6-enums/images/enums-style-state-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/6-enums/images/enums-style-state-demo.gif -------------------------------------------------------------------------------- /7-properties/Playgrounds/1-Properties.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/1-Properties.playground/Contents.swift -------------------------------------------------------------------------------- /7-properties/Playgrounds/1-Properties.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/1-Properties.playground/contents.xcplayground -------------------------------------------------------------------------------- /7-properties/Playgrounds/2-PropsVsMethods.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/2-PropsVsMethods.playground/Contents.swift -------------------------------------------------------------------------------- /7-properties/Playgrounds/2-PropsVsMethods.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/2-PropsVsMethods.playground/contents.xcplayground -------------------------------------------------------------------------------- /7-properties/Playgrounds/3a-PropertyArcade.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/3a-PropertyArcade.playground/Contents.swift -------------------------------------------------------------------------------- /7-properties/Playgrounds/3a-PropertyArcade.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/3a-PropertyArcade.playground/contents.xcplayground -------------------------------------------------------------------------------- /7-properties/Playgrounds/3b-PropertyArcade-Solution.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/3b-PropertyArcade-Solution.playground/Contents.swift -------------------------------------------------------------------------------- /7-properties/Playgrounds/3b-PropertyArcade-Solution.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/3b-PropertyArcade-Solution.playground/contents.xcplayground -------------------------------------------------------------------------------- /7-properties/Playgrounds/4-PropertyWrappers.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/4-PropertyWrappers.playground/Contents.swift -------------------------------------------------------------------------------- /7-properties/Playgrounds/4-PropertyWrappers.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/4-PropertyWrappers.playground/contents.xcplayground -------------------------------------------------------------------------------- /7-properties/Playgrounds/5-PropertyWrapperArcade.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/5-PropertyWrapperArcade.playground/Contents.swift -------------------------------------------------------------------------------- /7-properties/Playgrounds/5-PropertyWrapperArcade.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/Playgrounds/5-PropertyWrapperArcade.playground/contents.xcplayground -------------------------------------------------------------------------------- /7-properties/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/README.md -------------------------------------------------------------------------------- /7-properties/images/properites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/7-properties/images/properites.png -------------------------------------------------------------------------------- /8-structs-vs-classes/1-README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/1-README.md -------------------------------------------------------------------------------- /8-structs-vs-classes/2-functional-programming.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/2-functional-programming.md -------------------------------------------------------------------------------- /8-structs-vs-classes/3-let-vs-var.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/3-let-vs-var.md -------------------------------------------------------------------------------- /8-structs-vs-classes/4-pass-value-vs-ref.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/4-pass-value-vs-ref.md -------------------------------------------------------------------------------- /8-structs-vs-classes/5-initializers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/5-initializers.md -------------------------------------------------------------------------------- /8-structs-vs-classes/Playgrounds/1-Functional-Programming.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/Playgrounds/1-Functional-Programming.playground/Contents.swift -------------------------------------------------------------------------------- /8-structs-vs-classes/Playgrounds/1-Functional-Programming.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/Playgrounds/1-Functional-Programming.playground/contents.xcplayground -------------------------------------------------------------------------------- /8-structs-vs-classes/Playgrounds/2-Struct-vs-Class.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/Playgrounds/2-Struct-vs-Class.playground/Contents.swift -------------------------------------------------------------------------------- /8-structs-vs-classes/Playgrounds/2-Struct-vs-Class.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/Playgrounds/2-Struct-vs-Class.playground/contents.xcplayground -------------------------------------------------------------------------------- /8-structs-vs-classes/Playgrounds/3-Initializers.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/Playgrounds/3-Initializers.playground/Contents.swift -------------------------------------------------------------------------------- /8-structs-vs-classes/Playgrounds/3-Initializers.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/Playgrounds/3-Initializers.playground/contents.xcplayground -------------------------------------------------------------------------------- /8-structs-vs-classes/images/heap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/images/heap.png -------------------------------------------------------------------------------- /8-structs-vs-classes/images/stack-vs-heap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/images/stack-vs-heap.png -------------------------------------------------------------------------------- /8-structs-vs-classes/images/stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/8-structs-vs-classes/images/stack.png -------------------------------------------------------------------------------- /9-protocols-and-extensions/1-extensions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/1-extensions.md -------------------------------------------------------------------------------- /9-protocols-and-extensions/2-protocols.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/2-protocols.md -------------------------------------------------------------------------------- /9-protocols-and-extensions/3-protocol-delegate-pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/3-protocol-delegate-pattern.md -------------------------------------------------------------------------------- /9-protocols-and-extensions/4-protocol-based-inheritance.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/4-protocol-based-inheritance.md -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/1-Extensions.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/1-Extensions.playground/Contents.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/1-Extensions.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/1-Extensions.playground/contents.xcplayground -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/2-Protocols.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/2-Protocols.playground/Contents.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/2-Protocols.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/2-Protocols.playground/contents.xcplayground -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/3a-Protocol-Arcade-Point.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/3a-Protocol-Arcade-Point.playground/Contents.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/3a-Protocol-Arcade-Point.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/3a-Protocol-Arcade-Point.playground/contents.xcplayground -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/3aa-Protocol-Arcade-Point-Solution.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/3aa-Protocol-Arcade-Point-Solution.playground/Contents.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/3aa-Protocol-Arcade-Point-Solution.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/3aa-Protocol-Arcade-Point-Solution.playground/contents.xcplayground -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/3b-Protocol-Arcade-Death.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/3b-Protocol-Arcade-Death.playground/Contents.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/3b-Protocol-Arcade-Death.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/3b-Protocol-Arcade-Death.playground/contents.xcplayground -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/3bb-Protocol-Arcade-Death-Solution.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/3bb-Protocol-Arcade-Death-Solution.playground/Contents.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/3bb-Protocol-Arcade-Death-Solution.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/3bb-Protocol-Arcade-Death-Solution.playground/contents.xcplayground -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/4-Protocol-Delegate.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/4-Protocol-Delegate.playground/Contents.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/4-Protocol-Delegate.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/4-Protocol-Delegate.playground/contents.xcplayground -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/5-Protocol-Inheritance.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/5-Protocol-Inheritance.playground/Contents.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/5-Protocol-Inheritance.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/5-Protocol-Inheritance.playground/contents.xcplayground -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/AppDelegate.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/Info.plist -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/6-TableViewExample/TableViewExample/ViewController.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/AppDelegate.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/Info.plist -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/SceneDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/SceneDelegate.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/ViewController.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/WeatherService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/Playgrounds/7-WeatherService/WeatherService/WeatherService.swift -------------------------------------------------------------------------------- /9-protocols-and-extensions/images/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/images/example.png -------------------------------------------------------------------------------- /9-protocols-and-extensions/images/protocol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/9-protocols-and-extensions/images/protocol.png -------------------------------------------------------------------------------- /99-Weather-App/WeatherApp/WeatherApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/99-Weather-App/WeatherApp/WeatherApp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /99-Weather-App/WeatherApp/WeatherApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/99-Weather-App/WeatherApp/WeatherApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /99-Weather-App/WeatherApp/WeatherApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/99-Weather-App/WeatherApp/WeatherApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /99-Weather-App/WeatherApp/WeatherApp/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/99-Weather-App/WeatherApp/WeatherApp/AppDelegate.swift -------------------------------------------------------------------------------- /99-Weather-App/WeatherApp/WeatherApp/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/99-Weather-App/WeatherApp/WeatherApp/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /99-Weather-App/WeatherApp/WeatherApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/99-Weather-App/WeatherApp/WeatherApp/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /99-Weather-App/WeatherApp/WeatherApp/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/99-Weather-App/WeatherApp/WeatherApp/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /99-Weather-App/WeatherApp/WeatherApp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/99-Weather-App/WeatherApp/WeatherApp/Info.plist -------------------------------------------------------------------------------- /99-Weather-App/WeatherApp/WeatherApp/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/99-Weather-App/WeatherApp/WeatherApp/ViewController.swift -------------------------------------------------------------------------------- /99-Weather-App/WeatherApp/WeatherApp/WeatherService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/99-Weather-App/WeatherApp/WeatherApp/WeatherService.swift -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/README.md -------------------------------------------------------------------------------- /helpers.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jrasmusson/level-up-swift/HEAD/helpers.txt --------------------------------------------------------------------------------