Created tvOS Example Pack

Summary:
- Created a new workspace for tvOS examples w/ Cocoapods & dependency on IGListKit
- Created a demo chooser across the same lines as the iOS equivalent
- Duplicated the 'Nested Adapter' example from iOS pack to the tvOS example
  - Uses native navigation to get around, created focus/active states for cells
- Updated `travis.yml` to optionally build tvOS example pack

Note: Not added any imagery/icons/etc due to the much larger & different sizes required - If they're desired then someone with skills will need to provide them!

Closes #138
Relates to #137
- [x] All tests pass. Demo project builds and runs.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/141

Differential Revision: D4189645

Pulled By: rnystrom

fbshipit-source-id: 7a2b8e7a50ed2a9bbbf68d5f446a4e0077214ffa
This commit is contained in:
Sherlock 2016-11-16 08:01:27 -08:00 committed by Facebook Github Bot
parent 204f7d5390
commit 19280d27b3
60 changed files with 2721 additions and 3 deletions

View file

@ -30,8 +30,8 @@ env:
- DESTINATION="OS=10.0,name=iPhone 6s" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="YES" POD_LINT="NO"
- DESTINATION="OS=9.0,name=Apple TV 1080p" SDK="$TVOS_SDK" SCHEME="$TVOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="NO" POD_LINT="NO"
- DESTINATION="OS=10.0,name=Apple TV 1080p" SDK="$TVOS_SDK" SCHEME="$TVOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="NO" POD_LINT="NO"
- DESTINATION="OS=9.0,name=Apple TV 1080p" SDK="$TVOS_SDK" SCHEME="$TVOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="YES" POD_LINT="YES"
- DESTINATION="OS=10.0,name=Apple TV 1080p" SDK="$TVOS_SDK" SCHEME="$TVOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="YES" POD_LINT="NO"
script:
- if [ $POD_LINT == "YES" ]; then
@ -39,11 +39,16 @@ script:
fi
- if [ $BUILD_EXAMPLE == "YES" ]; then
- if [ $BUILD_EXAMPLE == "YES" ] && [ $SDK == $IOS_SDK ]; then
xcodebuild build -workspace Example/IGListKitExamples.xcworkspace -scheme IGListKitExamples -sdk "$SDK" -destination "$DESTINATION" ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO | bundle exec xcpretty -c;
fi
- if [ $BUILD_EXAMPLE == "YES" ] && [ $SDK == $TVOS_SDK ]; then
xcodebuild build -workspace Examples-tvOS/IGListKitExamples.xcworkspace -scheme IGListKitExamples -sdk "$SDK" -destination "$DESTINATION" ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO | bundle exec xcpretty -c;
fi
- if [ $RUN_TESTS == "YES" ]; then
xcodebuild analyze test -workspace "$WORKSPACE" -scheme "$SCHEME" -sdk "$SDK" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES ONLY_ACTIVE_ARCH=YES | bundle exec xcpretty -c;
else

View file

