├── .gitignore ├── CollectionViewSample.xcodeproj ├── .xcodesamplecode.plist ├── project.pbxproj └── project.xcworkspace │ └── xcshareddata │ └── WorkspaceSettings.xcsettings ├── CollectionViewSample ├── AppDelegate.swift ├── Asset Images │ ├── bali.jpg │ ├── cambodia.jpg │ ├── cork.jpg │ ├── cusco.jpg │ ├── iceland.jpg │ ├── italy.jpg │ ├── new-zealand.jpg │ ├── paris.jpg │ ├── patagonia.jpg │ ├── st-lucia.jpg │ ├── tokyo.jpg │ └── vietnam.jpg ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json ├── Base.lproj │ └── LaunchScreen.storyboard ├── DestinationPost.swift ├── Info.plist ├── PostGridViewController.swift ├── SceneDelegate.swift ├── Stores │ ├── AssetStore.swift │ ├── ModelStore.swift │ └── SampleData.swift ├── Utilities │ ├── Appearance.swift │ ├── FileBasedCache.swift │ ├── MemoryLimitedCache.swift │ ├── PlaceholderStore.swift │ ├── URLSession+DownloadTaskPublisher.swift │ └── UnfairLock.swift └── Views │ ├── DestinationPostCell.swift │ ├── DestinationPostPropertiesView.swift │ └── SectionBackgroundView.swift ├── Configuration └── SampleCode.xcconfig ├── LICENSE ├── ACKNOWLEDGMENTS.txt └── LICENSE.txt ├── README.md └── UITests └── UITests.swift /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/.gitignore -------------------------------------------------------------------------------- /CollectionViewSample.xcodeproj/.xcodesamplecode.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample.xcodeproj/.xcodesamplecode.plist -------------------------------------------------------------------------------- /CollectionViewSample.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /CollectionViewSample.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings -------------------------------------------------------------------------------- /CollectionViewSample/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/AppDelegate.swift -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/bali.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/bali.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/cambodia.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/cambodia.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/cork.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/cork.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/cusco.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/cusco.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/iceland.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/iceland.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/italy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/italy.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/new-zealand.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/new-zealand.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/paris.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/paris.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/patagonia.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/patagonia.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/st-lucia.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/st-lucia.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/tokyo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/tokyo.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Asset Images/vietnam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Asset Images/vietnam.jpg -------------------------------------------------------------------------------- /CollectionViewSample/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /CollectionViewSample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /CollectionViewSample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /CollectionViewSample/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /CollectionViewSample/DestinationPost.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/DestinationPost.swift -------------------------------------------------------------------------------- /CollectionViewSample/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Info.plist -------------------------------------------------------------------------------- /CollectionViewSample/PostGridViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/PostGridViewController.swift -------------------------------------------------------------------------------- /CollectionViewSample/SceneDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/SceneDelegate.swift -------------------------------------------------------------------------------- /CollectionViewSample/Stores/AssetStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Stores/AssetStore.swift -------------------------------------------------------------------------------- /CollectionViewSample/Stores/ModelStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Stores/ModelStore.swift -------------------------------------------------------------------------------- /CollectionViewSample/Stores/SampleData.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Stores/SampleData.swift -------------------------------------------------------------------------------- /CollectionViewSample/Utilities/Appearance.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Utilities/Appearance.swift -------------------------------------------------------------------------------- /CollectionViewSample/Utilities/FileBasedCache.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Utilities/FileBasedCache.swift -------------------------------------------------------------------------------- /CollectionViewSample/Utilities/MemoryLimitedCache.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Utilities/MemoryLimitedCache.swift -------------------------------------------------------------------------------- /CollectionViewSample/Utilities/PlaceholderStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Utilities/PlaceholderStore.swift -------------------------------------------------------------------------------- /CollectionViewSample/Utilities/URLSession+DownloadTaskPublisher.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Utilities/URLSession+DownloadTaskPublisher.swift -------------------------------------------------------------------------------- /CollectionViewSample/Utilities/UnfairLock.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Utilities/UnfairLock.swift -------------------------------------------------------------------------------- /CollectionViewSample/Views/DestinationPostCell.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Views/DestinationPostCell.swift -------------------------------------------------------------------------------- /CollectionViewSample/Views/DestinationPostPropertiesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Views/DestinationPostPropertiesView.swift -------------------------------------------------------------------------------- /CollectionViewSample/Views/SectionBackgroundView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/CollectionViewSample/Views/SectionBackgroundView.swift -------------------------------------------------------------------------------- /Configuration/SampleCode.xcconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/Configuration/SampleCode.xcconfig -------------------------------------------------------------------------------- /LICENSE/ACKNOWLEDGMENTS.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/LICENSE/ACKNOWLEDGMENTS.txt -------------------------------------------------------------------------------- /LICENSE/LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/LICENSE/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/README.md -------------------------------------------------------------------------------- /UITests/UITests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimOliver/BuildingHighPerformanceListsAndCollectionViews/HEAD/UITests/UITests.swift --------------------------------------------------------------------------------