├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── CombiningAsync ├── CombiningAsync.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── CombiningAsync │ ├── App │ └── CombiningAsyncApp.swift │ ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Async │ └── BookSearchAsyncView.swift │ ├── Combine │ └── BookSearchCombineView.swift │ ├── CombineAsync │ ├── BookCombineAsyncView.swift │ └── BookSearchCombineAsyncView.swift │ ├── Common │ ├── Model │ │ ├── Book.swift │ │ └── OpenLibrarySearch.swift │ └── Views │ │ ├── BookSearchRowView.swift │ │ └── MenuView.swift │ ├── Extensions │ └── Publisher+Async.swift │ └── Preview Content │ └── Preview Assets.xcassets │ └── Contents.json ├── LICENSE ├── README.md ├── TaskCancellation ├── TaskCancellation.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── TaskCancellation.xcscheme └── TaskCancellation │ ├── App │ └── TaskCancellationApp.swift │ ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ ├── 100.png │ │ ├── 1024.png │ │ ├── 114.png │ │ ├── 120.png │ │ ├── 128.png │ │ ├── 144.png │ │ ├── 152.png │ │ ├── 16.png │ │ ├── 167.png │ │ ├── 172.png │ │ ├── 180.png │ │ ├── 196.png │ │ ├── 20.png │ │ ├── 216.png │ │ ├── 256.png │ │ ├── 29.png │ │ ├── 32.png │ │ ├── 40.png │ │ ├── 48.png │ │ ├── 50.png │ │ ├── 512.png │ │ ├── 55.png │ │ ├── 57.png │ │ ├── 58.png │ │ ├── 60.png │ │ ├── 64.png │ │ ├── 72.png │ │ ├── 76.png │ │ ├── 80.png │ │ ├── 87.png │ │ ├── 88.png │ │ └── Contents.json │ └── Contents.json │ ├── Model │ ├── Book.swift │ └── OpenLibrarySearch.swift │ ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json │ └── Views │ ├── BookSearchActorTaskCancellationView.swift │ ├── BookSearchNoCancellationLiveView.swift │ ├── BookSearchNoCancellationView.swift │ ├── BookSearchRowView.swift │ ├── BookSearchTaskCancellationView.swift │ ├── CooperativeTaskCancellationView.swift │ └── MenuView.swift ├── WordBrowser ├── WordBrowser.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── WordBrowser.xcscheme └── WordBrowser │ ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Model │ └── WordsAPI.swift │ ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json │ ├── Views │ ├── AddWordView.swift │ ├── DefinitionView.swift │ ├── LibraryView.swift │ ├── WordDetailsView.swift │ ├── WordDetailsViewNoViewModel.swift │ └── WordSearchView.swift │ ├── WordBrowserApp.swift │ └── WordsAPI-Info-Sample.plist └── images ├── repocard.png ├── repocard.psd ├── swift-logo-512.png └── swift-logo.png /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/.gitignore -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/App/CombiningAsyncApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/App/CombiningAsyncApp.swift -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/Async/BookSearchAsyncView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/Async/BookSearchAsyncView.swift -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/Combine/BookSearchCombineView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/Combine/BookSearchCombineView.swift -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/CombineAsync/BookCombineAsyncView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/CombineAsync/BookCombineAsyncView.swift -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/CombineAsync/BookSearchCombineAsyncView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/CombineAsync/BookSearchCombineAsyncView.swift -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/Common/Model/Book.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/Common/Model/Book.swift -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/Common/Model/OpenLibrarySearch.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/Common/Model/OpenLibrarySearch.swift -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/Common/Views/BookSearchRowView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/Common/Views/BookSearchRowView.swift -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/Common/Views/MenuView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/Common/Views/MenuView.swift -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/Extensions/Publisher+Async.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/Extensions/Publisher+Async.swift -------------------------------------------------------------------------------- /CombiningAsync/CombiningAsync/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/CombiningAsync/CombiningAsync/Preview Content/Preview Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/README.md -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation.xcodeproj/xcshareddata/xcschemes/TaskCancellation.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation.xcodeproj/xcshareddata/xcschemes/TaskCancellation.xcscheme -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/App/TaskCancellationApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/App/TaskCancellationApp.swift -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/128.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/16.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/172.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/196.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/216.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/256.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/32.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/48.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/512.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/55.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/64.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/88.png -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Model/Book.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Model/Book.swift -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Model/OpenLibrarySearch.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Model/OpenLibrarySearch.swift -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Preview Content/Preview Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Views/BookSearchActorTaskCancellationView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Views/BookSearchActorTaskCancellationView.swift -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Views/BookSearchNoCancellationLiveView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Views/BookSearchNoCancellationLiveView.swift -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Views/BookSearchNoCancellationView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Views/BookSearchNoCancellationView.swift -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Views/BookSearchRowView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Views/BookSearchRowView.swift -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Views/BookSearchTaskCancellationView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Views/BookSearchTaskCancellationView.swift -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Views/CooperativeTaskCancellationView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Views/CooperativeTaskCancellationView.swift -------------------------------------------------------------------------------- /TaskCancellation/TaskCancellation/Views/MenuView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/TaskCancellation/TaskCancellation/Views/MenuView.swift -------------------------------------------------------------------------------- /WordBrowser/WordBrowser.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /WordBrowser/WordBrowser.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /WordBrowser/WordBrowser.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /WordBrowser/WordBrowser.xcodeproj/xcshareddata/xcschemes/WordBrowser.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser.xcodeproj/xcshareddata/xcschemes/WordBrowser.xcscheme -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/Model/WordsAPI.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/Model/WordsAPI.swift -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/Preview Content/Preview Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/Views/AddWordView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/Views/AddWordView.swift -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/Views/DefinitionView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/Views/DefinitionView.swift -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/Views/LibraryView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/Views/LibraryView.swift -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/Views/WordDetailsView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/Views/WordDetailsView.swift -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/Views/WordDetailsViewNoViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/Views/WordDetailsViewNoViewModel.swift -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/Views/WordSearchView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/Views/WordSearchView.swift -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/WordBrowserApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/WordBrowserApp.swift -------------------------------------------------------------------------------- /WordBrowser/WordBrowser/WordsAPI-Info-Sample.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/WordBrowser/WordBrowser/WordsAPI-Info-Sample.plist -------------------------------------------------------------------------------- /images/repocard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/images/repocard.png -------------------------------------------------------------------------------- /images/repocard.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/images/repocard.psd -------------------------------------------------------------------------------- /images/swift-logo-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/images/swift-logo-512.png -------------------------------------------------------------------------------- /images/swift-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterfriese/SwiftUI-Concurrency-Essentials/HEAD/images/swift-logo.png --------------------------------------------------------------------------------