@ -22,6 +22,7 @@ This release closes the [2.0.0 milestone](https://github.com/Instagram/IGListKit
- Added support for cells created from storyboard. [Bofei Zhu](https://github.com/zhubofei) [(#92)](https://github.com/Instagram/IGListKit/pull/92)
- Added examples for Today & iMessage extensions. [Sherlouk](https://github.com/Sherlouk) [(#112)](https://github.com/Instagram/IGListKit/pull/112)
- Added `tvOS` support. [Jesse Squires](https://github.com/jessesquires) [(#137)](https://github.com/Instagram/IGListKit/pull/137)
- Added `tvOS` example pack. [Sherlouk](https://github.com/Sherlouk) [(#141)](https://github.com/Instagram/IGListKit/pull/141)
- Added new `-[IGListAdapter visibleObjects]` API. [Ryan Nystrom](https://github.com/rnystrom) [(386ae07)](https://github.com/Instagram/IGListKit/commit/386ae0786445c06e1eabf074a4181614332f155f)
1.0.0

View file

@ -0,0 +1,425 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
618C8CB8BC69CB9C3F7048BF /* Pods_IGListKitExamples.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49637028A90619543A9D9763 /* Pods_IGListKitExamples.framework */; };
98ED5C1B1DC52AD400EA56B2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C1A1DC52AD400EA56B2 /* AppDelegate.swift */; };
98ED5C1D1DC52AD400EA56B2 /* DemosViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C1C1DC52AD400EA56B2 /* DemosViewController.swift */; };
98ED5C221DC52AD400EA56B2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 98ED5C211DC52AD400EA56B2 /* Assets.xcassets */; };
98ED5C2D1DC52E7F00EA56B2 /* DemoSectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C2C1DC52E7F00EA56B2 /* DemoSectionController.swift */; };
98ED5C2F1DC52F3B00EA56B2 /* DemoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C2E1DC52F3B00EA56B2 /* DemoCell.swift */; };
98ED5C321DC53B4E00EA56B2 /* CarouselCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C301DC53B4E00EA56B2 /* CarouselCell.swift */; };
98ED5C331DC53B4E00EA56B2 /* CarouselCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98ED5C311DC53B4E00EA56B2 /* CarouselCell.xib */; };
98ED5C351DC53C4000EA56B2 /* NestedAdapterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C341DC53C4000EA56B2 /* NestedAdapterViewController.swift */; };
98ED5C371DC53CEE00EA56B2 /* LabelSectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C361DC53CEE00EA56B2 /* LabelSectionController.swift */; };
98ED5C391DC53D0B00EA56B2 /* LabelCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C381DC53D0B00EA56B2 /* LabelCell.swift */; };
98ED5C3B1DC53DD000EA56B2 /* HorizontalSectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C3A1DC53DD000EA56B2 /* HorizontalSectionController.swift */; };
98ED5C3D1DC53E5600EA56B2 /* EmbeddedCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C3C1DC53E5600EA56B2 /* EmbeddedCollectionViewCell.swift */; };
98ED5C3F1DC53EB200EA56B2 /* CarouselSectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C3E1DC53EB200EA56B2 /* CarouselSectionController.swift */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
4950DE37F34745C8EAB44EFC /* Pods-IGListKitExamples.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IGListKitExamples.debug.xcconfig"; path = "Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.debug.xcconfig"; sourceTree = "<group>"; };
49637028A90619543A9D9763 /* Pods_IGListKitExamples.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_IGListKitExamples.framework; sourceTree = BUILT_PRODUCTS_DIR; };
72D71D21D706627594BBA17D /* Pods-IGListKitExamples.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IGListKitExamples.release.xcconfig"; path = "Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.release.xcconfig"; sourceTree = "<group>"; };
98ED5C171DC52AD400EA56B2 /* IGListKitExamples.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IGListKitExamples.app; sourceTree = BUILT_PRODUCTS_DIR; };
98ED5C1A1DC52AD400EA56B2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
98ED5C1C1DC52AD400EA56B2 /* DemosViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = DemosViewController.swift; path = ViewControllers/DemosViewController.swift; sourceTree = "<group>"; };
98ED5C211DC52AD400EA56B2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
98ED5C231DC52AD400EA56B2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
98ED5C2C1DC52E7F00EA56B2 /* DemoSectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DemoSectionController.swift; path = SectionControllers/DemoSectionController.swift; sourceTree = "<group>"; };
98ED5C2E1DC52F3B00EA56B2 /* DemoCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DemoCell.swift; path = Views/DemoCell.swift; sourceTree = "<group>"; };
98ED5C301DC53B4E00EA56B2 /* CarouselCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CarouselCell.swift; path = Views/CarouselCell.swift; sourceTree = "<group>"; };
98ED5C311DC53B4E00EA56B2 /* CarouselCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CarouselCell.xib; path = Views/CarouselCell.xib; sourceTree = "<group>"; };
98ED5C341DC53C4000EA56B2 /* NestedAdapterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NestedAdapterViewController.swift; path = ViewControllers/NestedAdapterViewController.swift; sourceTree = "<group>"; };
98ED5C361DC53CEE00EA56B2 /* LabelSectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LabelSectionController.swift; path = SectionControllers/LabelSectionController.swift; sourceTree = "<group>"; };
98ED5C381DC53D0B00EA56B2 /* LabelCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LabelCell.swift; path = Views/LabelCell.swift; sourceTree = "<group>"; };
98ED5C3A1DC53DD000EA56B2 /* HorizontalSectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HorizontalSectionController.swift; path = SectionControllers/HorizontalSectionController.swift; sourceTree = "<group>"; };
98ED5C3C1DC53E5600EA56B2 /* EmbeddedCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EmbeddedCollectionViewCell.swift; path = Views/EmbeddedCollectionViewCell.swift; sourceTree = "<group>"; };
98ED5C3E1DC53EB200EA56B2 /* CarouselSectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CarouselSectionController.swift; path = SectionControllers/CarouselSectionController.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
98ED5C141DC52AD400EA56B2 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
618C8CB8BC69CB9C3F7048BF /* Pods_IGListKitExamples.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
4183AACA1B0BA7A44D6D4D73 /* Frameworks */ = {
isa = PBXGroup;
children = (
49637028A90619543A9D9763 /* Pods_IGListKitExamples.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
98ED5C0E1DC52AD300EA56B2 = {
isa = PBXGroup;
children = (
98ED5C191DC52AD400EA56B2 /* IGListKitExamples */,
98ED5C181DC52AD400EA56B2 /* Products */,
A9D83C52A5CD4F0EA0808470 /* Pods */,
4183AACA1B0BA7A44D6D4D73 /* Frameworks */,
);
sourceTree = "<group>";
};
98ED5C181DC52AD400EA56B2 /* Products */ = {
isa = PBXGroup;
children = (
98ED5C171DC52AD400EA56B2 /* IGListKitExamples.app */,
);
name = Products;
sourceTree = "<group>";
};
98ED5C191DC52AD400EA56B2 /* IGListKitExamples */ = {
isa = PBXGroup;
children = (
98ED5C1A1DC52AD400EA56B2 /* AppDelegate.swift */,
98ED5C211DC52AD400EA56B2 /* Assets.xcassets */,
98ED5C231DC52AD400EA56B2 /* Info.plist */,
98ED5C2B1DC52E6200EA56B2 /* SectionControllers */,
98ED5C291DC52B2400EA56B2 /* ViewControllers */,
98ED5C2A1DC52B2900EA56B2 /* Views */,
);
path = IGListKitExamples;
sourceTree = "<group>";
};
98ED5C291DC52B2400EA56B2 /* ViewControllers */ = {
isa = PBXGroup;
children = (
98ED5C1C1DC52AD400EA56B2 /* DemosViewController.swift */,
98ED5C341DC53C4000EA56B2 /* NestedAdapterViewController.swift */,
);
name = ViewControllers;
sourceTree = "<group>";
};
98ED5C2A1DC52B2900EA56B2 /* Views */ = {
isa = PBXGroup;
children = (
98ED5C301DC53B4E00EA56B2 /* CarouselCell.swift */,
98ED5C311DC53B4E00EA56B2 /* CarouselCell.xib */,
98ED5C2E1DC52F3B00EA56B2 /* DemoCell.swift */,
98ED5C381DC53D0B00EA56B2 /* LabelCell.swift */,
98ED5C3C1DC53E5600EA56B2 /* EmbeddedCollectionViewCell.swift */,
);
name = Views;
sourceTree = "<group>";
};
98ED5C2B1DC52E6200EA56B2 /* SectionControllers */ = {
isa = PBXGroup;
children = (
98ED5C2C1DC52E7F00EA56B2 /* DemoSectionController.swift */,
98ED5C361DC53CEE00EA56B2 /* LabelSectionController.swift */,
98ED5C3A1DC53DD000EA56B2 /* HorizontalSectionController.swift */,
98ED5C3E1DC53EB200EA56B2 /* CarouselSectionController.swift */,
);
name = SectionControllers;
sourceTree = "<group>";
};
A9D83C52A5CD4F0EA0808470 /* Pods */ = {
isa = PBXGroup;
children = (
4950DE37F34745C8EAB44EFC /* Pods-IGListKitExamples.debug.xcconfig */,
72D71D21D706627594BBA17D /* Pods-IGListKitExamples.release.xcconfig */,
);
name = Pods;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
98ED5C161DC52AD400EA56B2 /* IGListKitExamples */ = {
isa = PBXNativeTarget;
buildConfigurationList = 98ED5C261DC52AD400EA56B2 /* Build configuration list for PBXNativeTarget "IGListKitExamples" */;
buildPhases = (
FAB2A39CE5E1DA934A22C966 /* [CP] Check Pods Manifest.lock */,
98ED5C131DC52AD400EA56B2 /* Sources */,
98ED5C141DC52AD400EA56B2 /* Frameworks */,
98ED5C151DC52AD400EA56B2 /* Resources */,
BADF017CDC470DE253EA4778 /* [CP] Embed Pods Frameworks */,
5BE912CD671FF6E4CC50620C /* [CP] Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
);
name = IGListKitExamples;
productName = IGListKitExamples;
productReference = 98ED5C171DC52AD400EA56B2 /* IGListKitExamples.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
98ED5C0F1DC52AD300EA56B2 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0810;
LastUpgradeCheck = 0810;
ORGANIZATIONNAME = Instagram;
TargetAttributes = {
98ED5C161DC52AD400EA56B2 = {
CreatedOnToolsVersion = 8.1;
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 98ED5C121DC52AD300EA56B2 /* Build configuration list for PBXProject "IGListKitExamples" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 98ED5C0E1DC52AD300EA56B2;
productRefGroup = 98ED5C181DC52AD400EA56B2 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
98ED5C161DC52AD400EA56B2 /* IGListKitExamples */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
98ED5C151DC52AD400EA56B2 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
98ED5C221DC52AD400EA56B2 /* Assets.xcassets in Resources */,
98ED5C331DC53B4E00EA56B2 /* CarouselCell.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
5BE912CD671FF6E4CC50620C /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-resources.sh\"\n";
showEnvVarsInLog = 0;
};
BADF017CDC470DE253EA4778 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
FAB2A39CE5E1DA934A22C966 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
98ED5C131DC52AD400EA56B2 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
98ED5C1D1DC52AD400EA56B2 /* DemosViewController.swift in Sources */,
98ED5C1B1DC52AD400EA56B2 /* AppDelegate.swift in Sources */,
98ED5C391DC53D0B00EA56B2 /* LabelCell.swift in Sources */,
98ED5C2F1DC52F3B00EA56B2 /* DemoCell.swift in Sources */,
98ED5C3F1DC53EB200EA56B2 /* CarouselSectionController.swift in Sources */,
98ED5C2D1DC52E7F00EA56B2 /* DemoSectionController.swift in Sources */,
98ED5C321DC53B4E00EA56B2 /* CarouselCell.swift in Sources */,
98ED5C3D1DC53E5600EA56B2 /* EmbeddedCollectionViewCell.swift in Sources */,
98ED5C371DC53CEE00EA56B2 /* LabelSectionController.swift in Sources */,
98ED5C351DC53C4000EA56B2 /* NestedAdapterViewController.swift in Sources */,
98ED5C3B1DC53DD000EA56B2 /* HorizontalSectionController.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
98ED5C241DC52AD400EA56B2 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVES = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = appletvos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 10.0;
};
name = Debug;
};
98ED5C251DC52AD400EA56B2 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVES = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = appletvos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 10.0;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
98ED5C271DC52AD400EA56B2 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 4950DE37F34745C8EAB44EFC /* Pods-IGListKitExamples.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = IGListKitExamples/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.instagram.IGListKitExamples;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Debug;
};
98ED5C281DC52AD400EA56B2 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 72D71D21D706627594BBA17D /* Pods-IGListKitExamples.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = IGListKitExamples/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.instagram.IGListKitExamples;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
98ED5C121DC52AD300EA56B2 /* Build configuration list for PBXProject "IGListKitExamples" */ = {
isa = XCConfigurationList;
buildConfigurations = (
98ED5C241DC52AD400EA56B2 /* Debug */,
98ED5C251DC52AD400EA56B2 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
98ED5C261DC52AD400EA56B2 /* Build configuration list for PBXNativeTarget "IGListKitExamples" */ = {
isa = XCConfigurationList;
buildConfigurations = (
98ED5C271DC52AD400EA56B2 /* Debug */,
98ED5C281DC52AD400EA56B2 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 98ED5C0F1DC52AD300EA56B2 /* Project object */;
}

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:IGListKitExamples.xcodeproj">
</FileRef>
</Workspace>

View file

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0810"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "98ED5C161DC52AD400EA56B2"
BuildableName = "IGListKitExamples.app"
BlueprintName = "IGListKitExamples"
ReferencedContainer = "container:IGListKitExamples.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "98ED5C161DC52AD400EA56B2"
BuildableName = "IGListKitExamples.app"
BlueprintName = "IGListKitExamples"
ReferencedContainer = "container:IGListKitExamples.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "98ED5C161DC52AD400EA56B2"
BuildableName = "IGListKitExamples.app"
BlueprintName = "IGListKitExamples"
ReferencedContainer = "container:IGListKitExamples.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "98ED5C161DC52AD400EA56B2"
BuildableName = "IGListKitExamples.app"
BlueprintName = "IGListKitExamples"
ReferencedContainer = "container:IGListKitExamples.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:IGListKitExamples.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View file

@ -0,0 +1,29 @@
/**
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = UINavigationController(rootViewController: DemosViewController())
window?.makeKeyAndVisible()
return true
}
}

View file

@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,17 @@
{
"layers" : [
{
"filename" : "Front.imagestacklayer"
},
{
"filename" : "Middle.imagestacklayer"
},
{
"filename" : "Back.imagestacklayer"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,17 @@
{
"layers" : [
{
"filename" : "Front.imagestacklayer"
},
{
"filename" : "Middle.imagestacklayer"
},
{
"filename" : "Back.imagestacklayer"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,32 @@
{
"assets" : [
{
"size" : "1280x768",
"idiom" : "tv",
"filename" : "App Icon - Large.imagestack",
"role" : "primary-app-icon"
},
{
"size" : "400x240",
"idiom" : "tv",
"filename" : "App Icon - Small.imagestack",
"role" : "primary-app-icon"
},
{
"size" : "2320x720",
"idiom" : "tv",
"filename" : "Top Shelf Image Wide.imageset",
"role" : "top-shelf-image-wide"
},
{
"size" : "1920x720",
"idiom" : "tv",
"filename" : "Top Shelf Image.imageset",
"role" : "top-shelf-image"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,15 @@
{
"images" : [
{
"orientation" : "landscape",
"idiom" : "tv",
"extent" : "full-screen",
"minimum-system-version" : "9.0",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>IGListKit</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
<key>UIUserInterfaceStyle</key>
<string>Automatic</string>
</dict>
</plist>

View file

@ -0,0 +1,52 @@
/**
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import UIKit
import IGListKit
final class CarouselSectionController: IGListSectionController, IGListSectionType {
var number: Int?
override init() {
super.init()
self.inset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 10)
}
func numberOfItems() -> Int {
return 1
}
func sizeForItem(at index: Int) -> CGSize {
let height = collectionContext?.containerSize.height ?? 0
let aspectRatio: CGFloat = 0.75 // 3:4
let width = height * aspectRatio
return CGSize(width: width, height: height)
}
func cellForItem(at index: Int) -> UICollectionViewCell {
let cell = collectionContext!.dequeueReusableCell(withNibName: "CarouselCell", bundle: nil, for: self, at: index) as! CarouselCell
let value = number ?? 0
cell.titleLabel.text = "#\(value + 1)"
return cell
}
func didUpdate(to object: Any) {
number = object as? Int
}
func didSelectItem(at index: Int) {}
}

View file

@ -0,0 +1,74 @@
/**
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import UIKit
import IGListKit
final class DemoItem: NSObject {
let name: String
let controllerClass: UIViewController.Type
let controllerIdentifier: String?
init(name: String,
controllerClass: UIViewController.Type,
controllerIdentifier: String? = nil) {
self.name = name
self.controllerClass = controllerClass
self.controllerIdentifier = controllerIdentifier
}
}
final class DemoSectionController: IGListSectionController, IGListSectionType {
var object: DemoItem?
override init() {
super.init()
inset = UIEdgeInsets(top: 0, left: 50, bottom: 10, right: 0)
}
func numberOfItems() -> Int {
return 1
}
func sizeForItem(at index: Int) -> CGSize {
let itemWidth = (collectionContext!.containerSize.width / 2) - inset.left
return CGSize(width: itemWidth, height: 100)
}
func cellForItem(at index: Int) -> UICollectionViewCell {
let cell = collectionContext!.dequeueReusableCell(of: DemoCell.self, for: self, at: index) as! DemoCell
cell.label.text = object?.name
return cell
}
func didUpdate(to object: Any) {
self.object = object as? DemoItem
}
func didSelectItem(at index: Int) {
if let identifier = object?.controllerIdentifier {
let storyboard = UIStoryboard(name: "Demo", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: identifier)
controller.title = object?.name
viewController?.navigationController?.pushViewController(controller, animated: true)
} else if let controller = object?.controllerClass.init() {
controller.title = object?.name
viewController?.navigationController?.pushViewController(controller, animated: true)
}
}
}

View file

@ -0,0 +1,68 @@
/**
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import UIKit
import IGListKit
final class HorizontalSectionController: IGListSectionController, IGListSectionType, IGListAdapterDataSource {
var number: Int?
lazy var adapter: IGListAdapter = {
let adapter = IGListAdapter(updater: IGListAdapterUpdater(),
viewController: self.viewController,
workingRangeSize: 0)
adapter.dataSource = self
return adapter
}()
override init() {
super.init()
self.inset = UIEdgeInsets(top: 20, left: 0, bottom: 20, right: 0)
}
func numberOfItems() -> Int {
return 1
}
func sizeForItem(at index: Int) -> CGSize {
return CGSize(width: collectionContext!.containerSize.width, height: 340)
}
func cellForItem(at index: Int) -> UICollectionViewCell {
let cell = collectionContext!.dequeueReusableCell(of: EmbeddedCollectionViewCell.self, for: self, at: index) as! EmbeddedCollectionViewCell
adapter.collectionView = cell.collectionView
return cell
}
func didUpdate(to object: Any) {
number = object as? Int
}
func didSelectItem(at index: Int) {}
// MARK: IGListAdapterDataSource
func objects(for listAdapter: IGListAdapter) -> [IGListDiffable] {
guard let number = number else { return [] }
return (0..<number).map { $0 as IGListDiffable }
}
func listAdapter(_ listAdapter: IGListAdapter, sectionControllerFor object: Any) -> IGListSectionController {
return CarouselSectionController()
}
func emptyView(for listAdapter: IGListAdapter) -> UIView? { return nil }
}

View file

@ -0,0 +1,42 @@
/**
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import UIKit
import IGListKit
final class LabelSectionController: IGListSectionController, IGListSectionType {
var object: String?
func numberOfItems() -> Int {
return 1
}
func sizeForItem(at index: Int) -> CGSize {
return CGSize(width: collectionContext!.containerSize.width, height: 55)
}
func cellForItem(at index: Int) -> UICollectionViewCell {
let cell = collectionContext!.dequeueReusableCell(of: LabelCell.self, for: self, at: index) as! LabelCell
cell.label.text = object
return cell
}
func didUpdate(to object: Any) {
self.object = String(describing: object)
}
func didSelectItem(at index: Int) {}
}

View file

@ -0,0 +1,56 @@
/**
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import UIKit
import IGListKit
final class DemosViewController: UIViewController, IGListAdapterDataSource {
lazy var adapter: IGListAdapter = {
return IGListAdapter(updater: IGListAdapterUpdater(), viewController: self, workingRangeSize: 0)
}()
let collectionView = IGListCollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout())
let demos: [DemoItem] = [
DemoItem(name: "Nested Adapter", controllerClass: NestedAdapterViewController.self)
]
override func viewDidLoad() {
super.viewDidLoad()
title = "Demo Chooser"
collectionView.backgroundColor = .clear
view.addSubview(collectionView)
adapter.collectionView = collectionView
adapter.dataSource = self
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
collectionView.frame = view.bounds
}
// MARK: IGListAdapterDataSource
func objects(for listAdapter: IGListAdapter) -> [IGListDiffable] {
return demos
}
func listAdapter(_ listAdapter: IGListAdapter, sectionControllerFor object: Any) -> IGListSectionController {
return DemoSectionController()
}
func emptyView(for listAdapter: IGListAdapter) -> UIView? { return nil }
}

View file

@ -0,0 +1,65 @@
/**
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import UIKit
import IGListKit
final class NestedAdapterViewController: UIViewController, IGListAdapterDataSource {
lazy var adapter: IGListAdapter = {
return IGListAdapter(updater: IGListAdapterUpdater(), viewController: self, workingRangeSize: 0)
}()
let collectionView = IGListCollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout())
let data = [
"Most Recent",
10,
"Recently Watched",
16,
"New Arrivals",
20
] as [Any]
override func viewDidLoad() {
super.viewDidLoad()
collectionView.backgroundColor = .clear
view.addSubview(collectionView)
adapter.collectionView = collectionView
adapter.dataSource = self
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
collectionView.frame = view.bounds
}
// MARK: IGListAdapterDataSource
func objects(for listAdapter: IGListAdapter) -> [IGListDiffable] {
return data as! [IGListDiffable]
}
func listAdapter(_ listAdapter: IGListAdapter, sectionControllerFor object: Any) -> IGListSectionController {
if object is Int {
return HorizontalSectionController()
}
return LabelSectionController()
}
func emptyView(for listAdapter: IGListAdapter) -> UIView? { return nil }
}

View file

@ -0,0 +1,20 @@
//
// CarouselCell.swift
// IGListKitExamples
//
// Created by Sherlock, James (Apprentice Software Developer) on 29/10/2016.
// Copyright © 2016 Instagram. All rights reserved.
//
import UIKit
final class CarouselCell: UICollectionViewCell {
@IBOutlet weak var titleLabel: UILabel!
override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
let normalColor = UIColor(red: 174/255.0, green: 198/255.0, blue: 207/255.0, alpha: 1)
let focusColor = UIColor(red: 117/255.0, green: 155/255.0, blue: 169/255.0, alpha: 1)
backgroundColor = isFocused ? focusColor : normalColor
}
}

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder.AppleTV.XIB" version="3.0" toolsVersion="11535.1" systemVersion="15G31" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="appleTV" orientation="landscape">
<adaptation id="light"/>
</device>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11523"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<collectionViewCell opaque="NO" multipleTouchEnabled="YES" contentMode="center" id="Rz2-K0-ksD" customClass="CarouselCell" customModule="IGListKitExamples" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="117" height="156"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="117" height="156"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="#1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Gaz-SF-Koj">
<rect key="frame" x="0.0" y="0.0" width="117" height="156"/>
<fontDescription key="fontDescription" type="system" pointSize="50"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</view>
<color key="backgroundColor" red="0.68235294117647061" green="0.77647058823529413" blue="0.81176470588235294" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="Gaz-SF-Koj" firstAttribute="top" secondItem="Rz2-K0-ksD" secondAttribute="top" id="asP-B0-EN2"/>
<constraint firstItem="Gaz-SF-Koj" firstAttribute="leading" secondItem="Rz2-K0-ksD" secondAttribute="leading" id="che-iF-Aui"/>
<constraint firstAttribute="trailing" secondItem="Gaz-SF-Koj" secondAttribute="trailing" id="gnO-2r-8Zr"/>
<constraint firstAttribute="bottom" secondItem="Gaz-SF-Koj" secondAttribute="bottom" id="mFh-Xf-q3J"/>
</constraints>
<connections>
<outlet property="titleLabel" destination="Gaz-SF-Koj" id="xO4-09-xqC"/>
</connections>
</collectionViewCell>
</objects>
</document>

View file

@ -0,0 +1,41 @@
/**
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import UIKit
final class DemoCell: UICollectionViewCell {
lazy var label: UILabel = {
let view = UILabel()
view.textColor = .black
view.font = .boldSystemFont(ofSize: 35)
self.contentView.addSubview(view)
return view
}()
override func layoutSubviews() {
super.layoutSubviews()
contentView.backgroundColor = UIColor.white.withAlphaComponent(0.3)
label.frame = contentView.bounds.insetBy(dx: 32, dy: 16)
}
override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
let newBackgroundOpacity: CGFloat = isFocused ? 0.6 : 0.3
let newFontSize: CGFloat = isFocused ? 50 : 35
contentView.backgroundColor = UIColor.white.withAlphaComponent(newBackgroundOpacity)
label.font = .boldSystemFont(ofSize: newFontSize)
}
}

View file

@ -0,0 +1,42 @@
/**
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import UIKit
import IGListKit
final class EmbeddedCollectionViewCell: UICollectionViewCell {
lazy var collectionView: IGListCollectionView = {
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
let view = IGListCollectionView(frame: .zero, collectionViewLayout: layout)
view.backgroundColor = .clear
view.alwaysBounceVertical = false
view.alwaysBounceHorizontal = true
self.contentView.addSubview(view)
return view
}()
override func layoutSubviews() {
super.layoutSubviews()
collectionView.frame = contentView.frame
}
override var preferredFocusedView: UIView? {
get {
return collectionView
}
}
}

View file

@ -0,0 +1,65 @@
/**
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import UIKit
final class LabelCell: UICollectionViewCell {
fileprivate static let insets = UIEdgeInsets(top: 8, left: 15, bottom: 8, right: 15)
fileprivate static let font = UIFont.systemFont(ofSize: 40)
static var singleLineHeight: CGFloat {
return font.lineHeight + insets.top + insets.bottom
}
static func textHeight(_ text: String, width: CGFloat) -> CGFloat {
let constrainedSize = CGSize(width: width - insets.left - insets.right, height: CGFloat.greatestFiniteMagnitude)
let attributes = [ NSFontAttributeName: font ]
let options: NSStringDrawingOptions = [.usesFontLeading, .usesLineFragmentOrigin]
let bounds = (text as NSString).boundingRect(with: constrainedSize, options: options, attributes: attributes, context: nil)
return ceil(bounds.height) + insets.top + insets.bottom
}
lazy var label: UILabel = {
let label = UILabel()
label.backgroundColor = .clear
label.numberOfLines = 1
label.font = LabelCell.font
self.contentView.addSubview(label)
return label
}()
lazy var separator: CALayer = {
let layer = CALayer()
layer.backgroundColor = UIColor(red: 200/255.0, green: 199/255.0, blue: 204/255.0, alpha: 1).cgColor
self.contentView.layer.addSublayer(layer)
return layer
}()
override func layoutSubviews() {
super.layoutSubviews()
let bounds = contentView.bounds
label.frame = UIEdgeInsetsInsetRect(bounds, LabelCell.insets)
let height: CGFloat = 0.5
let left = LabelCell.insets.left
separator.frame = CGRect(x: left, y: bounds.height - height, width: bounds.width - left, height: height)
}
override var canBecomeFocused: Bool {
get {
return false
}
}
}

View file

@ -0,0 +1,11 @@
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

5
Examples-tvOS/Podfile Normal file
View file

@ -0,0 +1,5 @@
use_frameworks!
target 'IGListKitExamples' do
pod 'IGListKit', :path => '../IGListKit.podspec'
end

View file

@ -0,0 +1,16 @@
PODS:
- IGListKit (1.0.0)
DEPENDENCIES:
- IGListKit (from `../IGListKit.podspec`)
EXTERNAL SOURCES:
IGListKit:
:path: ../IGListKit.podspec
SPEC CHECKSUMS:
IGListKit: a534a917b574ec56697390ef182f125ccff2145b
PODFILE CHECKSUM: 4bdfb42d1e7b2b121bf8c83bc300d7d77aa0fc3a
COCOAPODS: 1.1.1

View file

@ -0,0 +1,31 @@
{
"name": "IGListKit",
"version": "1.0.0",
"summary": "A data-driven UICollectionView framework.",
"homepage": "https://github.com/Instagram/IGListKit",
"documentation_url": "https://instagram.github.io/IGListKit",
"description": "A data-driven UICollectionView framework for building fast and flexible lists.",
"license": {
"type": "BSD"
},
"authors": "Instagram",
"social_media_url": "https://twitter.com/fbOpenSource",
"source": {
"git": "https://github.com/Instagram/IGListKit.git",
"tag": "1.0.0",
"branch": "stable"
},
"source_files": "Source/**/*.{h,m,mm}",
"private_header_files": "Source/Internal/*.h",
"requires_arc": true,
"platforms": {
"ios": "8.0",
"tvos": "9.0"
},
"frameworks": "UIKit",
"libraries": "c++",
"pod_target_xcconfig": {
"CLANG_CXX_LANGUAGE_STANDARD": "c++11",
"CLANG_CXX_LIBRARY": "libc++"
}
}

16
Examples-tvOS/Pods/Manifest.lock generated Normal file
View file

@ -0,0 +1,16 @@
PODS:
- IGListKit (1.0.0)
DEPENDENCIES:
- IGListKit (from `../IGListKit.podspec`)
EXTERNAL SOURCES:
IGListKit:
:path: ../IGListKit.podspec
SPEC CHECKSUMS:
IGListKit: a534a917b574ec56697390ef182f125ccff2145b
PODFILE CHECKSUM: 4bdfb42d1e7b2b121bf8c83bc300d7d77aa0fc3a
COCOAPODS: 1.1.1

View file

@ -0,0 +1,802 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
048DD995106FB4EB9CACE14AB11E9E4B /* IGListDisplayHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 828260DA828EE578C9E5EAE347FB1D17 /* IGListDisplayHandler.m */; };
07CA069B065E33BEE709DB1D08FB08BB /* IGListAdapterProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 08E3820E0996C55B3D57D852C741032F /* IGListAdapterProxy.h */; settings = {ATTRIBUTES = (Private, ); }; };
0E8B466CF38565A4E8CB702AAA14DDEE /* IGListAdapterDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 102731D0A3833E5605269F5C17FF3361 /* IGListAdapterDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; };
0EAEFC87A46B035B98458B77C0DAB313 /* IGListAdapterProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 222A0E59AC9133CCADB14649123BD761 /* IGListAdapterProxy.m */; };
0F8D03E428749E8CE408392DEA4823D2 /* IGListCollectionContext.h in Headers */ = {isa = PBXBuildFile; fileRef = ED52993BC0E5A2A8CF3032899C3CEEEF /* IGListCollectionContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
0FE508FE448256A0EB8CF84CC381D1FB /* IGListKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D3A377D114AF33D5FD08919F9009118 /* IGListKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
134B84577367CDE16AA6AD0962A6B85F /* IGListIndexPathResultInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FB0BAA5C072B6578FEF7F1C645879E8 /* IGListIndexPathResultInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
151601F20702205211839EDBFC72EA0F /* IGListIndexSetResultInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D178C0543A7E01519D9F2FAB35BA5BE /* IGListIndexSetResultInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
1668524927DB5E75F1D2D008B0B23551 /* IGListAdapterUpdater.m in Sources */ = {isa = PBXBuildFile; fileRef = C4754AD0793D09ADC98CE8315FB27946 /* IGListAdapterUpdater.m */; };
1A89AF7CCCD65D9D5B946363776D05AE /* Pods-IGListKitExamples-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 52054AE893A0AE7FBFC54333D8ABD345 /* Pods-IGListKitExamples-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
1BD26AEC65A15912B3F272922522826C /* IGListReloadDataUpdater.m in Sources */ = {isa = PBXBuildFile; fileRef = 27E13D8C854DFD2EFDD6DA87194F1121 /* IGListReloadDataUpdater.m */; };
1DA0BAAE175DBEFD33BAF45ED05DA33F /* IGListUpdatingDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D018E732008A294F6E7A41CC4453AB /* IGListUpdatingDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
1E3C28DD198BEBAD9E457AF0B2E813CE /* IGListAdapterDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 923FA479C0E7EAA47E53CA75BC3CECBB /* IGListAdapterDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
28260093B9FCBA02BB36C414FE156A33 /* NSObject+IGListDiffable.m in Sources */ = {isa = PBXBuildFile; fileRef = FA380D1C37A20C80A41A5B330D2EE293 /* NSObject+IGListDiffable.m */; };
2DC362DF318FFDCD0DC881A06F7EF60F /* IGListMoveIndexInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC56F6F14844AF7A5DA1AA3FC5BD736 /* IGListMoveIndexInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
35DC16C75961FEFBB6C976D527D06102 /* IGListAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 03D1E539E0EF198C23E5EEE216EF66B3 /* IGListAdapter.m */; };
36300A4773E5329A5DCFB774951C72A6 /* NSIndexSet+PrettyDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 3393D3C6C3A834DB5ABC2B7E4086D071 /* NSIndexSet+PrettyDescription.h */; settings = {ATTRIBUTES = (Private, ); }; };
36A352766482AA88A9F62372E5A25A36 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71D44B887663E8A7D2752C9ED2356648 /* Foundation.framework */; };
37C14D32C6F44CFBE4A0ECA63D251890 /* IGListBatchUpdateData.h in Headers */ = {isa = PBXBuildFile; fileRef = 23A8D5BAC0F0E583579806FD68BD5003 /* IGListBatchUpdateData.h */; settings = {ATTRIBUTES = (Public, ); }; };
37C95D54129A28980B0A44B164D7BADE /* IGListSectionController.h in Headers */ = {isa = PBXBuildFile; fileRef = 13663962D3B6303106FF1A527DF410E7 /* IGListSectionController.h */; settings = {ATTRIBUTES = (Public, ); }; };
387D977F448C8FEDC374BE8D8F027FE0 /* NSObject+IGListDiffable.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EF5FA11849D5905A87D204E8E95BAFA /* NSObject+IGListDiffable.h */; settings = {ATTRIBUTES = (Public, ); }; };
3AE30BC98DEE5047B8E2A09F8AC058D9 /* IGListExperiments.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B2CECCD1310C45948C83FE88A415FD1 /* IGListExperiments.h */; settings = {ATTRIBUTES = (Public, ); }; };
4777B6A28EB663E8DCE23B28A3EEDC84 /* IGListSingleSectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = 94C66DF3CD7FDC58ABC235D44BBCFB47 /* IGListSingleSectionController.m */; };
4C0D8D4200F19765387BDA5DF0351707 /* UICollectionView+IGListBatchUpdateData.h in Headers */ = {isa = PBXBuildFile; fileRef = 9017BCE4C7BAE0D22C1D8E6CEDB96DCF /* UICollectionView+IGListBatchUpdateData.h */; settings = {ATTRIBUTES = (Private, ); }; };
51D08A6C09E9BB328A0E8537A9304E54 /* IGListAdapterUpdater.h in Headers */ = {isa = PBXBuildFile; fileRef = F24111595DA00F970E6AB05DE54C37A3 /* IGListAdapterUpdater.h */; settings = {ATTRIBUTES = (Public, ); }; };
52FC6541FB2BEA9A3D32596D0F0112F3 /* IGListMoveIndexPath.m in Sources */ = {isa = PBXBuildFile; fileRef = EB79F78BF0DCFFA582A504023F061F0B /* IGListMoveIndexPath.m */; };
57FB14F4B485DB6C1079D629643E224D /* IGListStackedSectionControllerInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 659F498EE384D82BB587376EEFB7CF43 /* IGListStackedSectionControllerInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
5901E794126AD4043B96E3EA5424A0A9 /* IGListBatchUpdateData.mm in Sources */ = {isa = PBXBuildFile; fileRef = E402B90D4B2469068923EF6DCA6AEBAA /* IGListBatchUpdateData.mm */; };
5B24A7DA53D0CDFE36233A725078ADF1 /* IGListMoveIndexPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 849F9103B93CC21B8AB472C5294DAF98 /* IGListMoveIndexPath.h */; settings = {ATTRIBUTES = (Public, ); }; };
5B3EC05B46CAE92AC86F5E0140ECBC1C /* UICollectionView+IGListBatchUpdateData.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D6017DC6EBE30D0F10C9B3FAB16BAD4 /* UICollectionView+IGListBatchUpdateData.m */; };
5D333C80CE63A8D01A9E816B7D47A0F8 /* IGListMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = F80E790E1D548E9646F10A75ACE0BB71 /* IGListMacros.h */; settings = {ATTRIBUTES = (Public, ); }; };
5FDF3C63D06797EC6649DDB527E75593 /* IGListSupplementaryViewSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 1191E666F701202922624F398A0A4D27 /* IGListSupplementaryViewSource.h */; settings = {ATTRIBUTES = (Public, ); }; };
616ED22733EF3C17B718A10595B6C03D /* IGListSectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = F31E9B40FF641B9B25E0A62FFABC7855 /* IGListSectionController.m */; };
6585F8BC4AE0EA2DC16B62B159CAE397 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71D44B887663E8A7D2752C9ED2356648 /* Foundation.framework */; };
698695EBBCAAEE553D0284ECE93B4730 /* IGListAdapterUpdaterDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0241CABAD3620FDFC7CFB2229AF89CD4 /* IGListAdapterUpdaterDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
6B73F97858678E9A7EE6CAA3C8F4CAEE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4C132D7BA00C1384E27FAFD43A44B6 /* UIKit.framework */; };
716FDA201B13C5D83AE1109EB6B0047F /* IGListIndexPathResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 5523CDCF6C0CDADC8C7DA5CD9AEC6720 /* IGListIndexPathResult.m */; };
72E7E3F5E1DC01C109F5FAC37DFA4F01 /* IGListDiff.mm in Sources */ = {isa = PBXBuildFile; fileRef = C71BDF31A0D4E4C60FE418DF8F5DA20B /* IGListDiff.mm */; };
76829A1937AE85E06E03EEA1BB6BA1ED /* IGListDiffable.h in Headers */ = {isa = PBXBuildFile; fileRef = 123A0FCE117A8EB9330BB9A759C3BCF7 /* IGListDiffable.h */; settings = {ATTRIBUTES = (Public, ); }; };
7700CBD66152909A6AA3CCE83F86DFB1 /* IGListSingleSectionController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2404D142D0C9FE9B9DB6F42733B37A8F /* IGListSingleSectionController.h */; settings = {ATTRIBUTES = (Public, ); }; };
7881A804F20C1FF7D5A2E82E92D23D4B /* IGListReloadDataUpdater.h in Headers */ = {isa = PBXBuildFile; fileRef = 855C5B154C4BD5F226954A063EAA0A6D /* IGListReloadDataUpdater.h */; settings = {ATTRIBUTES = (Public, ); }; };
7B96DAEE6845686FCC632B2FCE54DCFB /* IGListMoveIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA813263295944FD7C28EF50901FE213 /* IGListMoveIndex.h */; settings = {ATTRIBUTES = (Public, ); }; };
7F1E44C4C0FEEFE713C6E9B1FB644D7F /* IGListKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9032A1FEC635618198A9431CF9517449 /* IGListKit-dummy.m */; };
867C735D6F3C81D5CF8394528C5EEC27 /* IGListSectionType.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F6C1ADF43CF0CA7AAEC0CA9D1B9EDD /* IGListSectionType.h */; settings = {ATTRIBUTES = (Public, ); }; };
8B71D13ACAC5591B3CE7B51299178137 /* IGListStackedSectionController.h in Headers */ = {isa = PBXBuildFile; fileRef = 024CC00C03E409241F3462AD74F254EA /* IGListStackedSectionController.h */; settings = {ATTRIBUTES = (Public, ); }; };
90FBDB2E0EDEDA382DACDC4480CACE11 /* IGListDiff.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E81454F52F06CFB85B0EA69AD3CAA6B /* IGListDiff.h */; settings = {ATTRIBUTES = (Public, ); }; };
9136AD424FB2AA5D428C97497B92212A /* IGListDisplayHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE5A8F234B280173578C6C12D8F0BA8 /* IGListDisplayHandler.h */; settings = {ATTRIBUTES = (Private, ); }; };
94C6F2A63832A45817B3972936107D4C /* IGListIndexSetResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 60E25741963EAF6E90632ABD1796CD5B /* IGListIndexSetResult.m */; };
9537ED5D64D1020A696E85D0E297F89B /* IGListWorkingRangeHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FF9956865CA6A17094FCF49B1328235 /* IGListWorkingRangeHandler.h */; settings = {ATTRIBUTES = (Private, ); }; };
9648D0657DC9923BF9CC5D58AA0EABD3 /* IGListMoveIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 15444C33650BE2CAC5A1FC7F5E383161 /* IGListMoveIndex.m */; };
9908944BE13B0DC564C12D31E11F9B16 /* IGListScrollDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = C5788D65F7EA5B985BDD9D570EFD6D61 /* IGListScrollDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
99F220194828DBCD1364349FECB62A85 /* IGListAdapterInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 02402B6FB552DB54B0533F060072F959 /* IGListAdapterInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
9D193CFFEBD44D034E827223350E18B6 /* IGListWorkingRangeDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = FAF1B04E040803D62EAD2AEBFAE8C247 /* IGListWorkingRangeDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
A013323C37461B0C5A6D48B0E295D01B /* IGListSectionControllerInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = BACD4E5EB03723EC1AE6A32D696BB235 /* IGListSectionControllerInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
A83BC3A0B761C430D361524438BC3AC2 /* IGListWorkingRangeHandler.mm in Sources */ = {isa = PBXBuildFile; fileRef = C32854A9E8D0C9144DFC7E636182E5FB /* IGListWorkingRangeHandler.mm */; };
B4CD949F134F7E4CD11E11682AB22079 /* IGListAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 180822AE5F902FF9D118166C254BB9D4 /* IGListAdapter.h */; settings = {ATTRIBUTES = (Public, ); }; };
BE6230BF86420C3ED8A459E0BE0A4904 /* IGListCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5317A3BE429672A1580D2F1FD419FE66 /* IGListCollectionView.m */; };
BF2748F42C2244389EF7A2B848C3F57E /* IGListSectionMap.h in Headers */ = {isa = PBXBuildFile; fileRef = BC18A7D71293F9C8826AFF856383E800 /* IGListSectionMap.h */; settings = {ATTRIBUTES = (Private, ); }; };
C02FEEA9717B24B51C1C7D5CAD75E2F0 /* IGListStackedSectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = 605923915E529D7EED7634C33EB8DD8C /* IGListStackedSectionController.m */; };
C2A332D7BC9B89592141A8231B35EE2A /* IGListAdapterUpdaterInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = FC344825E9CE46016D4C9BFBB7787EF6 /* IGListAdapterUpdaterInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
C4C4C1B02AFD7277F00A40570658152C /* Pods-IGListKitExamples-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F5AE0385534EC7E6CA75003A7280492 /* Pods-IGListKitExamples-dummy.m */; };
C5E00BB4C4BB8368AC203C571ECD36D0 /* IGListMoveIndexPathInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = C41E3FA619D7A9F833B7747A5AFF7C28 /* IGListMoveIndexPathInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
D2B2C9D2D14200444BB64696B05B2997 /* IGListCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = E577E8226463DE19A494899FC4B8488B /* IGListCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; };
D5784F407B76134D8E517759894AF6F5 /* IGListKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 01837EBDDF41D06A77B9670D9FF211A0 /* IGListKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
D823F8B7308D421D94EA8FB912778C68 /* IGListAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = E4E6047C833C2F2DA1C712258F1FA857 /* IGListAssert.h */; settings = {ATTRIBUTES = (Public, ); }; };
DBBF93CA21917E27D087DB0AE287A315 /* IGListSectionMap.m in Sources */ = {isa = PBXBuildFile; fileRef = FE5E53C9B524CAE450FBBDF8C229961A /* IGListSectionMap.m */; };
DE3948B248A3D2BBBD148A7300A72FC6 /* IGListIndexSetResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 30980860468ACB979933F1DB4726BB8A /* IGListIndexSetResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
E544414873F1F566F866DA90043FEE03 /* NSIndexSet+PrettyDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 66F862E2AEE5E9C632AFF768FC862482 /* NSIndexSet+PrettyDescription.m */; };
E863057BEBB61664170B988A8A195D27 /* IGListIndexPathResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 34FAFFC39C810CA95148450766D73EFC /* IGListIndexPathResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
F975889EC66E3E6890EB307BFA38BEA5 /* IGListDisplayDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 875A0C401CD97F0C3F8536E89893042F /* IGListDisplayDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
A0A5426482C447F640D6A192E71D5F5B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 5A9988CDADFC92DB95D7C72D2E4F5F4A;
remoteInfo = IGListKit;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
01837EBDDF41D06A77B9670D9FF211A0 /* IGListKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IGListKit-umbrella.h"; sourceTree = "<group>"; };
02402B6FB552DB54B0533F060072F959 /* IGListAdapterInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterInternal.h; sourceTree = "<group>"; };
0241CABAD3620FDFC7CFB2229AF89CD4 /* IGListAdapterUpdaterDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterUpdaterDelegate.h; sourceTree = "<group>"; };
024CC00C03E409241F3462AD74F254EA /* IGListStackedSectionController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListStackedSectionController.h; sourceTree = "<group>"; };
03D1E539E0EF198C23E5EEE216EF66B3 /* IGListAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListAdapter.m; sourceTree = "<group>"; };
08E3820E0996C55B3D57D852C741032F /* IGListAdapterProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterProxy.h; sourceTree = "<group>"; };
102731D0A3833E5605269F5C17FF3361 /* IGListAdapterDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterDataSource.h; sourceTree = "<group>"; };
1191E666F701202922624F398A0A4D27 /* IGListSupplementaryViewSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSupplementaryViewSource.h; sourceTree = "<group>"; };
123A0FCE117A8EB9330BB9A759C3BCF7 /* IGListDiffable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListDiffable.h; sourceTree = "<group>"; };
13663962D3B6303106FF1A527DF410E7 /* IGListSectionController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSectionController.h; sourceTree = "<group>"; };
15444C33650BE2CAC5A1FC7F5E383161 /* IGListMoveIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListMoveIndex.m; sourceTree = "<group>"; };
180822AE5F902FF9D118166C254BB9D4 /* IGListAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapter.h; sourceTree = "<group>"; };
1B2B14BA3AB402D9CC387EEB27A2F746 /* Pods-IGListKitExamples.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IGListKitExamples.debug.xcconfig"; sourceTree = "<group>"; };
1FB0BAA5C072B6578FEF7F1C645879E8 /* IGListIndexPathResultInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListIndexPathResultInternal.h; sourceTree = "<group>"; };
222A0E59AC9133CCADB14649123BD761 /* IGListAdapterProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListAdapterProxy.m; sourceTree = "<group>"; };
23A8D5BAC0F0E583579806FD68BD5003 /* IGListBatchUpdateData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListBatchUpdateData.h; sourceTree = "<group>"; };
2404D142D0C9FE9B9DB6F42733B37A8F /* IGListSingleSectionController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSingleSectionController.h; sourceTree = "<group>"; };
27E13D8C854DFD2EFDD6DA87194F1121 /* IGListReloadDataUpdater.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListReloadDataUpdater.m; sourceTree = "<group>"; };
2D6017DC6EBE30D0F10C9B3FAB16BAD4 /* UICollectionView+IGListBatchUpdateData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UICollectionView+IGListBatchUpdateData.m"; sourceTree = "<group>"; };
2F5AE0385534EC7E6CA75003A7280492 /* Pods-IGListKitExamples-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-IGListKitExamples-dummy.m"; sourceTree = "<group>"; };
30980860468ACB979933F1DB4726BB8A /* IGListIndexSetResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListIndexSetResult.h; sourceTree = "<group>"; };
3393D3C6C3A834DB5ABC2B7E4086D071 /* NSIndexSet+PrettyDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSIndexSet+PrettyDescription.h"; sourceTree = "<group>"; };
34FAFFC39C810CA95148450766D73EFC /* IGListIndexPathResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListIndexPathResult.h; sourceTree = "<group>"; };
3AE5A8F234B280173578C6C12D8F0BA8 /* IGListDisplayHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListDisplayHandler.h; sourceTree = "<group>"; };
3FF9956865CA6A17094FCF49B1328235 /* IGListWorkingRangeHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListWorkingRangeHandler.h; sourceTree = "<group>"; };
428C13C7C57B2D91F00D94ECF1FA71F8 /* Pods-IGListKitExamples-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-IGListKitExamples-resources.sh"; sourceTree = "<group>"; };
449492FD9184620EC1A886DC6421D208 /* IGListKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = IGListKit.modulemap; sourceTree = "<group>"; };
52054AE893A0AE7FBFC54333D8ABD345 /* Pods-IGListKitExamples-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-IGListKitExamples-umbrella.h"; sourceTree = "<group>"; };
5317A3BE429672A1580D2F1FD419FE66 /* IGListCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListCollectionView.m; sourceTree = "<group>"; };
5523CDCF6C0CDADC8C7DA5CD9AEC6720 /* IGListIndexPathResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListIndexPathResult.m; sourceTree = "<group>"; };
56F841C1D796A137142479CE430A6DDB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
5E81454F52F06CFB85B0EA69AD3CAA6B /* IGListDiff.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListDiff.h; sourceTree = "<group>"; };
605923915E529D7EED7634C33EB8DD8C /* IGListStackedSectionController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListStackedSectionController.m; sourceTree = "<group>"; };
60E25741963EAF6E90632ABD1796CD5B /* IGListIndexSetResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListIndexSetResult.m; sourceTree = "<group>"; };
62D018E732008A294F6E7A41CC4453AB /* IGListUpdatingDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListUpdatingDelegate.h; sourceTree = "<group>"; };
6446021A4B962CB0053472AA1E6D9968 /* IGListKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IGListKit.xcconfig; sourceTree = "<group>"; };
659F498EE384D82BB587376EEFB7CF43 /* IGListStackedSectionControllerInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListStackedSectionControllerInternal.h; sourceTree = "<group>"; };
6646D2297940D6D3611DDE9738469921 /* IGListKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IGListKit-prefix.pch"; sourceTree = "<group>"; };
66F862E2AEE5E9C632AFF768FC862482 /* NSIndexSet+PrettyDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSIndexSet+PrettyDescription.m"; sourceTree = "<group>"; };
6B2CECCD1310C45948C83FE88A415FD1 /* IGListExperiments.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListExperiments.h; sourceTree = "<group>"; };
6D178C0543A7E01519D9F2FAB35BA5BE /* IGListIndexSetResultInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListIndexSetResultInternal.h; sourceTree = "<group>"; };
6D3A377D114AF33D5FD08919F9009118 /* IGListKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListKit.h; sourceTree = "<group>"; };
71D44B887663E8A7D2752C9ED2356648 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
828260DA828EE578C9E5EAE347FB1D17 /* IGListDisplayHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListDisplayHandler.m; sourceTree = "<group>"; };
849F9103B93CC21B8AB472C5294DAF98 /* IGListMoveIndexPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListMoveIndexPath.h; sourceTree = "<group>"; };
855C5B154C4BD5F226954A063EAA0A6D /* IGListReloadDataUpdater.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListReloadDataUpdater.h; sourceTree = "<group>"; };
875A0C401CD97F0C3F8536E89893042F /* IGListDisplayDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListDisplayDelegate.h; sourceTree = "<group>"; };
8EF5FA11849D5905A87D204E8E95BAFA /* NSObject+IGListDiffable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSObject+IGListDiffable.h"; sourceTree = "<group>"; };
9017BCE4C7BAE0D22C1D8E6CEDB96DCF /* UICollectionView+IGListBatchUpdateData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UICollectionView+IGListBatchUpdateData.h"; sourceTree = "<group>"; };
9032A1FEC635618198A9431CF9517449 /* IGListKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IGListKit-dummy.m"; sourceTree = "<group>"; };
923FA479C0E7EAA47E53CA75BC3CECBB /* IGListAdapterDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterDelegate.h; sourceTree = "<group>"; };
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
94C66DF3CD7FDC58ABC235D44BBCFB47 /* IGListSingleSectionController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListSingleSectionController.m; sourceTree = "<group>"; };
9D11DCAE06F644E6CCE659622CD8E616 /* IGListKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = IGListKit.framework; path = IGListKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A198E265B2C6E673C7C9C5050F92D9F0 /* Pods-IGListKitExamples.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IGListKitExamples.release.xcconfig"; sourceTree = "<group>"; };
A1F6C1ADF43CF0CA7AAEC0CA9D1B9EDD /* IGListSectionType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSectionType.h; sourceTree = "<group>"; };
A7BBE69D34859663403DA26F14CC4DDB /* Pods-IGListKitExamples-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-IGListKitExamples-acknowledgements.markdown"; sourceTree = "<group>"; };
A851A4ACB8C0DE98BFFBC6FD4D1BACEE /* Pods-IGListKitExamples-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-IGListKitExamples-frameworks.sh"; sourceTree = "<group>"; };
AA813263295944FD7C28EF50901FE213 /* IGListMoveIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListMoveIndex.h; sourceTree = "<group>"; };
AAC56F6F14844AF7A5DA1AA3FC5BD736 /* IGListMoveIndexInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListMoveIndexInternal.h; sourceTree = "<group>"; };
AB4C132D7BA00C1384E27FAFD43A44B6 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS10.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
ABF549428FEA18696E5358F599E11A24 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
BACD4E5EB03723EC1AE6A32D696BB235 /* IGListSectionControllerInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSectionControllerInternal.h; sourceTree = "<group>"; };
BC18A7D71293F9C8826AFF856383E800 /* IGListSectionMap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSectionMap.h; sourceTree = "<group>"; };
C32854A9E8D0C9144DFC7E636182E5FB /* IGListWorkingRangeHandler.mm */ = {isa = PBXFileReference; includeInIndex = 1; path = IGListWorkingRangeHandler.mm; sourceTree = "<group>"; };
C41E3FA619D7A9F833B7747A5AFF7C28 /* IGListMoveIndexPathInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListMoveIndexPathInternal.h; sourceTree = "<group>"; };
C4754AD0793D09ADC98CE8315FB27946 /* IGListAdapterUpdater.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListAdapterUpdater.m; sourceTree = "<group>"; };
C5788D65F7EA5B985BDD9D570EFD6D61 /* IGListScrollDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListScrollDelegate.h; sourceTree = "<group>"; };
C71BDF31A0D4E4C60FE418DF8F5DA20B /* IGListDiff.mm */ = {isa = PBXFileReference; includeInIndex = 1; path = IGListDiff.mm; sourceTree = "<group>"; };
C7F454644FEBF5DB647AE1728D1FD067 /* Pods_IGListKitExamples.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_IGListKitExamples.framework; path = "Pods-IGListKitExamples.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
D803D538BF4074498E5ADB84A16E0395 /* Pods-IGListKitExamples-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-IGListKitExamples-acknowledgements.plist"; sourceTree = "<group>"; };
DDF922EBFB237C1B42E8B07306D987E8 /* Pods-IGListKitExamples.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-IGListKitExamples.modulemap"; sourceTree = "<group>"; };
E402B90D4B2469068923EF6DCA6AEBAA /* IGListBatchUpdateData.mm */ = {isa = PBXFileReference; includeInIndex = 1; path = IGListBatchUpdateData.mm; sourceTree = "<group>"; };
E4E6047C833C2F2DA1C712258F1FA857 /* IGListAssert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAssert.h; sourceTree = "<group>"; };
E577E8226463DE19A494899FC4B8488B /* IGListCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListCollectionView.h; sourceTree = "<group>"; };
EB79F78BF0DCFFA582A504023F061F0B /* IGListMoveIndexPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListMoveIndexPath.m; sourceTree = "<group>"; };
ED52993BC0E5A2A8CF3032899C3CEEEF /* IGListCollectionContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListCollectionContext.h; sourceTree = "<group>"; };
F24111595DA00F970E6AB05DE54C37A3 /* IGListAdapterUpdater.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterUpdater.h; sourceTree = "<group>"; };
F31E9B40FF641B9B25E0A62FFABC7855 /* IGListSectionController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListSectionController.m; sourceTree = "<group>"; };
F80E790E1D548E9646F10A75ACE0BB71 /* IGListMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListMacros.h; sourceTree = "<group>"; };
FA380D1C37A20C80A41A5B330D2EE293 /* NSObject+IGListDiffable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSObject+IGListDiffable.m"; sourceTree = "<group>"; };
FAF1B04E040803D62EAD2AEBFAE8C247 /* IGListWorkingRangeDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListWorkingRangeDelegate.h; sourceTree = "<group>"; };
FC344825E9CE46016D4C9BFBB7787EF6 /* IGListAdapterUpdaterInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterUpdaterInternal.h; sourceTree = "<group>"; };
FE5E53C9B524CAE450FBBDF8C229961A /* IGListSectionMap.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListSectionMap.m; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
802596B628B7CEFACCAF17AA0318C50C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
36A352766482AA88A9F62372E5A25A36 /* Foundation.framework in Frameworks */,
6B73F97858678E9A7EE6CAA3C8F4CAEE /* UIKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
D7057175063065567057895AB005C590 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
6585F8BC4AE0EA2DC16B62B159CAE397 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
17E90634132CA5C8CA2F91A53A420FC4 /* IGListKit */ = {
isa = PBXGroup;
children = (
63F560C27CC0CB178D136105D5C9A490 /* Source */,
403283ECF0BFAF7EA34C67C89A20457E /* Support Files */,
);
name = IGListKit;
path = ../..;
sourceTree = "<group>";
};
275D18F543186A905E745D345F66E093 /* Development Pods */ = {
isa = PBXGroup;
children = (
17E90634132CA5C8CA2F91A53A420FC4 /* IGListKit */,
);
name = "Development Pods";
sourceTree = "<group>";
};
403283ECF0BFAF7EA34C67C89A20457E /* Support Files */ = {
isa = PBXGroup;
children = (
449492FD9184620EC1A886DC6421D208 /* IGListKit.modulemap */,
6446021A4B962CB0053472AA1E6D9968 /* IGListKit.xcconfig */,
9032A1FEC635618198A9431CF9517449 /* IGListKit-dummy.m */,
6646D2297940D6D3611DDE9738469921 /* IGListKit-prefix.pch */,
01837EBDDF41D06A77B9670D9FF211A0 /* IGListKit-umbrella.h */,
56F841C1D796A137142479CE430A6DDB /* Info.plist */,
);
name = "Support Files";
path = "Examples-tvOS/Pods/Target Support Files/IGListKit";
sourceTree = "<group>";
};
51A62FAD141FCC64FABDAA958233E728 /* Targets Support Files */ = {
isa = PBXGroup;
children = (
F22E6673D29C1778B1984CF7D4D871E9 /* Pods-IGListKitExamples */,
);
name = "Targets Support Files";
sourceTree = "<group>";
};
61F96534B3AFE724944526CC9F6F2EFE /* Products */ = {
isa = PBXGroup;
children = (
9D11DCAE06F644E6CCE659622CD8E616 /* IGListKit.framework */,
C7F454644FEBF5DB647AE1728D1FD067 /* Pods_IGListKitExamples.framework */,
);
name = Products;
sourceTree = "<group>";
};
63F560C27CC0CB178D136105D5C9A490 /* Source */ = {
isa = PBXGroup;
children = (
180822AE5F902FF9D118166C254BB9D4 /* IGListAdapter.h */,
03D1E539E0EF198C23E5EEE216EF66B3 /* IGListAdapter.m */,
102731D0A3833E5605269F5C17FF3361 /* IGListAdapterDataSource.h */,
923FA479C0E7EAA47E53CA75BC3CECBB /* IGListAdapterDelegate.h */,
F24111595DA00F970E6AB05DE54C37A3 /* IGListAdapterUpdater.h */,
C4754AD0793D09ADC98CE8315FB27946 /* IGListAdapterUpdater.m */,
0241CABAD3620FDFC7CFB2229AF89CD4 /* IGListAdapterUpdaterDelegate.h */,
E4E6047C833C2F2DA1C712258F1FA857 /* IGListAssert.h */,
23A8D5BAC0F0E583579806FD68BD5003 /* IGListBatchUpdateData.h */,
E402B90D4B2469068923EF6DCA6AEBAA /* IGListBatchUpdateData.mm */,
ED52993BC0E5A2A8CF3032899C3CEEEF /* IGListCollectionContext.h */,
E577E8226463DE19A494899FC4B8488B /* IGListCollectionView.h */,
5317A3BE429672A1580D2F1FD419FE66 /* IGListCollectionView.m */,
5E81454F52F06CFB85B0EA69AD3CAA6B /* IGListDiff.h */,
C71BDF31A0D4E4C60FE418DF8F5DA20B /* IGListDiff.mm */,
123A0FCE117A8EB9330BB9A759C3BCF7 /* IGListDiffable.h */,
875A0C401CD97F0C3F8536E89893042F /* IGListDisplayDelegate.h */,
6B2CECCD1310C45948C83FE88A415FD1 /* IGListExperiments.h */,
34FAFFC39C810CA95148450766D73EFC /* IGListIndexPathResult.h */,
5523CDCF6C0CDADC8C7DA5CD9AEC6720 /* IGListIndexPathResult.m */,
30980860468ACB979933F1DB4726BB8A /* IGListIndexSetResult.h */,
60E25741963EAF6E90632ABD1796CD5B /* IGListIndexSetResult.m */,
6D3A377D114AF33D5FD08919F9009118 /* IGListKit.h */,
F80E790E1D548E9646F10A75ACE0BB71 /* IGListMacros.h */,
AA813263295944FD7C28EF50901FE213 /* IGListMoveIndex.h */,
15444C33650BE2CAC5A1FC7F5E383161 /* IGListMoveIndex.m */,
849F9103B93CC21B8AB472C5294DAF98 /* IGListMoveIndexPath.h */,
EB79F78BF0DCFFA582A504023F061F0B /* IGListMoveIndexPath.m */,
855C5B154C4BD5F226954A063EAA0A6D /* IGListReloadDataUpdater.h */,
27E13D8C854DFD2EFDD6DA87194F1121 /* IGListReloadDataUpdater.m */,
C5788D65F7EA5B985BDD9D570EFD6D61 /* IGListScrollDelegate.h */,
13663962D3B6303106FF1A527DF410E7 /* IGListSectionController.h */,
F31E9B40FF641B9B25E0A62FFABC7855 /* IGListSectionController.m */,
A1F6C1ADF43CF0CA7AAEC0CA9D1B9EDD /* IGListSectionType.h */,
2404D142D0C9FE9B9DB6F42733B37A8F /* IGListSingleSectionController.h */,
94C66DF3CD7FDC58ABC235D44BBCFB47 /* IGListSingleSectionController.m */,
024CC00C03E409241F3462AD74F254EA /* IGListStackedSectionController.h */,
605923915E529D7EED7634C33EB8DD8C /* IGListStackedSectionController.m */,
1191E666F701202922624F398A0A4D27 /* IGListSupplementaryViewSource.h */,
62D018E732008A294F6E7A41CC4453AB /* IGListUpdatingDelegate.h */,
FAF1B04E040803D62EAD2AEBFAE8C247 /* IGListWorkingRangeDelegate.h */,
8EF5FA11849D5905A87D204E8E95BAFA /* NSObject+IGListDiffable.h */,
FA380D1C37A20C80A41A5B330D2EE293 /* NSObject+IGListDiffable.m */,
B871D0E0E6A23E1B509229BA8DF78EE5 /* Internal */,
);
name = Source;
path = Source;
sourceTree = "<group>";
};
6EC461C1435A31577346ED4ADA0BD5A9 /* Frameworks */ = {
isa = PBXGroup;
children = (
FE77A9456A47034F965F75B0B0B6CF30 /* tvOS */,
);
name = Frameworks;
sourceTree = "<group>";
};
7DB346D0F39D3F0E887471402A8071AB = {
isa = PBXGroup;
children = (
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
275D18F543186A905E745D345F66E093 /* Development Pods */,
6EC461C1435A31577346ED4ADA0BD5A9 /* Frameworks */,
61F96534B3AFE724944526CC9F6F2EFE /* Products */,
51A62FAD141FCC64FABDAA958233E728 /* Targets Support Files */,
);
sourceTree = "<group>";
};
B871D0E0E6A23E1B509229BA8DF78EE5 /* Internal */ = {
isa = PBXGroup;
children = (
02402B6FB552DB54B0533F060072F959 /* IGListAdapterInternal.h */,
08E3820E0996C55B3D57D852C741032F /* IGListAdapterProxy.h */,
222A0E59AC9133CCADB14649123BD761 /* IGListAdapterProxy.m */,
FC344825E9CE46016D4C9BFBB7787EF6 /* IGListAdapterUpdaterInternal.h */,
3AE5A8F234B280173578C6C12D8F0BA8 /* IGListDisplayHandler.h */,
828260DA828EE578C9E5EAE347FB1D17 /* IGListDisplayHandler.m */,
1FB0BAA5C072B6578FEF7F1C645879E8 /* IGListIndexPathResultInternal.h */,
6D178C0543A7E01519D9F2FAB35BA5BE /* IGListIndexSetResultInternal.h */,
AAC56F6F14844AF7A5DA1AA3FC5BD736 /* IGListMoveIndexInternal.h */,
C41E3FA619D7A9F833B7747A5AFF7C28 /* IGListMoveIndexPathInternal.h */,
BACD4E5EB03723EC1AE6A32D696BB235 /* IGListSectionControllerInternal.h */,
BC18A7D71293F9C8826AFF856383E800 /* IGListSectionMap.h */,
FE5E53C9B524CAE450FBBDF8C229961A /* IGListSectionMap.m */,
659F498EE384D82BB587376EEFB7CF43 /* IGListStackedSectionControllerInternal.h */,
3FF9956865CA6A17094FCF49B1328235 /* IGListWorkingRangeHandler.h */,
C32854A9E8D0C9144DFC7E636182E5FB /* IGListWorkingRangeHandler.mm */,
3393D3C6C3A834DB5ABC2B7E4086D071 /* NSIndexSet+PrettyDescription.h */,
66F862E2AEE5E9C632AFF768FC862482 /* NSIndexSet+PrettyDescription.m */,
9017BCE4C7BAE0D22C1D8E6CEDB96DCF /* UICollectionView+IGListBatchUpdateData.h */,
2D6017DC6EBE30D0F10C9B3FAB16BAD4 /* UICollectionView+IGListBatchUpdateData.m */,
);
name = Internal;
path = Internal;
sourceTree = "<group>";
};
F22E6673D29C1778B1984CF7D4D871E9 /* Pods-IGListKitExamples */ = {
isa = PBXGroup;
children = (
ABF549428FEA18696E5358F599E11A24 /* Info.plist */,
DDF922EBFB237C1B42E8B07306D987E8 /* Pods-IGListKitExamples.modulemap */,
A7BBE69D34859663403DA26F14CC4DDB /* Pods-IGListKitExamples-acknowledgements.markdown */,
D803D538BF4074498E5ADB84A16E0395 /* Pods-IGListKitExamples-acknowledgements.plist */,
2F5AE0385534EC7E6CA75003A7280492 /* Pods-IGListKitExamples-dummy.m */,
A851A4ACB8C0DE98BFFBC6FD4D1BACEE /* Pods-IGListKitExamples-frameworks.sh */,
428C13C7C57B2D91F00D94ECF1FA71F8 /* Pods-IGListKitExamples-resources.sh */,
52054AE893A0AE7FBFC54333D8ABD345 /* Pods-IGListKitExamples-umbrella.h */,
1B2B14BA3AB402D9CC387EEB27A2F746 /* Pods-IGListKitExamples.debug.xcconfig */,
A198E265B2C6E673C7C9C5050F92D9F0 /* Pods-IGListKitExamples.release.xcconfig */,
);
name = "Pods-IGListKitExamples";
path = "Target Support Files/Pods-IGListKitExamples";
sourceTree = "<group>";
};
FE77A9456A47034F965F75B0B0B6CF30 /* tvOS */ = {
isa = PBXGroup;
children = (
71D44B887663E8A7D2752C9ED2356648 /* Foundation.framework */,
AB4C132D7BA00C1384E27FAFD43A44B6 /* UIKit.framework */,
);
name = tvOS;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
367FCA12044C2556046F8C4AFB2F9E22 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
B4CD949F134F7E4CD11E11682AB22079 /* IGListAdapter.h in Headers */,
0E8B466CF38565A4E8CB702AAA14DDEE /* IGListAdapterDataSource.h in Headers */,
1E3C28DD198BEBAD9E457AF0B2E813CE /* IGListAdapterDelegate.h in Headers */,
99F220194828DBCD1364349FECB62A85 /* IGListAdapterInternal.h in Headers */,
07CA069B065E33BEE709DB1D08FB08BB /* IGListAdapterProxy.h in Headers */,
51D08A6C09E9BB328A0E8537A9304E54 /* IGListAdapterUpdater.h in Headers */,
698695EBBCAAEE553D0284ECE93B4730 /* IGListAdapterUpdaterDelegate.h in Headers */,
C2A332D7BC9B89592141A8231B35EE2A /* IGListAdapterUpdaterInternal.h in Headers */,
D823F8B7308D421D94EA8FB912778C68 /* IGListAssert.h in Headers */,
37C14D32C6F44CFBE4A0ECA63D251890 /* IGListBatchUpdateData.h in Headers */,
0F8D03E428749E8CE408392DEA4823D2 /* IGListCollectionContext.h in Headers */,
D2B2C9D2D14200444BB64696B05B2997 /* IGListCollectionView.h in Headers */,
90FBDB2E0EDEDA382DACDC4480CACE11 /* IGListDiff.h in Headers */,
76829A1937AE85E06E03EEA1BB6BA1ED /* IGListDiffable.h in Headers */,
F975889EC66E3E6890EB307BFA38BEA5 /* IGListDisplayDelegate.h in Headers */,
9136AD424FB2AA5D428C97497B92212A /* IGListDisplayHandler.h in Headers */,
3AE30BC98DEE5047B8E2A09F8AC058D9 /* IGListExperiments.h in Headers */,
E863057BEBB61664170B988A8A195D27 /* IGListIndexPathResult.h in Headers */,
134B84577367CDE16AA6AD0962A6B85F /* IGListIndexPathResultInternal.h in Headers */,
DE3948B248A3D2BBBD148A7300A72FC6 /* IGListIndexSetResult.h in Headers */,
151601F20702205211839EDBFC72EA0F /* IGListIndexSetResultInternal.h in Headers */,
D5784F407B76134D8E517759894AF6F5 /* IGListKit-umbrella.h in Headers */,
0FE508FE448256A0EB8CF84CC381D1FB /* IGListKit.h in Headers */,
5D333C80CE63A8D01A9E816B7D47A0F8 /* IGListMacros.h in Headers */,
7B96DAEE6845686FCC632B2FCE54DCFB /* IGListMoveIndex.h in Headers */,
2DC362DF318FFDCD0DC881A06F7EF60F /* IGListMoveIndexInternal.h in Headers */,
5B24A7DA53D0CDFE36233A725078ADF1 /* IGListMoveIndexPath.h in Headers */,
C5E00BB4C4BB8368AC203C571ECD36D0 /* IGListMoveIndexPathInternal.h in Headers */,
7881A804F20C1FF7D5A2E82E92D23D4B /* IGListReloadDataUpdater.h in Headers */,
9908944BE13B0DC564C12D31E11F9B16 /* IGListScrollDelegate.h in Headers */,
37C95D54129A28980B0A44B164D7BADE /* IGListSectionController.h in Headers */,
A013323C37461B0C5A6D48B0E295D01B /* IGListSectionControllerInternal.h in Headers */,
BF2748F42C2244389EF7A2B848C3F57E /* IGListSectionMap.h in Headers */,
867C735D6F3C81D5CF8394528C5EEC27 /* IGListSectionType.h in Headers */,
7700CBD66152909A6AA3CCE83F86DFB1 /* IGListSingleSectionController.h in Headers */,
8B71D13ACAC5591B3CE7B51299178137 /* IGListStackedSectionController.h in Headers */,
57FB14F4B485DB6C1079D629643E224D /* IGListStackedSectionControllerInternal.h in Headers */,
5FDF3C63D06797EC6649DDB527E75593 /* IGListSupplementaryViewSource.h in Headers */,
1DA0BAAE175DBEFD33BAF45ED05DA33F /* IGListUpdatingDelegate.h in Headers */,
9D193CFFEBD44D034E827223350E18B6 /* IGListWorkingRangeDelegate.h in Headers */,
9537ED5D64D1020A696E85D0E297F89B /* IGListWorkingRangeHandler.h in Headers */,
36300A4773E5329A5DCFB774951C72A6 /* NSIndexSet+PrettyDescription.h in Headers */,
387D977F448C8FEDC374BE8D8F027FE0 /* NSObject+IGListDiffable.h in Headers */,
4C0D8D4200F19765387BDA5DF0351707 /* UICollectionView+IGListBatchUpdateData.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
FCF6DC82D5858E45FAEE513F9E764AAD /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
1A89AF7CCCD65D9D5B946363776D05AE /* Pods-IGListKitExamples-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
5A9988CDADFC92DB95D7C72D2E4F5F4A /* IGListKit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 0D48064B5FE7BD39764D43410F878396 /* Build configuration list for PBXNativeTarget "IGListKit" */;
buildPhases = (
DB61E8097FEC8647490AE574F082D341 /* Sources */,
802596B628B7CEFACCAF17AA0318C50C /* Frameworks */,
367FCA12044C2556046F8C4AFB2F9E22 /* Headers */,
);
buildRules = (
);
dependencies = (
);
name = IGListKit;
productName = IGListKit;
productReference = 9D11DCAE06F644E6CCE659622CD8E616 /* IGListKit.framework */;
productType = "com.apple.product-type.framework";
};
6B7DA8C024D099705CF771FF16E6FC16 /* Pods-IGListKitExamples */ = {
isa = PBXNativeTarget;
buildConfigurationList = 447A9F6E709F690B1574347D9E329E3D /* Build configuration list for PBXNativeTarget "Pods-IGListKitExamples" */;
buildPhases = (
0F2973A0EC5CE783280F7EAA54947BA5 /* Sources */,
D7057175063065567057895AB005C590 /* Frameworks */,
FCF6DC82D5858E45FAEE513F9E764AAD /* Headers */,
);
buildRules = (
);
dependencies = (
9B463355891949F736B3B5D678FE8D02 /* PBXTargetDependency */,
);
name = "Pods-IGListKitExamples";
productName = "Pods-IGListKitExamples";
productReference = C7F454644FEBF5DB647AE1728D1FD067 /* Pods_IGListKitExamples.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0730;
LastUpgradeCheck = 0700;
};
buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 7DB346D0F39D3F0E887471402A8071AB;
productRefGroup = 61F96534B3AFE724944526CC9F6F2EFE /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
5A9988CDADFC92DB95D7C72D2E4F5F4A /* IGListKit */,
6B7DA8C024D099705CF771FF16E6FC16 /* Pods-IGListKitExamples */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
0F2973A0EC5CE783280F7EAA54947BA5 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C4C4C1B02AFD7277F00A40570658152C /* Pods-IGListKitExamples-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
DB61E8097FEC8647490AE574F082D341 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
35DC16C75961FEFBB6C976D527D06102 /* IGListAdapter.m in Sources */,
0EAEFC87A46B035B98458B77C0DAB313 /* IGListAdapterProxy.m in Sources */,
1668524927DB5E75F1D2D008B0B23551 /* IGListAdapterUpdater.m in Sources */,
5901E794126AD4043B96E3EA5424A0A9 /* IGListBatchUpdateData.mm in Sources */,
BE6230BF86420C3ED8A459E0BE0A4904 /* IGListCollectionView.m in Sources */,
72E7E3F5E1DC01C109F5FAC37DFA4F01 /* IGListDiff.mm in Sources */,
048DD995106FB4EB9CACE14AB11E9E4B /* IGListDisplayHandler.m in Sources */,
716FDA201B13C5D83AE1109EB6B0047F /* IGListIndexPathResult.m in Sources */,
94C6F2A63832A45817B3972936107D4C /* IGListIndexSetResult.m in Sources */,
7F1E44C4C0FEEFE713C6E9B1FB644D7F /* IGListKit-dummy.m in Sources */,
9648D0657DC9923BF9CC5D58AA0EABD3 /* IGListMoveIndex.m in Sources */,
52FC6541FB2BEA9A3D32596D0F0112F3 /* IGListMoveIndexPath.m in Sources */,
1BD26AEC65A15912B3F272922522826C /* IGListReloadDataUpdater.m in Sources */,
616ED22733EF3C17B718A10595B6C03D /* IGListSectionController.m in Sources */,
DBBF93CA21917E27D087DB0AE287A315 /* IGListSectionMap.m in Sources */,
4777B6A28EB663E8DCE23B28A3EEDC84 /* IGListSingleSectionController.m in Sources */,
C02FEEA9717B24B51C1C7D5CAD75E2F0 /* IGListStackedSectionController.m in Sources */,
A83BC3A0B761C430D361524438BC3AC2 /* IGListWorkingRangeHandler.mm in Sources */,
E544414873F1F566F866DA90043FEE03 /* NSIndexSet+PrettyDescription.m in Sources */,
28260093B9FCBA02BB36C414FE156A33 /* NSObject+IGListDiffable.m in Sources */,
5B3EC05B46CAE92AC86F5E0140ECBC1C /* UICollectionView+IGListBatchUpdateData.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
9B463355891949F736B3B5D678FE8D02 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = IGListKit;
target = 5A9988CDADFC92DB95D7C72D2E4F5F4A /* IGListKit */;
targetProxy = A0A5426482C447F640D6A192E71D5F5B /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
1DD1CFF0DC5554065098F7DC1848365A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
STRIP_INSTALLED_PRODUCT = NO;
SYMROOT = "${SRCROOT}/../build";
TVOS_DEPLOYMENT_TARGET = 9.0;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
34C05CDC1260C3EC9EE799611F2CFA1B /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6446021A4B962CB0053472AA1E6D9968 /* IGListKit.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Target Support Files/IGListKit/IGListKit-prefix.pch";
INFOPLIST_FILE = "Target Support Files/IGListKit/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/IGListKit/IGListKit.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_NAME = IGListKit;
SDKROOT = appletvos;
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
445F0240C54EE1F31011123C422947DF /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6446021A4B962CB0053472AA1E6D9968 /* IGListKit.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Target Support Files/IGListKit/IGListKit-prefix.pch";
INFOPLIST_FILE = "Target Support Files/IGListKit/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/IGListKit/IGListKit.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_NAME = IGListKit;
SDKROOT = appletvos;
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
650FB46C8F30EE06870353DFC5EA54B6 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1B2B14BA3AB402D9CC387EEB27A2F746 /* Pods-IGListKitExamples.debug.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-IGListKitExamples/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_IGListKitExamples;
SDKROOT = appletvos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
7DEE56CBFFC5EF063F24F486B02300EA /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = NO;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_DEBUG=1",
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
ONLY_ACTIVE_ARCH = YES;
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
STRIP_INSTALLED_PRODUCT = NO;
SYMROOT = "${SRCROOT}/../build";
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Debug;
};
D04E368E88FCE29BD15438FCE317E815 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = A198E265B2C6E673C7C9C5050F92D9F0 /* Pods-IGListKitExamples.release.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-IGListKitExamples/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_IGListKitExamples;
SDKROOT = appletvos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
0D48064B5FE7BD39764D43410F878396 /* Build configuration list for PBXNativeTarget "IGListKit" */ = {
isa = XCConfigurationList;
buildConfigurations = (
34C05CDC1260C3EC9EE799611F2CFA1B /* Debug */,
445F0240C54EE1F31011123C422947DF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEE56CBFFC5EF063F24F486B02300EA /* Debug */,
1DD1CFF0DC5554065098F7DC1848365A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
447A9F6E709F690B1574347D9E329E3D /* Build configuration list for PBXNativeTarget "Pods-IGListKitExamples" */ = {
isa = XCConfigurationList;
buildConfigurations = (
650FB46C8F30EE06870353DFC5EA54B6 /* Debug */,
D04E368E88FCE29BD15438FCE317E815 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
}

View file

@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_IGListKit : NSObject
@end
@implementation PodsDummy_IGListKit
@end

View file

@ -0,0 +1,4 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#endif

View file

@ -0,0 +1,37 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#endif
#import "IGListAdapter.h"
#import "IGListAdapterDataSource.h"
#import "IGListAdapterDelegate.h"
#import "IGListAdapterUpdater.h"
#import "IGListAdapterUpdaterDelegate.h"
#import "IGListAssert.h"
#import "IGListBatchUpdateData.h"
#import "IGListCollectionContext.h"
#import "IGListCollectionView.h"
#import "IGListDiff.h"
#import "IGListDiffable.h"
#import "IGListDisplayDelegate.h"
#import "IGListExperiments.h"
#import "IGListIndexPathResult.h"
#import "IGListIndexSetResult.h"
#import "IGListKit.h"
#import "IGListMacros.h"
#import "IGListMoveIndex.h"
#import "IGListMoveIndexPath.h"
#import "IGListReloadDataUpdater.h"
#import "IGListScrollDelegate.h"
#import "IGListSectionController.h"
#import "IGListSectionType.h"
#import "IGListSingleSectionController.h"
#import "IGListStackedSectionController.h"
#import "IGListSupplementaryViewSource.h"
#import "IGListUpdatingDelegate.h"
#import "IGListWorkingRangeDelegate.h"
#import "NSObject+IGListDiffable.h"
FOUNDATION_EXPORT double IGListKitVersionNumber;
FOUNDATION_EXPORT const unsigned char IGListKitVersionString[];

View file

@ -0,0 +1,6 @@
framework module IGListKit {
umbrella header "IGListKit-umbrella.h"
export *
module * { export * }
}

View file

@ -0,0 +1,11 @@
CLANG_CXX_LANGUAGE_STANDARD = c++11
CLANG_CXX_LIBRARY = libc++
CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/IGListKit
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
OTHER_LDFLAGS = -l"c++" -framework "UIKit"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES

View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
</dict>
</plist>

View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
</dict>
</plist>

View file

@ -0,0 +1,37 @@
# Acknowledgements
This application makes use of the following third party libraries:
## IGListKit
BSD License
For `IGListKit` software
Copyright (c) 2016, Facebook, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name Facebook nor the names of its contributors may be used to
endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Generated by CocoaPods - https://cocoapods.org

View file

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>FooterText</key>
<string>This application makes use of the following third party libraries:</string>
<key>Title</key>
<string>Acknowledgements</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>BSD License
For `IGListKit` software
Copyright (c) 2016, Facebook, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name Facebook nor the names of its contributors may be used to
endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</string>
<key>License</key>
<string>BSD</string>
<key>Title</key>
<string>IGListKit</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Generated by CocoaPods - https://cocoapods.org</string>
<key>Title</key>
<string></string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Acknowledgements</string>
<key>Title</key>
<string>Acknowledgements</string>
</dict>
</plist>

View file

@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_IGListKitExamples : NSObject
@end
@implementation PodsDummy_Pods_IGListKitExamples
@end

View file

@ -0,0 +1,91 @@
#!/bin/sh
set -e
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
local source="${BUILT_PRODUCTS_DIR}/$1"
elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
elif [ -r "$1" ]; then
local source="$1"
fi
local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink "${source}")"
fi
# use filter instead of exclude so missing patterns dont' throw errors
echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
binary="${destination}/${basename}.framework/${basename}"
if ! [ -r "$binary" ]; then
binary="${destination}/${basename}"
fi
# Strip invalid architectures so "fat" simulator / device frameworks work on device
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
strip_invalid_archs "$binary"
fi
# Resign the code if required by the build settings to avoid unstable apps
code_sign_if_enabled "${destination}/$(basename "$1")"
# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
local swift_runtime_libs
swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]})
for lib in $swift_runtime_libs; do
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
code_sign_if_enabled "${destination}/${lib}"
done
fi
}
# Signs a framework with the provided identity
code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identitiy
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\""
/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1"
fi
}
# Strip invalid architectures
strip_invalid_archs() {
binary="$1"
# Get architectures for current file
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
stripped=""
for arch in $archs; do
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
stripped="$stripped $arch"
fi
done
if [[ "$stripped" ]]; then
echo "Stripped $binary of architectures:$stripped"
fi
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/IGListKit/IGListKit.framework"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/IGListKit/IGListKit.framework"
fi

View file

@ -0,0 +1,96 @@
#!/bin/sh
set -e
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
> "$RESOURCES_TO_COPY"
XCASSET_FILES=()
case "${TARGETED_DEVICE_FAMILY}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
1)
TARGET_DEVICE_ARGS="--target-device iphone"
;;
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
esac
install_resource()
{
if [[ "$1" = /* ]] ; then
RESOURCE_PATH="$1"
else
RESOURCE_PATH="${PODS_ROOT}/$1"
fi
if [[ ! -e "$RESOURCE_PATH" ]] ; then
cat << EOM
error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
EOM
exit 1
fi
case $RESOURCE_PATH in
*.storyboard)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.xib)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.framework)
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
;;
*.xcdatamodeld)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
;;
*.xcmappingmodel)
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;;
*.xcassets)
ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
echo "$RESOURCE_PATH"
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
}
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
fi
rm -f "$RESOURCES_TO_COPY"
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ]
then
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
while read line; do
if [[ $line != "${PODS_ROOT}*" ]]; then
XCASSET_FILES+=("$line")
fi
done <<<"$OTHER_XCASSETS"
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
fi

View file

@ -0,0 +1,8 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#endif
FOUNDATION_EXPORT double Pods_IGListKitExamplesVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_IGListKitExamplesVersionString[];

View file

@ -0,0 +1,9 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/IGListKit"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/IGListKit/IGListKit.framework/Headers"
OTHER_LDFLAGS = $(inherited) -framework "IGListKit"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}/Pods

View file

@ -0,0 +1,6 @@
framework module Pods_IGListKitExamples {
umbrella header "Pods-IGListKitExamples-umbrella.h"
export *
module * { export * }
}

View file

@ -0,0 +1,9 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/IGListKit"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/IGListKit/IGListKit.framework/Headers"
OTHER_LDFLAGS = $(inherited) -framework "IGListKit"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}/Pods