Skip to content

Commit 95cc0da

Browse files
committed
UIKit SwiftUI Interop lab
1 parent 1f0c620 commit 95cc0da

File tree

38 files changed

+1643
-0
lines changed

38 files changed

+1643
-0
lines changed

.DS_Store

2 KB
Binary file not shown.
Lines changed: 351 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,351 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 56;
7+
objects = {
8+
9+
/* Begin PBXBuildFile section */
10+
DC39165F2B30B04C0058AC10 /* GridViewLabApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC39165E2B30B04C0058AC10 /* GridViewLabApp.swift */; };
11+
DC3916612B30B04C0058AC10 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3916602B30B04C0058AC10 /* ContentView.swift */; };
12+
DC3916632B30B04D0058AC10 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DC3916622B30B04D0058AC10 /* Assets.xcassets */; };
13+
DC3916662B30B04E0058AC10 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DC3916652B30B04E0058AC10 /* Preview Assets.xcassets */; };
14+
DC460B612B37244C00F5389D /* ForEachImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC460B602B37244C00F5389D /* ForEachImageView.swift */; };
15+
/* End PBXBuildFile section */
16+
17+
/* Begin PBXFileReference section */
18+
DC39165B2B30B04C0058AC10 /* GridViewLab.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GridViewLab.app; sourceTree = BUILT_PRODUCTS_DIR; };
19+
DC39165E2B30B04C0058AC10 /* GridViewLabApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridViewLabApp.swift; sourceTree = "<group>"; };
20+
DC3916602B30B04C0058AC10 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
21+
DC3916622B30B04D0058AC10 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
22+
DC3916652B30B04E0058AC10 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
23+
DC460B602B37244C00F5389D /* ForEachImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForEachImageView.swift; sourceTree = "<group>"; };
24+
/* End PBXFileReference section */
25+
26+
/* Begin PBXFrameworksBuildPhase section */
27+
DC3916582B30B04C0058AC10 /* Frameworks */ = {
28+
isa = PBXFrameworksBuildPhase;
29+
buildActionMask = 2147483647;
30+
files = (
31+
);
32+
runOnlyForDeploymentPostprocessing = 0;
33+
};
34+
/* End PBXFrameworksBuildPhase section */
35+
36+
/* Begin PBXGroup section */
37+
DC3916522B30B04C0058AC10 = {
38+
isa = PBXGroup;
39+
children = (
40+
DC39165D2B30B04C0058AC10 /* GridViewLab */,
41+
DC39165C2B30B04C0058AC10 /* Products */,
42+
);
43+
sourceTree = "<group>";
44+
};
45+
DC39165C2B30B04C0058AC10 /* Products */ = {
46+
isa = PBXGroup;
47+
children = (
48+
DC39165B2B30B04C0058AC10 /* GridViewLab.app */,
49+
);
50+
name = Products;
51+
sourceTree = "<group>";
52+
};
53+
DC39165D2B30B04C0058AC10 /* GridViewLab */ = {
54+
isa = PBXGroup;
55+
children = (
56+
DC39165E2B30B04C0058AC10 /* GridViewLabApp.swift */,
57+
DC3916602B30B04C0058AC10 /* ContentView.swift */,
58+
DC3916622B30B04D0058AC10 /* Assets.xcassets */,
59+
DC3916642B30B04E0058AC10 /* Preview Content */,
60+
DC460B602B37244C00F5389D /* ForEachImageView.swift */,
61+
);
62+
path = GridViewLab;
63+
sourceTree = "<group>";
64+
};
65+
DC3916642B30B04E0058AC10 /* Preview Content */ = {
66+
isa = PBXGroup;
67+
children = (
68+
DC3916652B30B04E0058AC10 /* Preview Assets.xcassets */,
69+
);
70+
path = "Preview Content";
71+
sourceTree = "<group>";
72+
};
73+
/* End PBXGroup section */
74+
75+
/* Begin PBXNativeTarget section */
76+
DC39165A2B30B04C0058AC10 /* GridViewLab */ = {
77+
isa = PBXNativeTarget;
78+
buildConfigurationList = DC3916692B30B04E0058AC10 /* Build configuration list for PBXNativeTarget "GridViewLab" */;
79+
buildPhases = (
80+
DC3916572B30B04C0058AC10 /* Sources */,
81+
DC3916582B30B04C0058AC10 /* Frameworks */,
82+
DC3916592B30B04C0058AC10 /* Resources */,
83+
);
84+
buildRules = (
85+
);
86+
dependencies = (
87+
);
88+
name = GridViewLab;
89+
productName = GridViewLab;
90+
productReference = DC39165B2B30B04C0058AC10 /* GridViewLab.app */;
91+
productType = "com.apple.product-type.application";
92+
};
93+
/* End PBXNativeTarget section */
94+
95+
/* Begin PBXProject section */
96+
DC3916532B30B04C0058AC10 /* Project object */ = {
97+
isa = PBXProject;
98+
attributes = {
99+
BuildIndependentTargetsInParallel = 1;
100+
LastSwiftUpdateCheck = 1500;
101+
LastUpgradeCheck = 1500;
102+
TargetAttributes = {
103+
DC39165A2B30B04C0058AC10 = {
104+
CreatedOnToolsVersion = 15.0.1;
105+
};
106+
};
107+
};
108+
buildConfigurationList = DC3916562B30B04C0058AC10 /* Build configuration list for PBXProject "GridViewLab" */;
109+
compatibilityVersion = "Xcode 14.0";
110+
developmentRegion = en;
111+
hasScannedForEncodings = 0;
112+
knownRegions = (
113+
en,
114+
Base,
115+
);
116+
mainGroup = DC3916522B30B04C0058AC10;
117+
productRefGroup = DC39165C2B30B04C0058AC10 /* Products */;
118+
projectDirPath = "";
119+
projectRoot = "";
120+
targets = (
121+
DC39165A2B30B04C0058AC10 /* GridViewLab */,
122+
);
123+
};
124+
/* End PBXProject section */
125+
126+
/* Begin PBXResourcesBuildPhase section */
127+
DC3916592B30B04C0058AC10 /* Resources */ = {
128+
isa = PBXResourcesBuildPhase;
129+
buildActionMask = 2147483647;
130+
files = (
131+
DC3916662B30B04E0058AC10 /* Preview Assets.xcassets in Resources */,
132+
DC3916632B30B04D0058AC10 /* Assets.xcassets in Resources */,
133+
);
134+
runOnlyForDeploymentPostprocessing = 0;
135+
};
136+
/* End PBXResourcesBuildPhase section */
137+
138+
/* Begin PBXSourcesBuildPhase section */
139+
DC3916572B30B04C0058AC10 /* Sources */ = {
140+
isa = PBXSourcesBuildPhase;
141+
buildActionMask = 2147483647;
142+
files = (
143+
DC460B612B37244C00F5389D /* ForEachImageView.swift in Sources */,
144+
DC3916612B30B04C0058AC10 /* ContentView.swift in Sources */,
145+
DC39165F2B30B04C0058AC10 /* GridViewLabApp.swift in Sources */,
146+
);
147+
runOnlyForDeploymentPostprocessing = 0;
148+
};
149+
/* End PBXSourcesBuildPhase section */
150+
151+
/* Begin XCBuildConfiguration section */
152+
DC3916672B30B04E0058AC10 /* Debug */ = {
153+
isa = XCBuildConfiguration;
154+
buildSettings = {
155+
ALWAYS_SEARCH_USER_PATHS = NO;
156+
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
157+
CLANG_ANALYZER_NONNULL = YES;
158+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
159+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
160+
CLANG_ENABLE_MODULES = YES;
161+
CLANG_ENABLE_OBJC_ARC = YES;
162+
CLANG_ENABLE_OBJC_WEAK = YES;
163+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
164+
CLANG_WARN_BOOL_CONVERSION = YES;
165+
CLANG_WARN_COMMA = YES;
166+
CLANG_WARN_CONSTANT_CONVERSION = YES;
167+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
168+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
169+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
170+
CLANG_WARN_EMPTY_BODY = YES;
171+
CLANG_WARN_ENUM_CONVERSION = YES;
172+
CLANG_WARN_INFINITE_RECURSION = YES;
173+
CLANG_WARN_INT_CONVERSION = YES;
174+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
175+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
176+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
177+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
178+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
179+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
180+
CLANG_WARN_STRICT_PROTOTYPES = YES;
181+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
182+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
183+
CLANG_WARN_UNREACHABLE_CODE = YES;
184+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
185+
COPY_PHASE_STRIP = NO;
186+
DEBUG_INFORMATION_FORMAT = dwarf;
187+
ENABLE_STRICT_OBJC_MSGSEND = YES;
188+
ENABLE_TESTABILITY = YES;
189+
ENABLE_USER_SCRIPT_SANDBOXING = YES;
190+
GCC_C_LANGUAGE_STANDARD = gnu17;
191+
GCC_DYNAMIC_NO_PIC = NO;
192+
GCC_NO_COMMON_BLOCKS = YES;
193+
GCC_OPTIMIZATION_LEVEL = 0;
194+
GCC_PREPROCESSOR_DEFINITIONS = (
195+
"DEBUG=1",
196+
"$(inherited)",
197+
);
198+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
199+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
200+
GCC_WARN_UNDECLARED_SELECTOR = YES;
201+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
202+
GCC_WARN_UNUSED_FUNCTION = YES;
203+
GCC_WARN_UNUSED_VARIABLE = YES;
204+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
205+
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
206+
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
207+
MTL_FAST_MATH = YES;
208+
ONLY_ACTIVE_ARCH = YES;
209+
SDKROOT = iphoneos;
210+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
211+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
212+
};
213+
name = Debug;
214+
};
215+
DC3916682B30B04E0058AC10 /* Release */ = {
216+
isa = XCBuildConfiguration;
217+
buildSettings = {
218+
ALWAYS_SEARCH_USER_PATHS = NO;
219+
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
220+
CLANG_ANALYZER_NONNULL = YES;
221+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
222+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
223+
CLANG_ENABLE_MODULES = YES;
224+
CLANG_ENABLE_OBJC_ARC = YES;
225+
CLANG_ENABLE_OBJC_WEAK = YES;
226+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
227+
CLANG_WARN_BOOL_CONVERSION = YES;
228+
CLANG_WARN_COMMA = YES;
229+
CLANG_WARN_CONSTANT_CONVERSION = YES;
230+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
231+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
232+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
233+
CLANG_WARN_EMPTY_BODY = YES;
234+
CLANG_WARN_ENUM_CONVERSION = YES;
235+
CLANG_WARN_INFINITE_RECURSION = YES;
236+
CLANG_WARN_INT_CONVERSION = YES;
237+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
238+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
239+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
240+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
241+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
242+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
243+
CLANG_WARN_STRICT_PROTOTYPES = YES;
244+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
245+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
246+
CLANG_WARN_UNREACHABLE_CODE = YES;
247+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
248+
COPY_PHASE_STRIP = NO;
249+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
250+
ENABLE_NS_ASSERTIONS = NO;
251+
ENABLE_STRICT_OBJC_MSGSEND = YES;
252+
ENABLE_USER_SCRIPT_SANDBOXING = YES;
253+
GCC_C_LANGUAGE_STANDARD = gnu17;
254+
GCC_NO_COMMON_BLOCKS = YES;
255+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
256+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
257+
GCC_WARN_UNDECLARED_SELECTOR = YES;
258+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
259+
GCC_WARN_UNUSED_FUNCTION = YES;
260+
GCC_WARN_UNUSED_VARIABLE = YES;
261+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
262+
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
263+
MTL_ENABLE_DEBUG_INFO = NO;
264+
MTL_FAST_MATH = YES;
265+
SDKROOT = iphoneos;
266+
SWIFT_COMPILATION_MODE = wholemodule;
267+
VALIDATE_PRODUCT = YES;
268+
};
269+
name = Release;
270+
};
271+
DC39166A2B30B04E0058AC10 /* Debug */ = {
272+
isa = XCBuildConfiguration;
273+
buildSettings = {
274+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
275+
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
276+
CODE_SIGN_STYLE = Automatic;
277+
CURRENT_PROJECT_VERSION = 1;
278+
DEVELOPMENT_ASSET_PATHS = "\"GridViewLab/Preview Content\"";
279+
ENABLE_PREVIEWS = YES;
280+
GENERATE_INFOPLIST_FILE = YES;
281+
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
282+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
283+
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
284+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
285+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
286+
LD_RUNPATH_SEARCH_PATHS = (
287+
"$(inherited)",
288+
"@executable_path/Frameworks",
289+
);
290+
MARKETING_VERSION = 1.0;
291+
PRODUCT_BUNDLE_IDENTIFIER = souplab.GridViewLab;
292+
PRODUCT_NAME = "$(TARGET_NAME)";
293+
SWIFT_EMIT_LOC_STRINGS = YES;
294+
SWIFT_VERSION = 5.0;
295+
TARGETED_DEVICE_FAMILY = "1,2";
296+
};
297+
name = Debug;
298+
};
299+
DC39166B2B30B04E0058AC10 /* Release */ = {
300+
isa = XCBuildConfiguration;
301+
buildSettings = {
302+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
303+
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
304+
CODE_SIGN_STYLE = Automatic;
305+
CURRENT_PROJECT_VERSION = 1;
306+
DEVELOPMENT_ASSET_PATHS = "\"GridViewLab/Preview Content\"";
307+
ENABLE_PREVIEWS = YES;
308+
GENERATE_INFOPLIST_FILE = YES;
309+
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
310+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
311+
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
312+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
313+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
314+
LD_RUNPATH_SEARCH_PATHS = (
315+
"$(inherited)",
316+
"@executable_path/Frameworks",
317+
);
318+
MARKETING_VERSION = 1.0;
319+
PRODUCT_BUNDLE_IDENTIFIER = souplab.GridViewLab;
320+
PRODUCT_NAME = "$(TARGET_NAME)";
321+
SWIFT_EMIT_LOC_STRINGS = YES;
322+
SWIFT_VERSION = 5.0;
323+
TARGETED_DEVICE_FAMILY = "1,2";
324+
};
325+
name = Release;
326+
};
327+
/* End XCBuildConfiguration section */
328+
329+
/* Begin XCConfigurationList section */
330+
DC3916562B30B04C0058AC10 /* Build configuration list for PBXProject "GridViewLab" */ = {
331+
isa = XCConfigurationList;
332+
buildConfigurations = (
333+
DC3916672B30B04E0058AC10 /* Debug */,
334+
DC3916682B30B04E0058AC10 /* Release */,
335+
);
336+
defaultConfigurationIsVisible = 0;
337+
defaultConfigurationName = Release;
338+
};
339+
DC3916692B30B04E0058AC10 /* Build configuration list for PBXNativeTarget "GridViewLab" */ = {
340+
isa = XCConfigurationList;
341+
buildConfigurations = (
342+
DC39166A2B30B04E0058AC10 /* Debug */,
343+
DC39166B2B30B04E0058AC10 /* Release */,
344+
);
345+
defaultConfigurationIsVisible = 0;
346+
defaultConfigurationName = Release;
347+
};
348+
/* End XCConfigurationList section */
349+
};
350+
rootObject = DC3916532B30B04C0058AC10 /* Project object */;
351+
}

GridViewLab/GridViewLab.xcodeproj/project.xcworkspace/contents.xcworkspacedata

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>IDEDidComputeMac32BitWarning</key>
6+
<true/>
7+
</dict>
8+
</plist>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>SchemeUserState</key>
6+
<dict>
7+
<key>GridViewLab.xcscheme_^#shared#^_</key>
8+
<dict>
9+
<key>orderHint</key>
10+
<integer>0</integer>
11+
</dict>
12+
</dict>
13+
</dict>
14+
</plist>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"colors" : [
3+
{
4+
"idiom" : "universal"
5+
}
6+
],
7+
"info" : {
8+
"author" : "xcode",
9+
"version" : 1
10+
}
11+
}

0 commit comments

Comments
 (0)