├── .gitignore ├── Basics ├── Enums.playground │ ├── Contents.swift │ ├── Sources │ │ └── Accessories.swift │ └── contents.xcplayground ├── MemoryManagement.xcodeproj │ ├── AppDelegate.swift │ ├── Info.plist │ ├── LaunchScreen.storyboard │ ├── MemoryManagement.swift │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── MemoryManagement.xcscheme ├── README.md ├── access-control.playground │ ├── Contents.swift │ ├── Sources │ │ └── Accessories.swift │ └── contents.xcplayground ├── animations.playground │ ├── Contents.swift │ └── contents.xcplayground ├── child-view-controllers.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── closures.playground │ ├── Contents.swift │ └── contents.xcplayground ├── codable.playground │ ├── Contents.swift │ └── contents.xcplayground ├── combine.playground │ ├── Contents.swift │ └── contents.xcplayground ├── error-handling.playground │ ├── Contents.swift │ └── contents.xcplayground ├── generics.playground │ ├── Contents.swift │ ├── Sources │ │ └── Accessories.swift │ └── contents.xcplayground ├── grand-central-dispatch.playground │ ├── Contents.swift │ ├── Sources │ │ └── Accessories.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── layout-anchors.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── timeline.xctimeline ├── map-flatMap-compactMap.playground │ ├── Contents.swift │ └── contents.xcplayground ├── networking.playground │ ├── Contents.swift │ └── contents.xcplayground ├── optionals.playground │ ├── Contents.swift │ ├── Sources │ │ └── Accessories.swift │ └── contents.xcplayground ├── properties.playground │ ├── Contents.swift │ └── contents.xcplayground ├── protocols.playground │ ├── Contents.swift │ ├── Sources │ │ └── Accessories.swift │ └── contents.xcplayground ├── result.playground │ ├── Contents.swift │ └── contents.xcplayground ├── strings.playground │ ├── Contents.swift │ └── contents.xcplayground ├── swiftui.playground │ ├── Contents.swift │ └── contents.xcplayground ├── time-complexity.playground │ ├── Contents.swift │ └── contents.xcplayground ├── type-inference.playground │ ├── Contents.swift │ ├── Resources │ │ └── user-mock.json │ └── contents.xcplayground ├── unit-testing.playground │ ├── Contents.swift │ ├── Sources │ │ └── Accessories.swift │ └── contents.xcplayground └── value-and-reference-types.playground │ ├── Contents.swift │ ├── Sources │ └── Accessories.swift │ └── contents.xcplayground ├── Blog ├── Under-the-hood-of-Futures-and-Promises.swift ├── Using-replicator-layers.playground │ ├── Contents.swift │ ├── Resources │ │ └── Gem@2x.png │ ├── contents.xcplayground │ ├── playground.xcworkspace │ │ └── contents.xcworkspacedata │ └── timeline.xctimeline └── building-dsls-in-swift.swift ├── LICENSE └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | xcuserdata 2 | playground.xcworkspace 3 | *.xctimeline 4 | -------------------------------------------------------------------------------- /Basics/Enums.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/Enums.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/Enums.playground/Sources/Accessories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/Enums.playground/Sources/Accessories.swift -------------------------------------------------------------------------------- /Basics/Enums.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/Enums.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/MemoryManagement.xcodeproj/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/MemoryManagement.xcodeproj/AppDelegate.swift -------------------------------------------------------------------------------- /Basics/MemoryManagement.xcodeproj/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/MemoryManagement.xcodeproj/Info.plist -------------------------------------------------------------------------------- /Basics/MemoryManagement.xcodeproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/MemoryManagement.xcodeproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /Basics/MemoryManagement.xcodeproj/MemoryManagement.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/MemoryManagement.xcodeproj/MemoryManagement.swift -------------------------------------------------------------------------------- /Basics/MemoryManagement.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/MemoryManagement.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Basics/MemoryManagement.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/MemoryManagement.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Basics/MemoryManagement.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/MemoryManagement.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /Basics/MemoryManagement.xcodeproj/xcshareddata/xcschemes/MemoryManagement.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/MemoryManagement.xcodeproj/xcshareddata/xcschemes/MemoryManagement.xcscheme -------------------------------------------------------------------------------- /Basics/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/README.md -------------------------------------------------------------------------------- /Basics/access-control.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/access-control.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/access-control.playground/Sources/Accessories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/access-control.playground/Sources/Accessories.swift -------------------------------------------------------------------------------- /Basics/access-control.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/access-control.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/animations.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/animations.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/animations.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/animations.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/child-view-controllers.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/child-view-controllers.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/child-view-controllers.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/child-view-controllers.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/child-view-controllers.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/child-view-controllers.playground/playground.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Basics/child-view-controllers.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/child-view-controllers.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /Basics/closures.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/closures.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/closures.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/closures.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/codable.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/codable.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/codable.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/codable.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/combine.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/combine.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/combine.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/combine.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/error-handling.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/error-handling.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/error-handling.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/error-handling.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/generics.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/generics.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/generics.playground/Sources/Accessories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/generics.playground/Sources/Accessories.swift -------------------------------------------------------------------------------- /Basics/generics.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/generics.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/grand-central-dispatch.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/grand-central-dispatch.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/grand-central-dispatch.playground/Sources/Accessories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/grand-central-dispatch.playground/Sources/Accessories.swift -------------------------------------------------------------------------------- /Basics/grand-central-dispatch.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/grand-central-dispatch.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/grand-central-dispatch.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/grand-central-dispatch.playground/playground.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Basics/grand-central-dispatch.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/grand-central-dispatch.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /Basics/layout-anchors.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/layout-anchors.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/layout-anchors.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/layout-anchors.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/layout-anchors.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/layout-anchors.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Basics/map-flatMap-compactMap.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/map-flatMap-compactMap.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/map-flatMap-compactMap.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/map-flatMap-compactMap.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/networking.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/networking.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/networking.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/networking.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/optionals.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/optionals.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/optionals.playground/Sources/Accessories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/optionals.playground/Sources/Accessories.swift -------------------------------------------------------------------------------- /Basics/optionals.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/optionals.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/properties.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/properties.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/properties.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/properties.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/protocols.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/protocols.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/protocols.playground/Sources/Accessories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/protocols.playground/Sources/Accessories.swift -------------------------------------------------------------------------------- /Basics/protocols.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/protocols.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/result.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/result.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/result.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/result.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/strings.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/strings.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/strings.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/strings.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/swiftui.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/swiftui.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/swiftui.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/swiftui.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/time-complexity.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/time-complexity.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/time-complexity.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/time-complexity.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/type-inference.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/type-inference.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/type-inference.playground/Resources/user-mock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/type-inference.playground/Resources/user-mock.json -------------------------------------------------------------------------------- /Basics/type-inference.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/type-inference.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/unit-testing.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/unit-testing.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/unit-testing.playground/Sources/Accessories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/unit-testing.playground/Sources/Accessories.swift -------------------------------------------------------------------------------- /Basics/unit-testing.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/unit-testing.playground/contents.xcplayground -------------------------------------------------------------------------------- /Basics/value-and-reference-types.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/value-and-reference-types.playground/Contents.swift -------------------------------------------------------------------------------- /Basics/value-and-reference-types.playground/Sources/Accessories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/value-and-reference-types.playground/Sources/Accessories.swift -------------------------------------------------------------------------------- /Basics/value-and-reference-types.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Basics/value-and-reference-types.playground/contents.xcplayground -------------------------------------------------------------------------------- /Blog/Under-the-hood-of-Futures-and-Promises.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Blog/Under-the-hood-of-Futures-and-Promises.swift -------------------------------------------------------------------------------- /Blog/Using-replicator-layers.playground/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Blog/Using-replicator-layers.playground/Contents.swift -------------------------------------------------------------------------------- /Blog/Using-replicator-layers.playground/Resources/Gem@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Blog/Using-replicator-layers.playground/Resources/Gem@2x.png -------------------------------------------------------------------------------- /Blog/Using-replicator-layers.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Blog/Using-replicator-layers.playground/contents.xcplayground -------------------------------------------------------------------------------- /Blog/Using-replicator-layers.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Blog/Using-replicator-layers.playground/playground.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Blog/Using-replicator-layers.playground/timeline.xctimeline: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Blog/Using-replicator-layers.playground/timeline.xctimeline -------------------------------------------------------------------------------- /Blog/building-dsls-in-swift.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/Blog/building-dsls-in-swift.swift -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JohnSundell/SwiftBySundell/HEAD/README.md --------------------------------------------------------------------------------