├── .gitignore
├── .swiftpm
└── xcode
│ └── package.xcworkspace
│ └── contents.xcworkspacedata
├── Example
├── LazyViewSwiftUI_Example.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── LazyViewSwiftUI_Example.xcscheme
├── LazyViewSwiftUI_Example.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── LazyViewSwiftUI_Example
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Base.lproj
│ │ └── LaunchScreen.storyboard
│ ├── ContentView.swift
│ ├── Info.plist
│ ├── Preview Content
│ │ └── Preview Assets.xcassets
│ │ │ └── Contents.json
│ └── SceneDelegate.swift
├── Podfile
├── Podfile.lock
└── Pods
│ ├── Local Podspecs
│ └── LazyViewSwiftUI.podspec.json
│ ├── Manifest.lock
│ ├── Pods.xcodeproj
│ └── project.pbxproj
│ └── Target Support Files
│ ├── LazyViewSwiftUI
│ ├── Info.plist
│ ├── LazyViewSwiftUI-dummy.m
│ ├── LazyViewSwiftUI-prefix.pch
│ ├── LazyViewSwiftUI-umbrella.h
│ ├── LazyViewSwiftUI.modulemap
│ └── LazyViewSwiftUI.xcconfig
│ └── Pods-LazyViewSwiftUI_Example
│ ├── Info.plist
│ ├── Pods-LazyViewSwiftUI_Example-acknowledgements.markdown
│ ├── Pods-LazyViewSwiftUI_Example-acknowledgements.plist
│ ├── Pods-LazyViewSwiftUI_Example-dummy.m
│ ├── Pods-LazyViewSwiftUI_Example-frameworks.sh
│ ├── Pods-LazyViewSwiftUI_Example-resources.sh
│ ├── Pods-LazyViewSwiftUI_Example-umbrella.h
│ ├── Pods-LazyViewSwiftUI_Example.debug.xcconfig
│ ├── Pods-LazyViewSwiftUI_Example.modulemap
│ └── Pods-LazyViewSwiftUI_Example.release.xcconfig
├── LICENSE
├── LazyViewSwiftUI.podspec
├── Package.swift
├── README.md
└── Source
└── LazyView.swift
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | /.build
3 | /Packages
4 | /*.xcodeproj
5 | xcuserdata/
6 |
--------------------------------------------------------------------------------
/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 50;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 9F361E1523C40CF600A17646 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F361E1423C40CF600A17646 /* AppDelegate.swift */; };
11 | 9F361E1723C40CF600A17646 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F361E1623C40CF600A17646 /* SceneDelegate.swift */; };
12 | 9F361E1923C40CF600A17646 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F361E1823C40CF600A17646 /* ContentView.swift */; };
13 | 9F361E1B23C40CF700A17646 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9F361E1A23C40CF700A17646 /* Assets.xcassets */; };
14 | 9F361E1E23C40CF700A17646 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9F361E1D23C40CF700A17646 /* Preview Assets.xcassets */; };
15 | 9F361E2123C40CF700A17646 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9F361E1F23C40CF700A17646 /* LaunchScreen.storyboard */; };
16 | B42DEAD20F3B1688CE2CE1DA /* Pods_LazyViewSwiftUI_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9522455FAEA968B626C786AC /* Pods_LazyViewSwiftUI_Example.framework */; };
17 | /* End PBXBuildFile section */
18 |
19 | /* Begin PBXFileReference section */
20 | 1DFA6E01FBE81246A2BE46AB /* Pods-LazyViewSwiftUI_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LazyViewSwiftUI_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example.debug.xcconfig"; sourceTree = ""; };
21 | 22D5BED8682BA3DC814BFED7 /* Pods-LazyViewSwiftUI_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LazyViewSwiftUI_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example.release.xcconfig"; sourceTree = ""; };
22 | 9522455FAEA968B626C786AC /* Pods_LazyViewSwiftUI_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LazyViewSwiftUI_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
23 | 9F361E1123C40CF600A17646 /* LazyViewSwiftUI_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LazyViewSwiftUI_Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
24 | 9F361E1423C40CF600A17646 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
25 | 9F361E1623C40CF600A17646 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; };
26 | 9F361E1823C40CF600A17646 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
27 | 9F361E1A23C40CF700A17646 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
28 | 9F361E1D23C40CF700A17646 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
29 | 9F361E2023C40CF700A17646 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
30 | 9F361E2223C40CF700A17646 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
31 | /* End PBXFileReference section */
32 |
33 | /* Begin PBXFrameworksBuildPhase section */
34 | 9F361E0E23C40CF600A17646 /* Frameworks */ = {
35 | isa = PBXFrameworksBuildPhase;
36 | buildActionMask = 2147483647;
37 | files = (
38 | B42DEAD20F3B1688CE2CE1DA /* Pods_LazyViewSwiftUI_Example.framework in Frameworks */,
39 | );
40 | runOnlyForDeploymentPostprocessing = 0;
41 | };
42 | /* End PBXFrameworksBuildPhase section */
43 |
44 | /* Begin PBXGroup section */
45 | 4B371EB742C51F0C45C44D77 /* Pods */ = {
46 | isa = PBXGroup;
47 | children = (
48 | 1DFA6E01FBE81246A2BE46AB /* Pods-LazyViewSwiftUI_Example.debug.xcconfig */,
49 | 22D5BED8682BA3DC814BFED7 /* Pods-LazyViewSwiftUI_Example.release.xcconfig */,
50 | );
51 | name = Pods;
52 | sourceTree = "";
53 | };
54 | 4EFEE03A31C4A34272F5C59F /* Frameworks */ = {
55 | isa = PBXGroup;
56 | children = (
57 | 9522455FAEA968B626C786AC /* Pods_LazyViewSwiftUI_Example.framework */,
58 | );
59 | name = Frameworks;
60 | sourceTree = "";
61 | };
62 | 9F361E0823C40CF600A17646 = {
63 | isa = PBXGroup;
64 | children = (
65 | 9F361E1323C40CF600A17646 /* LazyViewSwiftUI_Example */,
66 | 9F361E1223C40CF600A17646 /* Products */,
67 | 4B371EB742C51F0C45C44D77 /* Pods */,
68 | 4EFEE03A31C4A34272F5C59F /* Frameworks */,
69 | );
70 | sourceTree = "";
71 | };
72 | 9F361E1223C40CF600A17646 /* Products */ = {
73 | isa = PBXGroup;
74 | children = (
75 | 9F361E1123C40CF600A17646 /* LazyViewSwiftUI_Example.app */,
76 | );
77 | name = Products;
78 | sourceTree = "";
79 | };
80 | 9F361E1323C40CF600A17646 /* LazyViewSwiftUI_Example */ = {
81 | isa = PBXGroup;
82 | children = (
83 | 9F361E1423C40CF600A17646 /* AppDelegate.swift */,
84 | 9F361E1623C40CF600A17646 /* SceneDelegate.swift */,
85 | 9F361E1823C40CF600A17646 /* ContentView.swift */,
86 | 9F361E1A23C40CF700A17646 /* Assets.xcassets */,
87 | 9F361E1F23C40CF700A17646 /* LaunchScreen.storyboard */,
88 | 9F361E2223C40CF700A17646 /* Info.plist */,
89 | 9F361E1C23C40CF700A17646 /* Preview Content */,
90 | );
91 | path = LazyViewSwiftUI_Example;
92 | sourceTree = "";
93 | };
94 | 9F361E1C23C40CF700A17646 /* Preview Content */ = {
95 | isa = PBXGroup;
96 | children = (
97 | 9F361E1D23C40CF700A17646 /* Preview Assets.xcassets */,
98 | );
99 | path = "Preview Content";
100 | sourceTree = "";
101 | };
102 | /* End PBXGroup section */
103 |
104 | /* Begin PBXNativeTarget section */
105 | 9F361E1023C40CF600A17646 /* LazyViewSwiftUI_Example */ = {
106 | isa = PBXNativeTarget;
107 | buildConfigurationList = 9F361E2523C40CF700A17646 /* Build configuration list for PBXNativeTarget "LazyViewSwiftUI_Example" */;
108 | buildPhases = (
109 | DA2963131D24A1AE000BEE40 /* [CP] Check Pods Manifest.lock */,
110 | 9F361E0D23C40CF600A17646 /* Sources */,
111 | 9F361E0E23C40CF600A17646 /* Frameworks */,
112 | 9F361E0F23C40CF600A17646 /* Resources */,
113 | 5BAACEC81C5FA5FF34E30A33 /* [CP] Embed Pods Frameworks */,
114 | );
115 | buildRules = (
116 | );
117 | dependencies = (
118 | );
119 | name = LazyViewSwiftUI_Example;
120 | productName = Example;
121 | productReference = 9F361E1123C40CF600A17646 /* LazyViewSwiftUI_Example.app */;
122 | productType = "com.apple.product-type.application";
123 | };
124 | /* End PBXNativeTarget section */
125 |
126 | /* Begin PBXProject section */
127 | 9F361E0923C40CF600A17646 /* Project object */ = {
128 | isa = PBXProject;
129 | attributes = {
130 | LastSwiftUpdateCheck = 1120;
131 | LastUpgradeCheck = 1120;
132 | ORGANIZATIONNAME = "Joseph Hinkle";
133 | TargetAttributes = {
134 | 9F361E1023C40CF600A17646 = {
135 | CreatedOnToolsVersion = 11.2.1;
136 | };
137 | };
138 | };
139 | buildConfigurationList = 9F361E0C23C40CF600A17646 /* Build configuration list for PBXProject "LazyViewSwiftUI_Example" */;
140 | compatibilityVersion = "Xcode 9.3";
141 | developmentRegion = en;
142 | hasScannedForEncodings = 0;
143 | knownRegions = (
144 | en,
145 | Base,
146 | );
147 | mainGroup = 9F361E0823C40CF600A17646;
148 | productRefGroup = 9F361E1223C40CF600A17646 /* Products */;
149 | projectDirPath = "";
150 | projectRoot = "";
151 | targets = (
152 | 9F361E1023C40CF600A17646 /* LazyViewSwiftUI_Example */,
153 | );
154 | };
155 | /* End PBXProject section */
156 |
157 | /* Begin PBXResourcesBuildPhase section */
158 | 9F361E0F23C40CF600A17646 /* Resources */ = {
159 | isa = PBXResourcesBuildPhase;
160 | buildActionMask = 2147483647;
161 | files = (
162 | 9F361E2123C40CF700A17646 /* LaunchScreen.storyboard in Resources */,
163 | 9F361E1E23C40CF700A17646 /* Preview Assets.xcassets in Resources */,
164 | 9F361E1B23C40CF700A17646 /* Assets.xcassets in Resources */,
165 | );
166 | runOnlyForDeploymentPostprocessing = 0;
167 | };
168 | /* End PBXResourcesBuildPhase section */
169 |
170 | /* Begin PBXShellScriptBuildPhase section */
171 | 5BAACEC81C5FA5FF34E30A33 /* [CP] Embed Pods Frameworks */ = {
172 | isa = PBXShellScriptBuildPhase;
173 | buildActionMask = 2147483647;
174 | files = (
175 | );
176 | inputFileListPaths = (
177 | );
178 | inputPaths = (
179 | "${SRCROOT}/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example-frameworks.sh",
180 | "${BUILT_PRODUCTS_DIR}/LazyViewSwiftUI/LazyViewSwiftUI.framework",
181 | );
182 | name = "[CP] Embed Pods Frameworks";
183 | outputFileListPaths = (
184 | );
185 | outputPaths = (
186 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LazyViewSwiftUI.framework",
187 | );
188 | runOnlyForDeploymentPostprocessing = 0;
189 | shellPath = /bin/sh;
190 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example-frameworks.sh\"\n";
191 | showEnvVarsInLog = 0;
192 | };
193 | DA2963131D24A1AE000BEE40 /* [CP] Check Pods Manifest.lock */ = {
194 | isa = PBXShellScriptBuildPhase;
195 | buildActionMask = 2147483647;
196 | files = (
197 | );
198 | inputFileListPaths = (
199 | );
200 | inputPaths = (
201 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
202 | "${PODS_ROOT}/Manifest.lock",
203 | );
204 | name = "[CP] Check Pods Manifest.lock";
205 | outputFileListPaths = (
206 | );
207 | outputPaths = (
208 | "$(DERIVED_FILE_DIR)/Pods-LazyViewSwiftUI_Example-checkManifestLockResult.txt",
209 | );
210 | runOnlyForDeploymentPostprocessing = 0;
211 | shellPath = /bin/sh;
212 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/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# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
213 | showEnvVarsInLog = 0;
214 | };
215 | /* End PBXShellScriptBuildPhase section */
216 |
217 | /* Begin PBXSourcesBuildPhase section */
218 | 9F361E0D23C40CF600A17646 /* Sources */ = {
219 | isa = PBXSourcesBuildPhase;
220 | buildActionMask = 2147483647;
221 | files = (
222 | 9F361E1523C40CF600A17646 /* AppDelegate.swift in Sources */,
223 | 9F361E1723C40CF600A17646 /* SceneDelegate.swift in Sources */,
224 | 9F361E1923C40CF600A17646 /* ContentView.swift in Sources */,
225 | );
226 | runOnlyForDeploymentPostprocessing = 0;
227 | };
228 | /* End PBXSourcesBuildPhase section */
229 |
230 | /* Begin PBXVariantGroup section */
231 | 9F361E1F23C40CF700A17646 /* LaunchScreen.storyboard */ = {
232 | isa = PBXVariantGroup;
233 | children = (
234 | 9F361E2023C40CF700A17646 /* Base */,
235 | );
236 | name = LaunchScreen.storyboard;
237 | sourceTree = "";
238 | };
239 | /* End PBXVariantGroup section */
240 |
241 | /* Begin XCBuildConfiguration section */
242 | 9F361E2323C40CF700A17646 /* Debug */ = {
243 | isa = XCBuildConfiguration;
244 | buildSettings = {
245 | ALWAYS_SEARCH_USER_PATHS = NO;
246 | CLANG_ANALYZER_NONNULL = YES;
247 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
248 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
249 | CLANG_CXX_LIBRARY = "libc++";
250 | CLANG_ENABLE_MODULES = YES;
251 | CLANG_ENABLE_OBJC_ARC = YES;
252 | CLANG_ENABLE_OBJC_WEAK = YES;
253 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
254 | CLANG_WARN_BOOL_CONVERSION = YES;
255 | CLANG_WARN_COMMA = YES;
256 | CLANG_WARN_CONSTANT_CONVERSION = YES;
257 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
258 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
259 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
260 | CLANG_WARN_EMPTY_BODY = YES;
261 | CLANG_WARN_ENUM_CONVERSION = YES;
262 | CLANG_WARN_INFINITE_RECURSION = YES;
263 | CLANG_WARN_INT_CONVERSION = YES;
264 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
265 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
266 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
267 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
268 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
269 | CLANG_WARN_STRICT_PROTOTYPES = YES;
270 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
271 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
272 | CLANG_WARN_UNREACHABLE_CODE = YES;
273 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
274 | COPY_PHASE_STRIP = NO;
275 | DEBUG_INFORMATION_FORMAT = dwarf;
276 | ENABLE_STRICT_OBJC_MSGSEND = YES;
277 | ENABLE_TESTABILITY = YES;
278 | GCC_C_LANGUAGE_STANDARD = gnu11;
279 | GCC_DYNAMIC_NO_PIC = NO;
280 | GCC_NO_COMMON_BLOCKS = YES;
281 | GCC_OPTIMIZATION_LEVEL = 0;
282 | GCC_PREPROCESSOR_DEFINITIONS = (
283 | "DEBUG=1",
284 | "$(inherited)",
285 | );
286 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
287 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
288 | GCC_WARN_UNDECLARED_SELECTOR = YES;
289 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
290 | GCC_WARN_UNUSED_FUNCTION = YES;
291 | GCC_WARN_UNUSED_VARIABLE = YES;
292 | IPHONEOS_DEPLOYMENT_TARGET = 13.2;
293 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
294 | MTL_FAST_MATH = YES;
295 | ONLY_ACTIVE_ARCH = YES;
296 | SDKROOT = iphoneos;
297 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
298 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
299 | };
300 | name = Debug;
301 | };
302 | 9F361E2423C40CF700A17646 /* Release */ = {
303 | isa = XCBuildConfiguration;
304 | buildSettings = {
305 | ALWAYS_SEARCH_USER_PATHS = NO;
306 | CLANG_ANALYZER_NONNULL = YES;
307 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
308 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
309 | CLANG_CXX_LIBRARY = "libc++";
310 | CLANG_ENABLE_MODULES = YES;
311 | CLANG_ENABLE_OBJC_ARC = YES;
312 | CLANG_ENABLE_OBJC_WEAK = YES;
313 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
314 | CLANG_WARN_BOOL_CONVERSION = YES;
315 | CLANG_WARN_COMMA = YES;
316 | CLANG_WARN_CONSTANT_CONVERSION = YES;
317 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
318 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
319 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
320 | CLANG_WARN_EMPTY_BODY = YES;
321 | CLANG_WARN_ENUM_CONVERSION = YES;
322 | CLANG_WARN_INFINITE_RECURSION = YES;
323 | CLANG_WARN_INT_CONVERSION = YES;
324 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
325 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
326 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
327 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
328 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
329 | CLANG_WARN_STRICT_PROTOTYPES = YES;
330 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
331 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
332 | CLANG_WARN_UNREACHABLE_CODE = YES;
333 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
334 | COPY_PHASE_STRIP = NO;
335 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
336 | ENABLE_NS_ASSERTIONS = NO;
337 | ENABLE_STRICT_OBJC_MSGSEND = YES;
338 | GCC_C_LANGUAGE_STANDARD = gnu11;
339 | GCC_NO_COMMON_BLOCKS = YES;
340 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
341 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
342 | GCC_WARN_UNDECLARED_SELECTOR = YES;
343 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
344 | GCC_WARN_UNUSED_FUNCTION = YES;
345 | GCC_WARN_UNUSED_VARIABLE = YES;
346 | IPHONEOS_DEPLOYMENT_TARGET = 13.2;
347 | MTL_ENABLE_DEBUG_INFO = NO;
348 | MTL_FAST_MATH = YES;
349 | SDKROOT = iphoneos;
350 | SWIFT_COMPILATION_MODE = wholemodule;
351 | SWIFT_OPTIMIZATION_LEVEL = "-O";
352 | VALIDATE_PRODUCT = YES;
353 | };
354 | name = Release;
355 | };
356 | 9F361E2623C40CF700A17646 /* Debug */ = {
357 | isa = XCBuildConfiguration;
358 | baseConfigurationReference = 1DFA6E01FBE81246A2BE46AB /* Pods-LazyViewSwiftUI_Example.debug.xcconfig */;
359 | buildSettings = {
360 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
361 | CODE_SIGN_STYLE = Automatic;
362 | DEVELOPMENT_ASSET_PATHS = "\"LazyViewSwiftUI_Example/Preview Content\"";
363 | DEVELOPMENT_TEAM = 5NN7NG74UC;
364 | ENABLE_PREVIEWS = YES;
365 | INFOPLIST_FILE = LazyViewSwiftUI_Example/Info.plist;
366 | LD_RUNPATH_SEARCH_PATHS = (
367 | "$(inherited)",
368 | "@executable_path/Frameworks",
369 | );
370 | PRODUCT_BUNDLE_IDENTIFIER = test.Example;
371 | PRODUCT_NAME = "$(TARGET_NAME)";
372 | SWIFT_VERSION = 5.0;
373 | TARGETED_DEVICE_FAMILY = "1,2";
374 | };
375 | name = Debug;
376 | };
377 | 9F361E2723C40CF700A17646 /* Release */ = {
378 | isa = XCBuildConfiguration;
379 | baseConfigurationReference = 22D5BED8682BA3DC814BFED7 /* Pods-LazyViewSwiftUI_Example.release.xcconfig */;
380 | buildSettings = {
381 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
382 | CODE_SIGN_STYLE = Automatic;
383 | DEVELOPMENT_ASSET_PATHS = "\"LazyViewSwiftUI_Example/Preview Content\"";
384 | DEVELOPMENT_TEAM = 5NN7NG74UC;
385 | ENABLE_PREVIEWS = YES;
386 | INFOPLIST_FILE = LazyViewSwiftUI_Example/Info.plist;
387 | LD_RUNPATH_SEARCH_PATHS = (
388 | "$(inherited)",
389 | "@executable_path/Frameworks",
390 | );
391 | PRODUCT_BUNDLE_IDENTIFIER = test.Example;
392 | PRODUCT_NAME = "$(TARGET_NAME)";
393 | SWIFT_VERSION = 5.0;
394 | TARGETED_DEVICE_FAMILY = "1,2";
395 | };
396 | name = Release;
397 | };
398 | /* End XCBuildConfiguration section */
399 |
400 | /* Begin XCConfigurationList section */
401 | 9F361E0C23C40CF600A17646 /* Build configuration list for PBXProject "LazyViewSwiftUI_Example" */ = {
402 | isa = XCConfigurationList;
403 | buildConfigurations = (
404 | 9F361E2323C40CF700A17646 /* Debug */,
405 | 9F361E2423C40CF700A17646 /* Release */,
406 | );
407 | defaultConfigurationIsVisible = 0;
408 | defaultConfigurationName = Release;
409 | };
410 | 9F361E2523C40CF700A17646 /* Build configuration list for PBXNativeTarget "LazyViewSwiftUI_Example" */ = {
411 | isa = XCConfigurationList;
412 | buildConfigurations = (
413 | 9F361E2623C40CF700A17646 /* Debug */,
414 | 9F361E2723C40CF700A17646 /* Release */,
415 | );
416 | defaultConfigurationIsVisible = 0;
417 | defaultConfigurationName = Release;
418 | };
419 | /* End XCConfigurationList section */
420 | };
421 | rootObject = 9F361E0923C40CF600A17646 /* Project object */;
422 | }
423 |
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example.xcodeproj/xcshareddata/xcschemes/LazyViewSwiftUI_Example.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
43 |
45 |
51 |
52 |
53 |
54 |
60 |
62 |
68 |
69 |
70 |
71 |
73 |
74 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // Example
4 | //
5 | // Created by Joseph Hinkle on 1/6/20.
6 | // Copyright © 2020 Joseph Hinkle. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @UIApplicationMain
12 | class AppDelegate: UIResponder, UIApplicationDelegate {
13 |
14 |
15 |
16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
17 | // Override point for customization after application launch.
18 | return true
19 | }
20 |
21 | // MARK: UISceneSession Lifecycle
22 |
23 | func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
24 | // Called when a new scene session is being created.
25 | // Use this method to select a configuration to create the new scene with.
26 | return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
27 | }
28 |
29 | func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) {
30 | // Called when the user discards a scene session.
31 | // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
32 | // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
33 | }
34 |
35 |
36 | }
37 |
38 |
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | },
88 | {
89 | "idiom" : "ios-marketing",
90 | "size" : "1024x1024",
91 | "scale" : "1x"
92 | }
93 | ],
94 | "info" : {
95 | "version" : 1,
96 | "author" : "xcode"
97 | }
98 | }
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example/ContentView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContentView.swift
3 | // LazyViewSwiftUI_Example
4 | //
5 | // Created by Joseph Hinkle on 1/6/20.
6 | // Copyright © 2020 Joseph Hinkle. All rights reserved.
7 | //
8 |
9 | import SwiftUI
10 | import LazyViewSwiftUI
11 |
12 | struct ContentView: View {
13 | var body: some View {
14 | NavigationView {
15 | NavigationLink(destination: LazyView(DetailView("Details text"))) {
16 | Text("Go to details").font(.largeTitle)
17 | }
18 | }
19 | }
20 | }
21 |
22 | struct DetailView: View {
23 | var shouldBeSetAfterPushingVC: String
24 | var body: some View {
25 | Text(shouldBeSetAfterPushingVC).font(.largeTitle)
26 | }
27 | init(_ value: String) {
28 | shouldBeSetAfterPushingVC = value
29 | }
30 | }
31 |
32 |
33 | struct ContentView_Previews: PreviewProvider {
34 | static var previews: some View {
35 | ContentView()
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UIApplicationSceneManifest
24 |
25 | UIApplicationSupportsMultipleScenes
26 |
27 | UISceneConfigurations
28 |
29 | UIWindowSceneSessionRoleApplication
30 |
31 |
32 | UISceneConfigurationName
33 | Default Configuration
34 | UISceneDelegateClassName
35 | $(PRODUCT_MODULE_NAME).SceneDelegate
36 |
37 |
38 |
39 |
40 | UILaunchStoryboardName
41 | LaunchScreen
42 | UIRequiredDeviceCapabilities
43 |
44 | armv7
45 |
46 | UISupportedInterfaceOrientations
47 |
48 | UIInterfaceOrientationPortrait
49 | UIInterfaceOrientationLandscapeLeft
50 | UIInterfaceOrientationLandscapeRight
51 |
52 | UISupportedInterfaceOrientations~ipad
53 |
54 | UIInterfaceOrientationPortrait
55 | UIInterfaceOrientationPortraitUpsideDown
56 | UIInterfaceOrientationLandscapeLeft
57 | UIInterfaceOrientationLandscapeRight
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Example/LazyViewSwiftUI_Example/SceneDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SceneDelegate.swift
3 | // Example
4 | //
5 | // Created by Joseph Hinkle on 1/6/20.
6 | // Copyright © 2020 Joseph Hinkle. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import SwiftUI
11 |
12 | class SceneDelegate: UIResponder, UIWindowSceneDelegate {
13 |
14 | var window: UIWindow?
15 |
16 |
17 | func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
18 | // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
19 | // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
20 | // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
21 |
22 | // Create the SwiftUI view that provides the window contents.
23 | let contentView = ContentView()
24 |
25 | // Use a UIHostingController as window root view controller.
26 | if let windowScene = scene as? UIWindowScene {
27 | let window = UIWindow(windowScene: windowScene)
28 | window.rootViewController = UIHostingController(rootView: contentView)
29 | self.window = window
30 | window.makeKeyAndVisible()
31 | }
32 | }
33 |
34 | func sceneDidDisconnect(_ scene: UIScene) {
35 | // Called as the scene is being released by the system.
36 | // This occurs shortly after the scene enters the background, or when its session is discarded.
37 | // Release any resources associated with this scene that can be re-created the next time the scene connects.
38 | // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead).
39 | }
40 |
41 | func sceneDidBecomeActive(_ scene: UIScene) {
42 | // Called when the scene has moved from an inactive state to an active state.
43 | // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
44 | }
45 |
46 | func sceneWillResignActive(_ scene: UIScene) {
47 | // Called when the scene will move from an active state to an inactive state.
48 | // This may occur due to temporary interruptions (ex. an incoming phone call).
49 | }
50 |
51 | func sceneWillEnterForeground(_ scene: UIScene) {
52 | // Called as the scene transitions from the background to the foreground.
53 | // Use this method to undo the changes made on entering the background.
54 | }
55 |
56 | func sceneDidEnterBackground(_ scene: UIScene) {
57 | // Called as the scene transitions from the foreground to the background.
58 | // Use this method to save data, release shared resources, and store enough scene-specific state information
59 | // to restore the scene back to its current state.
60 | }
61 |
62 |
63 | }
64 |
65 |
--------------------------------------------------------------------------------
/Example/Podfile:
--------------------------------------------------------------------------------
1 | use_frameworks!
2 |
3 | target 'LazyViewSwiftUI_Example' do
4 | pod 'LazyViewSwiftUI', :path => '../'
5 |
6 | end
7 |
--------------------------------------------------------------------------------
/Example/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - LazyViewSwiftUI (0.1.0)
3 |
4 | DEPENDENCIES:
5 | - LazyViewSwiftUI (from `../`)
6 |
7 | EXTERNAL SOURCES:
8 | LazyViewSwiftUI:
9 | :path: "../"
10 |
11 | SPEC CHECKSUMS:
12 | LazyViewSwiftUI: 2df82bf65520c4ac35c2c1fabb83802c52bf2d2c
13 |
14 | PODFILE CHECKSUM: becd6d37f6e7909e38e12bd3c9ede74b2532282c
15 |
16 | COCOAPODS: 1.5.3
17 |
--------------------------------------------------------------------------------
/Example/Pods/Local Podspecs/LazyViewSwiftUI.podspec.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LazyViewSwiftUI",
3 | "version": "0.1.0",
4 | "summary": "Lazy load a SwiftUI view to fix a problem with NavigationLink.",
5 | "description": "TODO: Add long description of the pod here.",
6 | "homepage": "https://github.com/joehinkle11/LazyViewSwiftUI",
7 | "license": {
8 | "type": "MIT",
9 | "file": "LICENSE"
10 | },
11 | "authors": {
12 | "joehinkle11": "joehinkle11@gmail.com"
13 | },
14 | "source": {
15 | "git": "https://github.com/joehinkle11/LazyViewSwiftUI.git",
16 | "tag": "0.1.0"
17 | },
18 | "platforms": {
19 | "ios": "13.0"
20 | },
21 | "source_files": "Source/**/*"
22 | }
23 |
--------------------------------------------------------------------------------
/Example/Pods/Manifest.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - LazyViewSwiftUI (0.1.0)
3 |
4 | DEPENDENCIES:
5 | - LazyViewSwiftUI (from `../`)
6 |
7 | EXTERNAL SOURCES:
8 | LazyViewSwiftUI:
9 | :path: "../"
10 |
11 | SPEC CHECKSUMS:
12 | LazyViewSwiftUI: 2df82bf65520c4ac35c2c1fabb83802c52bf2d2c
13 |
14 | PODFILE CHECKSUM: becd6d37f6e7909e38e12bd3c9ede74b2532282c
15 |
16 | COCOAPODS: 1.5.3
17 |
--------------------------------------------------------------------------------
/Example/Pods/Pods.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 50;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 03AC51DC6E8959775D2224B024B42378 /* LazyViewSwiftUI-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A083F3B873DAEECB0600E174B580BBBE /* LazyViewSwiftUI-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
11 | 4AA04DD51FBBF6EC8A368229FD618A5E /* LazyViewSwiftUI-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 184AD304B2EE342DE34AF409BC005C7D /* LazyViewSwiftUI-dummy.m */; };
12 | 840D367B5B6A48DC033515FB3606C082 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; };
13 | 889959F8C54CED9E7F1747F994C07EAB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; };
14 | 8CCAC16BDC36BE35DC41A8EF0FCD164E /* LazyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D606608FEACAC895852D8F724CD15676 /* LazyView.swift */; };
15 | 9F5147190B42E0819B3F96E7C0D45E24 /* Pods-LazyViewSwiftUI_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C7F12E3CD7F2577F4BCE65FCCA93E41F /* Pods-LazyViewSwiftUI_Example-dummy.m */; };
16 | FA9423516B4DFAB99ED55DE50AC74C21 /* Pods-LazyViewSwiftUI_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EAE08DBA3FB0CB9AD18788FA026BC588 /* Pods-LazyViewSwiftUI_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
17 | /* End PBXBuildFile section */
18 |
19 | /* Begin PBXContainerItemProxy section */
20 | F6B61A4CF71C887F8B76F09244D351C3 /* PBXContainerItemProxy */ = {
21 | isa = PBXContainerItemProxy;
22 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
23 | proxyType = 1;
24 | remoteGlobalIDString = D1F9C064CECB5601196F471681E28115;
25 | remoteInfo = LazyViewSwiftUI;
26 | };
27 | /* End PBXContainerItemProxy section */
28 |
29 | /* Begin PBXFileReference section */
30 | 184AD304B2EE342DE34AF409BC005C7D /* LazyViewSwiftUI-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LazyViewSwiftUI-dummy.m"; sourceTree = ""; };
31 | 211D7358F9E39D30F3DAC38BEE523B72 /* Pods_LazyViewSwiftUI_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_LazyViewSwiftUI_Example.framework; path = "Pods-LazyViewSwiftUI_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
32 | 24390EFD555DD124430DFF9724065945 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
33 | 270B24D69C54657D9A72C865EA01CF16 /* Pods-LazyViewSwiftUI_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LazyViewSwiftUI_Example.release.xcconfig"; sourceTree = ""; };
34 | 296072076BC5E1E33E0DECC0A0D5FDEF /* Pods-LazyViewSwiftUI_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LazyViewSwiftUI_Example-resources.sh"; sourceTree = ""; };
35 | 2F6C582667397B4DAE69C295F7FC7ADD /* LazyViewSwiftUI.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = LazyViewSwiftUI.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
36 | 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
37 | 3C375B3BBDA135CD3C5444262FC8FB13 /* LazyViewSwiftUI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LazyViewSwiftUI-prefix.pch"; sourceTree = ""; };
38 | 40A426EA4836646B84119A23D185F325 /* LazyViewSwiftUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = LazyViewSwiftUI.framework; path = LazyViewSwiftUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
39 | 524F352B3F58E446B8E134C35B482A7F /* LazyViewSwiftUI.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LazyViewSwiftUI.xcconfig; sourceTree = ""; };
40 | 6D76176C3472E5AEB5B6AFAD8743FC3D /* LazyViewSwiftUI.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LazyViewSwiftUI.modulemap; sourceTree = ""; };
41 | 780871B9D81E39E2E0B5E34BFE83FB04 /* Pods-LazyViewSwiftUI_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LazyViewSwiftUI_Example-acknowledgements.plist"; sourceTree = ""; };
42 | 7D63E64A590E043208CE79529755A33D /* Pods-LazyViewSwiftUI_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-LazyViewSwiftUI_Example.modulemap"; sourceTree = ""; };
43 | 8D073F4AD710ECADED6EE2F16F86E0F5 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
44 | 8DCD095728C8305CF2EB744D588550F0 /* Pods-LazyViewSwiftUI_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LazyViewSwiftUI_Example.debug.xcconfig"; sourceTree = ""; };
45 | A083F3B873DAEECB0600E174B580BBBE /* LazyViewSwiftUI-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LazyViewSwiftUI-umbrella.h"; sourceTree = ""; };
46 | AF3A07A5F9EF72738F9FB0488B735458 /* Pods-LazyViewSwiftUI_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LazyViewSwiftUI_Example-acknowledgements.markdown"; sourceTree = ""; };
47 | B8D99E4BDF0EF6CAC579252C5018878E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
48 | C7F12E3CD7F2577F4BCE65FCCA93E41F /* Pods-LazyViewSwiftUI_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LazyViewSwiftUI_Example-dummy.m"; sourceTree = ""; };
49 | C8C0D3AA5162423000611894CC892CAD /* Pods-LazyViewSwiftUI_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LazyViewSwiftUI_Example-frameworks.sh"; sourceTree = ""; };
50 | D606608FEACAC895852D8F724CD15676 /* LazyView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LazyView.swift; path = Source/LazyView.swift; sourceTree = ""; };
51 | D8EB8DF27682152C5543EFBDEF0D4C33 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; };
52 | EAE08DBA3FB0CB9AD18788FA026BC588 /* Pods-LazyViewSwiftUI_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LazyViewSwiftUI_Example-umbrella.h"; sourceTree = ""; };
53 | F06163B7B24128160AB51C9BE0597340 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; };
54 | /* End PBXFileReference section */
55 |
56 | /* Begin PBXFrameworksBuildPhase section */
57 | 196903B61C02BD2B329FABCAD6B743FA /* Frameworks */ = {
58 | isa = PBXFrameworksBuildPhase;
59 | buildActionMask = 2147483647;
60 | files = (
61 | 889959F8C54CED9E7F1747F994C07EAB /* Foundation.framework in Frameworks */,
62 | );
63 | runOnlyForDeploymentPostprocessing = 0;
64 | };
65 | D343930FE6A1592C253A321F9AE93406 /* Frameworks */ = {
66 | isa = PBXFrameworksBuildPhase;
67 | buildActionMask = 2147483647;
68 | files = (
69 | 840D367B5B6A48DC033515FB3606C082 /* Foundation.framework in Frameworks */,
70 | );
71 | runOnlyForDeploymentPostprocessing = 0;
72 | };
73 | /* End PBXFrameworksBuildPhase section */
74 |
75 | /* Begin PBXGroup section */
76 | 398AAC3E705C4D0FBC8F31E0FBAF86E4 /* Products */ = {
77 | isa = PBXGroup;
78 | children = (
79 | 40A426EA4836646B84119A23D185F325 /* LazyViewSwiftUI.framework */,
80 | 211D7358F9E39D30F3DAC38BEE523B72 /* Pods_LazyViewSwiftUI_Example.framework */,
81 | );
82 | name = Products;
83 | sourceTree = "";
84 | };
85 | 7B86841810CDC6147139A1DA5C5CBF51 /* Pods-LazyViewSwiftUI_Example */ = {
86 | isa = PBXGroup;
87 | children = (
88 | B8D99E4BDF0EF6CAC579252C5018878E /* Info.plist */,
89 | 7D63E64A590E043208CE79529755A33D /* Pods-LazyViewSwiftUI_Example.modulemap */,
90 | AF3A07A5F9EF72738F9FB0488B735458 /* Pods-LazyViewSwiftUI_Example-acknowledgements.markdown */,
91 | 780871B9D81E39E2E0B5E34BFE83FB04 /* Pods-LazyViewSwiftUI_Example-acknowledgements.plist */,
92 | C7F12E3CD7F2577F4BCE65FCCA93E41F /* Pods-LazyViewSwiftUI_Example-dummy.m */,
93 | C8C0D3AA5162423000611894CC892CAD /* Pods-LazyViewSwiftUI_Example-frameworks.sh */,
94 | 296072076BC5E1E33E0DECC0A0D5FDEF /* Pods-LazyViewSwiftUI_Example-resources.sh */,
95 | EAE08DBA3FB0CB9AD18788FA026BC588 /* Pods-LazyViewSwiftUI_Example-umbrella.h */,
96 | 8DCD095728C8305CF2EB744D588550F0 /* Pods-LazyViewSwiftUI_Example.debug.xcconfig */,
97 | 270B24D69C54657D9A72C865EA01CF16 /* Pods-LazyViewSwiftUI_Example.release.xcconfig */,
98 | );
99 | name = "Pods-LazyViewSwiftUI_Example";
100 | path = "Target Support Files/Pods-LazyViewSwiftUI_Example";
101 | sourceTree = "";
102 | };
103 | 917942BA1DFAF9D25F552AC2A5D5861D /* Development Pods */ = {
104 | isa = PBXGroup;
105 | children = (
106 | B103E50997916A7AAFBC9837A48ED671 /* LazyViewSwiftUI */,
107 | );
108 | name = "Development Pods";
109 | sourceTree = "";
110 | };
111 | B103E50997916A7AAFBC9837A48ED671 /* LazyViewSwiftUI */ = {
112 | isa = PBXGroup;
113 | children = (
114 | D606608FEACAC895852D8F724CD15676 /* LazyView.swift */,
115 | FBB84B072A5D3798F1CAAA3ADA5493BA /* Pod */,
116 | D9BC5B3BD739A6A179E7739300C81BED /* Support Files */,
117 | );
118 | name = LazyViewSwiftUI;
119 | path = ../..;
120 | sourceTree = "";
121 | };
122 | B6F98788233489F5141256A2AFAC6588 /* Targets Support Files */ = {
123 | isa = PBXGroup;
124 | children = (
125 | 7B86841810CDC6147139A1DA5C5CBF51 /* Pods-LazyViewSwiftUI_Example */,
126 | );
127 | name = "Targets Support Files";
128 | sourceTree = "";
129 | };
130 | C0834CEBB1379A84116EF29F93051C60 /* iOS */ = {
131 | isa = PBXGroup;
132 | children = (
133 | 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */,
134 | );
135 | name = iOS;
136 | sourceTree = "";
137 | };
138 | CF1408CF629C7361332E53B88F7BD30C = {
139 | isa = PBXGroup;
140 | children = (
141 | 24390EFD555DD124430DFF9724065945 /* Podfile */,
142 | 917942BA1DFAF9D25F552AC2A5D5861D /* Development Pods */,
143 | D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */,
144 | 398AAC3E705C4D0FBC8F31E0FBAF86E4 /* Products */,
145 | B6F98788233489F5141256A2AFAC6588 /* Targets Support Files */,
146 | );
147 | sourceTree = "";
148 | };
149 | D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = {
150 | isa = PBXGroup;
151 | children = (
152 | C0834CEBB1379A84116EF29F93051C60 /* iOS */,
153 | );
154 | name = Frameworks;
155 | sourceTree = "";
156 | };
157 | D9BC5B3BD739A6A179E7739300C81BED /* Support Files */ = {
158 | isa = PBXGroup;
159 | children = (
160 | 8D073F4AD710ECADED6EE2F16F86E0F5 /* Info.plist */,
161 | 6D76176C3472E5AEB5B6AFAD8743FC3D /* LazyViewSwiftUI.modulemap */,
162 | 524F352B3F58E446B8E134C35B482A7F /* LazyViewSwiftUI.xcconfig */,
163 | 184AD304B2EE342DE34AF409BC005C7D /* LazyViewSwiftUI-dummy.m */,
164 | 3C375B3BBDA135CD3C5444262FC8FB13 /* LazyViewSwiftUI-prefix.pch */,
165 | A083F3B873DAEECB0600E174B580BBBE /* LazyViewSwiftUI-umbrella.h */,
166 | );
167 | name = "Support Files";
168 | path = "Example/Pods/Target Support Files/LazyViewSwiftUI";
169 | sourceTree = "";
170 | };
171 | FBB84B072A5D3798F1CAAA3ADA5493BA /* Pod */ = {
172 | isa = PBXGroup;
173 | children = (
174 | 2F6C582667397B4DAE69C295F7FC7ADD /* LazyViewSwiftUI.podspec */,
175 | F06163B7B24128160AB51C9BE0597340 /* LICENSE */,
176 | D8EB8DF27682152C5543EFBDEF0D4C33 /* README.md */,
177 | );
178 | name = Pod;
179 | sourceTree = "";
180 | };
181 | /* End PBXGroup section */
182 |
183 | /* Begin PBXHeadersBuildPhase section */
184 | 3E9D088602799588243158D91639C2FE /* Headers */ = {
185 | isa = PBXHeadersBuildPhase;
186 | buildActionMask = 2147483647;
187 | files = (
188 | 03AC51DC6E8959775D2224B024B42378 /* LazyViewSwiftUI-umbrella.h in Headers */,
189 | );
190 | runOnlyForDeploymentPostprocessing = 0;
191 | };
192 | 7FDC536C2B202B1BC84D401A9C749923 /* Headers */ = {
193 | isa = PBXHeadersBuildPhase;
194 | buildActionMask = 2147483647;
195 | files = (
196 | FA9423516B4DFAB99ED55DE50AC74C21 /* Pods-LazyViewSwiftUI_Example-umbrella.h in Headers */,
197 | );
198 | runOnlyForDeploymentPostprocessing = 0;
199 | };
200 | /* End PBXHeadersBuildPhase section */
201 |
202 | /* Begin PBXNativeTarget section */
203 | D1F9C064CECB5601196F471681E28115 /* LazyViewSwiftUI */ = {
204 | isa = PBXNativeTarget;
205 | buildConfigurationList = 9B39ED2261C2479306B143C927045D1C /* Build configuration list for PBXNativeTarget "LazyViewSwiftUI" */;
206 | buildPhases = (
207 | 3E9D088602799588243158D91639C2FE /* Headers */,
208 | C0710807B00A84A6D301D49F5755166D /* Sources */,
209 | D343930FE6A1592C253A321F9AE93406 /* Frameworks */,
210 | 8FB0DA4D566E6B512B91C89636D49829 /* Resources */,
211 | );
212 | buildRules = (
213 | );
214 | dependencies = (
215 | );
216 | name = LazyViewSwiftUI;
217 | productName = LazyViewSwiftUI;
218 | productReference = 40A426EA4836646B84119A23D185F325 /* LazyViewSwiftUI.framework */;
219 | productType = "com.apple.product-type.framework";
220 | };
221 | FA8C41CF439A5834C6A52FCC893448DD /* Pods-LazyViewSwiftUI_Example */ = {
222 | isa = PBXNativeTarget;
223 | buildConfigurationList = 6135487BDD4575CA8EEBC84CEDA5C9FC /* Build configuration list for PBXNativeTarget "Pods-LazyViewSwiftUI_Example" */;
224 | buildPhases = (
225 | 7FDC536C2B202B1BC84D401A9C749923 /* Headers */,
226 | 18C32B6BC66E9481A44C7DAC3C250572 /* Sources */,
227 | 196903B61C02BD2B329FABCAD6B743FA /* Frameworks */,
228 | 338CE5B56EF8373370612B547D027B7D /* Resources */,
229 | );
230 | buildRules = (
231 | );
232 | dependencies = (
233 | D7797D82C81F91C0ABE74DD8CA3CF700 /* PBXTargetDependency */,
234 | );
235 | name = "Pods-LazyViewSwiftUI_Example";
236 | productName = "Pods-LazyViewSwiftUI_Example";
237 | productReference = 211D7358F9E39D30F3DAC38BEE523B72 /* Pods_LazyViewSwiftUI_Example.framework */;
238 | productType = "com.apple.product-type.framework";
239 | };
240 | /* End PBXNativeTarget section */
241 |
242 | /* Begin PBXProject section */
243 | BFDFE7DC352907FC980B868725387E98 /* Project object */ = {
244 | isa = PBXProject;
245 | attributes = {
246 | LastSwiftUpdateCheck = 1100;
247 | LastUpgradeCheck = 1100;
248 | };
249 | buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */;
250 | compatibilityVersion = "Xcode 9.3";
251 | developmentRegion = en;
252 | hasScannedForEncodings = 0;
253 | knownRegions = (
254 | en,
255 | );
256 | mainGroup = CF1408CF629C7361332E53B88F7BD30C;
257 | productRefGroup = 398AAC3E705C4D0FBC8F31E0FBAF86E4 /* Products */;
258 | projectDirPath = "";
259 | projectRoot = "";
260 | targets = (
261 | D1F9C064CECB5601196F471681E28115 /* LazyViewSwiftUI */,
262 | FA8C41CF439A5834C6A52FCC893448DD /* Pods-LazyViewSwiftUI_Example */,
263 | );
264 | };
265 | /* End PBXProject section */
266 |
267 | /* Begin PBXResourcesBuildPhase section */
268 | 338CE5B56EF8373370612B547D027B7D /* Resources */ = {
269 | isa = PBXResourcesBuildPhase;
270 | buildActionMask = 2147483647;
271 | files = (
272 | );
273 | runOnlyForDeploymentPostprocessing = 0;
274 | };
275 | 8FB0DA4D566E6B512B91C89636D49829 /* Resources */ = {
276 | isa = PBXResourcesBuildPhase;
277 | buildActionMask = 2147483647;
278 | files = (
279 | );
280 | runOnlyForDeploymentPostprocessing = 0;
281 | };
282 | /* End PBXResourcesBuildPhase section */
283 |
284 | /* Begin PBXSourcesBuildPhase section */
285 | 18C32B6BC66E9481A44C7DAC3C250572 /* Sources */ = {
286 | isa = PBXSourcesBuildPhase;
287 | buildActionMask = 2147483647;
288 | files = (
289 | 9F5147190B42E0819B3F96E7C0D45E24 /* Pods-LazyViewSwiftUI_Example-dummy.m in Sources */,
290 | );
291 | runOnlyForDeploymentPostprocessing = 0;
292 | };
293 | C0710807B00A84A6D301D49F5755166D /* Sources */ = {
294 | isa = PBXSourcesBuildPhase;
295 | buildActionMask = 2147483647;
296 | files = (
297 | 8CCAC16BDC36BE35DC41A8EF0FCD164E /* LazyView.swift in Sources */,
298 | 4AA04DD51FBBF6EC8A368229FD618A5E /* LazyViewSwiftUI-dummy.m in Sources */,
299 | );
300 | runOnlyForDeploymentPostprocessing = 0;
301 | };
302 | /* End PBXSourcesBuildPhase section */
303 |
304 | /* Begin PBXTargetDependency section */
305 | D7797D82C81F91C0ABE74DD8CA3CF700 /* PBXTargetDependency */ = {
306 | isa = PBXTargetDependency;
307 | name = LazyViewSwiftUI;
308 | target = D1F9C064CECB5601196F471681E28115 /* LazyViewSwiftUI */;
309 | targetProxy = F6B61A4CF71C887F8B76F09244D351C3 /* PBXContainerItemProxy */;
310 | };
311 | /* End PBXTargetDependency section */
312 |
313 | /* Begin XCBuildConfiguration section */
314 | 0901BD9E1DFF50ABC45E9466DD834C11 /* Release */ = {
315 | isa = XCBuildConfiguration;
316 | baseConfigurationReference = 524F352B3F58E446B8E134C35B482A7F /* LazyViewSwiftUI.xcconfig */;
317 | buildSettings = {
318 | CLANG_ENABLE_OBJC_WEAK = NO;
319 | CODE_SIGN_IDENTITY = "";
320 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
321 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
322 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
323 | CURRENT_PROJECT_VERSION = 1;
324 | DEFINES_MODULE = YES;
325 | DYLIB_COMPATIBILITY_VERSION = 1;
326 | DYLIB_CURRENT_VERSION = 1;
327 | DYLIB_INSTALL_NAME_BASE = "@rpath";
328 | GCC_PREFIX_HEADER = "Target Support Files/LazyViewSwiftUI/LazyViewSwiftUI-prefix.pch";
329 | INFOPLIST_FILE = "Target Support Files/LazyViewSwiftUI/Info.plist";
330 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
331 | IPHONEOS_DEPLOYMENT_TARGET = 13.0;
332 | LD_RUNPATH_SEARCH_PATHS = (
333 | "$(inherited)",
334 | "@executable_path/Frameworks",
335 | "@loader_path/Frameworks",
336 | );
337 | MODULEMAP_FILE = "Target Support Files/LazyViewSwiftUI/LazyViewSwiftUI.modulemap";
338 | PRODUCT_MODULE_NAME = LazyViewSwiftUI;
339 | PRODUCT_NAME = LazyViewSwiftUI;
340 | SDKROOT = iphoneos;
341 | SKIP_INSTALL = YES;
342 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
343 | SWIFT_VERSION = 5.0;
344 | TARGETED_DEVICE_FAMILY = "1,2";
345 | VALIDATE_PRODUCT = YES;
346 | VERSIONING_SYSTEM = "apple-generic";
347 | VERSION_INFO_PREFIX = "";
348 | };
349 | name = Release;
350 | };
351 | 29927EE09A6CBAB2F3C675D8EE5B83EA /* Debug */ = {
352 | isa = XCBuildConfiguration;
353 | buildSettings = {
354 | ALWAYS_SEARCH_USER_PATHS = NO;
355 | CLANG_ANALYZER_NONNULL = YES;
356 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
357 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
358 | CLANG_CXX_LIBRARY = "libc++";
359 | CLANG_ENABLE_MODULES = YES;
360 | CLANG_ENABLE_OBJC_ARC = YES;
361 | CLANG_ENABLE_OBJC_WEAK = YES;
362 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
363 | CLANG_WARN_BOOL_CONVERSION = YES;
364 | CLANG_WARN_COMMA = YES;
365 | CLANG_WARN_CONSTANT_CONVERSION = YES;
366 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
367 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
368 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
369 | CLANG_WARN_EMPTY_BODY = YES;
370 | CLANG_WARN_ENUM_CONVERSION = YES;
371 | CLANG_WARN_INFINITE_RECURSION = YES;
372 | CLANG_WARN_INT_CONVERSION = YES;
373 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
374 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
375 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
376 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
377 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
378 | CLANG_WARN_STRICT_PROTOTYPES = YES;
379 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
380 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
381 | CLANG_WARN_UNREACHABLE_CODE = YES;
382 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
383 | CODE_SIGNING_ALLOWED = NO;
384 | CODE_SIGNING_REQUIRED = NO;
385 | COPY_PHASE_STRIP = NO;
386 | DEBUG_INFORMATION_FORMAT = dwarf;
387 | ENABLE_STRICT_OBJC_MSGSEND = YES;
388 | ENABLE_TESTABILITY = YES;
389 | GCC_C_LANGUAGE_STANDARD = gnu11;
390 | GCC_DYNAMIC_NO_PIC = NO;
391 | GCC_NO_COMMON_BLOCKS = YES;
392 | GCC_OPTIMIZATION_LEVEL = 0;
393 | GCC_PREPROCESSOR_DEFINITIONS = (
394 | "POD_CONFIGURATION_DEBUG=1",
395 | "DEBUG=1",
396 | "$(inherited)",
397 | );
398 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
399 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
400 | GCC_WARN_UNDECLARED_SELECTOR = YES;
401 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
402 | GCC_WARN_UNUSED_FUNCTION = YES;
403 | GCC_WARN_UNUSED_VARIABLE = YES;
404 | IPHONEOS_DEPLOYMENT_TARGET = 13.2;
405 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
406 | MTL_FAST_MATH = YES;
407 | ONLY_ACTIVE_ARCH = YES;
408 | PRODUCT_NAME = "$(TARGET_NAME)";
409 | STRIP_INSTALLED_PRODUCT = NO;
410 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
411 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
412 | SWIFT_VERSION = 5.0;
413 | SYMROOT = "${SRCROOT}/../build";
414 | };
415 | name = Debug;
416 | };
417 | 50AD3005EE1D81F09D206F0055B93362 /* Debug */ = {
418 | isa = XCBuildConfiguration;
419 | baseConfigurationReference = 524F352B3F58E446B8E134C35B482A7F /* LazyViewSwiftUI.xcconfig */;
420 | buildSettings = {
421 | CLANG_ENABLE_OBJC_WEAK = NO;
422 | CODE_SIGN_IDENTITY = "";
423 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
424 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
425 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
426 | CURRENT_PROJECT_VERSION = 1;
427 | DEFINES_MODULE = YES;
428 | DYLIB_COMPATIBILITY_VERSION = 1;
429 | DYLIB_CURRENT_VERSION = 1;
430 | DYLIB_INSTALL_NAME_BASE = "@rpath";
431 | GCC_PREFIX_HEADER = "Target Support Files/LazyViewSwiftUI/LazyViewSwiftUI-prefix.pch";
432 | INFOPLIST_FILE = "Target Support Files/LazyViewSwiftUI/Info.plist";
433 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
434 | IPHONEOS_DEPLOYMENT_TARGET = 13.0;
435 | LD_RUNPATH_SEARCH_PATHS = (
436 | "$(inherited)",
437 | "@executable_path/Frameworks",
438 | "@loader_path/Frameworks",
439 | );
440 | MODULEMAP_FILE = "Target Support Files/LazyViewSwiftUI/LazyViewSwiftUI.modulemap";
441 | PRODUCT_MODULE_NAME = LazyViewSwiftUI;
442 | PRODUCT_NAME = LazyViewSwiftUI;
443 | SDKROOT = iphoneos;
444 | SKIP_INSTALL = YES;
445 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
446 | SWIFT_VERSION = 5.0;
447 | TARGETED_DEVICE_FAMILY = "1,2";
448 | VERSIONING_SYSTEM = "apple-generic";
449 | VERSION_INFO_PREFIX = "";
450 | };
451 | name = Debug;
452 | };
453 | 64FB567E547462E42E9BCBA9FB5D411B /* Release */ = {
454 | isa = XCBuildConfiguration;
455 | buildSettings = {
456 | ALWAYS_SEARCH_USER_PATHS = NO;
457 | CLANG_ANALYZER_NONNULL = YES;
458 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
459 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
460 | CLANG_CXX_LIBRARY = "libc++";
461 | CLANG_ENABLE_MODULES = YES;
462 | CLANG_ENABLE_OBJC_ARC = YES;
463 | CLANG_ENABLE_OBJC_WEAK = YES;
464 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
465 | CLANG_WARN_BOOL_CONVERSION = YES;
466 | CLANG_WARN_COMMA = YES;
467 | CLANG_WARN_CONSTANT_CONVERSION = YES;
468 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
469 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
470 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
471 | CLANG_WARN_EMPTY_BODY = YES;
472 | CLANG_WARN_ENUM_CONVERSION = YES;
473 | CLANG_WARN_INFINITE_RECURSION = YES;
474 | CLANG_WARN_INT_CONVERSION = YES;
475 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
476 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
477 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
478 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
479 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
480 | CLANG_WARN_STRICT_PROTOTYPES = YES;
481 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
482 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
483 | CLANG_WARN_UNREACHABLE_CODE = YES;
484 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
485 | CODE_SIGNING_ALLOWED = NO;
486 | CODE_SIGNING_REQUIRED = NO;
487 | COPY_PHASE_STRIP = NO;
488 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
489 | ENABLE_NS_ASSERTIONS = NO;
490 | ENABLE_STRICT_OBJC_MSGSEND = YES;
491 | GCC_C_LANGUAGE_STANDARD = gnu11;
492 | GCC_NO_COMMON_BLOCKS = YES;
493 | GCC_PREPROCESSOR_DEFINITIONS = (
494 | "POD_CONFIGURATION_RELEASE=1",
495 | "$(inherited)",
496 | );
497 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
498 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
499 | GCC_WARN_UNDECLARED_SELECTOR = YES;
500 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
501 | GCC_WARN_UNUSED_FUNCTION = YES;
502 | GCC_WARN_UNUSED_VARIABLE = YES;
503 | IPHONEOS_DEPLOYMENT_TARGET = 13.2;
504 | MTL_ENABLE_DEBUG_INFO = NO;
505 | MTL_FAST_MATH = YES;
506 | PRODUCT_NAME = "$(TARGET_NAME)";
507 | STRIP_INSTALLED_PRODUCT = NO;
508 | SWIFT_COMPILATION_MODE = wholemodule;
509 | SWIFT_OPTIMIZATION_LEVEL = "-O";
510 | SWIFT_VERSION = 5.0;
511 | SYMROOT = "${SRCROOT}/../build";
512 | };
513 | name = Release;
514 | };
515 | 6C3E9C1AF256908FD4FB5552DE41D644 /* Release */ = {
516 | isa = XCBuildConfiguration;
517 | baseConfigurationReference = 270B24D69C54657D9A72C865EA01CF16 /* Pods-LazyViewSwiftUI_Example.release.xcconfig */;
518 | buildSettings = {
519 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
520 | CLANG_ENABLE_OBJC_WEAK = NO;
521 | CODE_SIGN_IDENTITY = "";
522 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
523 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
524 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
525 | CURRENT_PROJECT_VERSION = 1;
526 | DEFINES_MODULE = YES;
527 | DYLIB_COMPATIBILITY_VERSION = 1;
528 | DYLIB_CURRENT_VERSION = 1;
529 | DYLIB_INSTALL_NAME_BASE = "@rpath";
530 | INFOPLIST_FILE = "Target Support Files/Pods-LazyViewSwiftUI_Example/Info.plist";
531 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
532 | IPHONEOS_DEPLOYMENT_TARGET = 13.2;
533 | LD_RUNPATH_SEARCH_PATHS = (
534 | "$(inherited)",
535 | "@executable_path/Frameworks",
536 | "@loader_path/Frameworks",
537 | );
538 | MACH_O_TYPE = staticlib;
539 | MODULEMAP_FILE = "Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example.modulemap";
540 | OTHER_LDFLAGS = "";
541 | OTHER_LIBTOOLFLAGS = "";
542 | PODS_ROOT = "$(SRCROOT)";
543 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
544 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
545 | SDKROOT = iphoneos;
546 | SKIP_INSTALL = YES;
547 | TARGETED_DEVICE_FAMILY = "1,2";
548 | VALIDATE_PRODUCT = YES;
549 | VERSIONING_SYSTEM = "apple-generic";
550 | VERSION_INFO_PREFIX = "";
551 | };
552 | name = Release;
553 | };
554 | A9ACA6A08C00343FA1C9A60EAA15A756 /* Debug */ = {
555 | isa = XCBuildConfiguration;
556 | baseConfigurationReference = 8DCD095728C8305CF2EB744D588550F0 /* Pods-LazyViewSwiftUI_Example.debug.xcconfig */;
557 | buildSettings = {
558 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
559 | CLANG_ENABLE_OBJC_WEAK = NO;
560 | CODE_SIGN_IDENTITY = "";
561 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
562 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
563 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
564 | CURRENT_PROJECT_VERSION = 1;
565 | DEFINES_MODULE = YES;
566 | DYLIB_COMPATIBILITY_VERSION = 1;
567 | DYLIB_CURRENT_VERSION = 1;
568 | DYLIB_INSTALL_NAME_BASE = "@rpath";
569 | INFOPLIST_FILE = "Target Support Files/Pods-LazyViewSwiftUI_Example/Info.plist";
570 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
571 | IPHONEOS_DEPLOYMENT_TARGET = 13.2;
572 | LD_RUNPATH_SEARCH_PATHS = (
573 | "$(inherited)",
574 | "@executable_path/Frameworks",
575 | "@loader_path/Frameworks",
576 | );
577 | MACH_O_TYPE = staticlib;
578 | MODULEMAP_FILE = "Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example.modulemap";
579 | OTHER_LDFLAGS = "";
580 | OTHER_LIBTOOLFLAGS = "";
581 | PODS_ROOT = "$(SRCROOT)";
582 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
583 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
584 | SDKROOT = iphoneos;
585 | SKIP_INSTALL = YES;
586 | TARGETED_DEVICE_FAMILY = "1,2";
587 | VERSIONING_SYSTEM = "apple-generic";
588 | VERSION_INFO_PREFIX = "";
589 | };
590 | name = Debug;
591 | };
592 | /* End XCBuildConfiguration section */
593 |
594 | /* Begin XCConfigurationList section */
595 | 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
596 | isa = XCConfigurationList;
597 | buildConfigurations = (
598 | 29927EE09A6CBAB2F3C675D8EE5B83EA /* Debug */,
599 | 64FB567E547462E42E9BCBA9FB5D411B /* Release */,
600 | );
601 | defaultConfigurationIsVisible = 0;
602 | defaultConfigurationName = Release;
603 | };
604 | 6135487BDD4575CA8EEBC84CEDA5C9FC /* Build configuration list for PBXNativeTarget "Pods-LazyViewSwiftUI_Example" */ = {
605 | isa = XCConfigurationList;
606 | buildConfigurations = (
607 | A9ACA6A08C00343FA1C9A60EAA15A756 /* Debug */,
608 | 6C3E9C1AF256908FD4FB5552DE41D644 /* Release */,
609 | );
610 | defaultConfigurationIsVisible = 0;
611 | defaultConfigurationName = Release;
612 | };
613 | 9B39ED2261C2479306B143C927045D1C /* Build configuration list for PBXNativeTarget "LazyViewSwiftUI" */ = {
614 | isa = XCConfigurationList;
615 | buildConfigurations = (
616 | 50AD3005EE1D81F09D206F0055B93362 /* Debug */,
617 | 0901BD9E1DFF50ABC45E9466DD834C11 /* Release */,
618 | );
619 | defaultConfigurationIsVisible = 0;
620 | defaultConfigurationName = Release;
621 | };
622 | /* End XCConfigurationList section */
623 | };
624 | rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */;
625 | }
626 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/LazyViewSwiftUI/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | ${PRODUCT_BUNDLE_IDENTIFIER}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 0.1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/LazyViewSwiftUI/LazyViewSwiftUI-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_LazyViewSwiftUI : NSObject
3 | @end
4 | @implementation PodsDummy_LazyViewSwiftUI
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/LazyViewSwiftUI/LazyViewSwiftUI-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/LazyViewSwiftUI/LazyViewSwiftUI-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double LazyViewSwiftUIVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char LazyViewSwiftUIVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/LazyViewSwiftUI/LazyViewSwiftUI.modulemap:
--------------------------------------------------------------------------------
1 | framework module LazyViewSwiftUI {
2 | umbrella header "LazyViewSwiftUI-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/LazyViewSwiftUI/LazyViewSwiftUI.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/LazyViewSwiftUI
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
4 | PODS_BUILD_DIR = ${BUILD_DIR}
5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
6 | PODS_ROOT = ${SRCROOT}
7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../..
8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
9 | SKIP_INSTALL = YES
10 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | ${PRODUCT_BUNDLE_IDENTIFIER}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example-acknowledgements.markdown:
--------------------------------------------------------------------------------
1 | # Acknowledgements
2 | This application makes use of the following third party libraries:
3 |
4 | ## LazyViewSwiftUI
5 |
6 | Copyright (c) 2020 Joe Hinkle https://www.joehinkle.io/
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy
9 | of this software and associated documentation files (the "Software"), to deal
10 | in the Software without restriction, including without limitation the rights
11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | copies of the Software, and to permit persons to whom the Software is
13 | furnished to do so, subject to the following conditions:
14 |
15 | The above copyright notice and this permission notice shall be included in
16 | all copies or substantial portions of the Software.
17 |
18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | THE SOFTWARE.
25 |
26 | Generated by CocoaPods - https://cocoapods.org
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example-acknowledgements.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreferenceSpecifiers
6 |
7 |
8 | FooterText
9 | This application makes use of the following third party libraries:
10 | Title
11 | Acknowledgements
12 | Type
13 | PSGroupSpecifier
14 |
15 |
16 | FooterText
17 | Copyright (c) 2020 Joe Hinkle https://www.joehinkle.io/
18 |
19 | Permission is hereby granted, free of charge, to any person obtaining a copy
20 | of this software and associated documentation files (the "Software"), to deal
21 | in the Software without restriction, including without limitation the rights
22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
23 | copies of the Software, and to permit persons to whom the Software is
24 | furnished to do so, subject to the following conditions:
25 |
26 | The above copyright notice and this permission notice shall be included in
27 | all copies or substantial portions of the Software.
28 |
29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
35 | THE SOFTWARE.
36 |
37 | License
38 | MIT
39 | Title
40 | LazyViewSwiftUI
41 | Type
42 | PSGroupSpecifier
43 |
44 |
45 | FooterText
46 | Generated by CocoaPods - https://cocoapods.org
47 | Title
48 |
49 | Type
50 | PSGroupSpecifier
51 |
52 |
53 | StringsTable
54 | Acknowledgements
55 | Title
56 | Acknowledgements
57 |
58 |
59 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_LazyViewSwiftUI_Example : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_LazyViewSwiftUI_Example
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example-frameworks.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | set -e
3 | set -u
4 | set -o pipefail
5 |
6 | if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
7 | # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
8 | # frameworks to, so exit 0 (signalling the script phase was successful).
9 | exit 0
10 | fi
11 |
12 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
13 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
14 |
15 | COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
16 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
17 |
18 | # Used as a return value for each invocation of `strip_invalid_archs` function.
19 | STRIP_BINARY_RETVAL=0
20 |
21 | # This protects against multiple targets copying the same framework dependency at the same time. The solution
22 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
23 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
24 |
25 | # Copies and strips a vendored framework
26 | install_framework()
27 | {
28 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
29 | local source="${BUILT_PRODUCTS_DIR}/$1"
30 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
31 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
32 | elif [ -r "$1" ]; then
33 | local source="$1"
34 | fi
35 |
36 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
37 |
38 | if [ -L "${source}" ]; then
39 | echo "Symlinked..."
40 | source="$(readlink "${source}")"
41 | fi
42 |
43 | # Use filter instead of exclude so missing patterns don't throw errors.
44 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
45 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
46 |
47 | local basename
48 | basename="$(basename -s .framework "$1")"
49 | binary="${destination}/${basename}.framework/${basename}"
50 | if ! [ -r "$binary" ]; then
51 | binary="${destination}/${basename}"
52 | fi
53 |
54 | # Strip invalid architectures so "fat" simulator / device frameworks work on device
55 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
56 | strip_invalid_archs "$binary"
57 | fi
58 |
59 | # Resign the code if required by the build settings to avoid unstable apps
60 | code_sign_if_enabled "${destination}/$(basename "$1")"
61 |
62 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
63 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
64 | local swift_runtime_libs
65 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]})
66 | for lib in $swift_runtime_libs; do
67 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
68 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
69 | code_sign_if_enabled "${destination}/${lib}"
70 | done
71 | fi
72 | }
73 |
74 | # Copies and strips a vendored dSYM
75 | install_dsym() {
76 | local source="$1"
77 | if [ -r "$source" ]; then
78 | # Copy the dSYM into a the targets temp dir.
79 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
80 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
81 |
82 | local basename
83 | basename="$(basename -s .framework.dSYM "$source")"
84 | binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}"
85 |
86 | # Strip invalid architectures so "fat" simulator / device frameworks work on device
87 | if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then
88 | strip_invalid_archs "$binary"
89 | fi
90 |
91 | if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
92 | # Move the stripped file into its final destination.
93 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
94 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
95 | else
96 | # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
97 | touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM"
98 | fi
99 | fi
100 | }
101 |
102 | # Signs a framework with the provided identity
103 | code_sign_if_enabled() {
104 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
105 | # Use the current code_sign_identitiy
106 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
107 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
108 |
109 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
110 | code_sign_cmd="$code_sign_cmd &"
111 | fi
112 | echo "$code_sign_cmd"
113 | eval "$code_sign_cmd"
114 | fi
115 | }
116 |
117 | # Strip invalid architectures
118 | strip_invalid_archs() {
119 | binary="$1"
120 | # Get architectures for current target binary
121 | binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
122 | # Intersect them with the architectures we are building for
123 | intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
124 | # If there are no archs supported by this binary then warn the user
125 | if [[ -z "$intersected_archs" ]]; then
126 | echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
127 | STRIP_BINARY_RETVAL=0
128 | return
129 | fi
130 | stripped=""
131 | for arch in $binary_archs; do
132 | if ! [[ "${ARCHS}" == *"$arch"* ]]; then
133 | # Strip non-valid architectures in-place
134 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1
135 | stripped="$stripped $arch"
136 | fi
137 | done
138 | if [[ "$stripped" ]]; then
139 | echo "Stripped $binary of architectures:$stripped"
140 | fi
141 | STRIP_BINARY_RETVAL=1
142 | }
143 |
144 |
145 | if [[ "$CONFIGURATION" == "Debug" ]]; then
146 | install_framework "${BUILT_PRODUCTS_DIR}/LazyViewSwiftUI/LazyViewSwiftUI.framework"
147 | fi
148 | if [[ "$CONFIGURATION" == "Release" ]]; then
149 | install_framework "${BUILT_PRODUCTS_DIR}/LazyViewSwiftUI/LazyViewSwiftUI.framework"
150 | fi
151 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
152 | wait
153 | fi
154 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example-resources.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | set -e
3 | set -u
4 | set -o pipefail
5 |
6 | if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
7 | # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
8 | # resources to, so exit 0 (signalling the script phase was successful).
9 | exit 0
10 | fi
11 |
12 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
13 |
14 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
15 | > "$RESOURCES_TO_COPY"
16 |
17 | XCASSET_FILES=()
18 |
19 | # This protects against multiple targets copying the same framework dependency at the same time. The solution
20 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
21 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
22 |
23 | case "${TARGETED_DEVICE_FAMILY:-}" in
24 | 1,2)
25 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
26 | ;;
27 | 1)
28 | TARGET_DEVICE_ARGS="--target-device iphone"
29 | ;;
30 | 2)
31 | TARGET_DEVICE_ARGS="--target-device ipad"
32 | ;;
33 | 3)
34 | TARGET_DEVICE_ARGS="--target-device tv"
35 | ;;
36 | 4)
37 | TARGET_DEVICE_ARGS="--target-device watch"
38 | ;;
39 | *)
40 | TARGET_DEVICE_ARGS="--target-device mac"
41 | ;;
42 | esac
43 |
44 | install_resource()
45 | {
46 | if [[ "$1" = /* ]] ; then
47 | RESOURCE_PATH="$1"
48 | else
49 | RESOURCE_PATH="${PODS_ROOT}/$1"
50 | fi
51 | if [[ ! -e "$RESOURCE_PATH" ]] ; then
52 | cat << EOM
53 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
54 | EOM
55 | exit 1
56 | fi
57 | case $RESOURCE_PATH in
58 | *.storyboard)
59 | 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}" || true
60 | 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}
61 | ;;
62 | *.xib)
63 | 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}" || true
64 | 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}
65 | ;;
66 | *.framework)
67 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
68 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
69 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
70 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
71 | ;;
72 | *.xcdatamodel)
73 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
74 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
75 | ;;
76 | *.xcdatamodeld)
77 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
78 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
79 | ;;
80 | *.xcmappingmodel)
81 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
82 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
83 | ;;
84 | *.xcassets)
85 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
86 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
87 | ;;
88 | *)
89 | echo "$RESOURCE_PATH" || true
90 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
91 | ;;
92 | esac
93 | }
94 |
95 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
96 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
97 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
98 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
99 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
100 | fi
101 | rm -f "$RESOURCES_TO_COPY"
102 |
103 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
104 | then
105 | # Find all other xcassets (this unfortunately includes those of path pods and other targets).
106 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
107 | while read line; do
108 | if [[ $line != "${PODS_ROOT}*" ]]; then
109 | XCASSET_FILES+=("$line")
110 | fi
111 | done <<<"$OTHER_XCASSETS"
112 |
113 | if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
114 | 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}"
115 | else
116 | 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}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist"
117 | fi
118 | fi
119 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double Pods_LazyViewSwiftUI_ExampleVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char Pods_LazyViewSwiftUI_ExampleVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example.debug.xcconfig:
--------------------------------------------------------------------------------
1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/LazyViewSwiftUI"
3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
5 | OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/LazyViewSwiftUI/LazyViewSwiftUI.framework/Headers"
6 | OTHER_LDFLAGS = $(inherited) -framework "LazyViewSwiftUI"
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_BUILD_DIR = ${BUILD_DIR}
9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
10 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
11 | PODS_ROOT = ${SRCROOT}/Pods
12 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example.modulemap:
--------------------------------------------------------------------------------
1 | framework module Pods_LazyViewSwiftUI_Example {
2 | umbrella header "Pods-LazyViewSwiftUI_Example-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-LazyViewSwiftUI_Example/Pods-LazyViewSwiftUI_Example.release.xcconfig:
--------------------------------------------------------------------------------
1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/LazyViewSwiftUI"
3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
5 | OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/LazyViewSwiftUI/LazyViewSwiftUI.framework/Headers"
6 | OTHER_LDFLAGS = $(inherited) -framework "LazyViewSwiftUI"
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_BUILD_DIR = ${BUILD_DIR}
9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
10 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
11 | PODS_ROOT = ${SRCROOT}/Pods
12 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2020 Joe Hinkle https://www.joehinkle.io/
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/LazyViewSwiftUI.podspec:
--------------------------------------------------------------------------------
1 | #
2 | # Be sure to run `pod lib lint LazyViewSwiftUI.podspec' to ensure this is a
3 | # valid spec before submitting.
4 | #
5 | # Any lines starting with a # are optional, but their use is encouraged
6 | # To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html
7 | #
8 |
9 | Pod::Spec.new do |s|
10 | s.name = 'LazyViewSwiftUI'
11 | s.version = '1.0.0'
12 | s.summary = 'Lazy load a SwiftUI view to fix a problem with NavigationLink.'
13 |
14 | # This description is used to generate tags and improve search results.
15 | # * Think: What does it do? Why did you write it? What is the focus?
16 | # * Try to keep it short, snappy and to the point.
17 | # * Write the description between the DESC delimiters below.
18 | # * Finally, don't worry about the indent, CocoaPods strips it!
19 |
20 | s.description = <<-DESC
21 | Wrap any SwiftUI view in LazyLoad() to fix a problem with NavigationLink.
22 | DESC
23 |
24 | s.homepage = 'https://github.com/joehinkle11/Lazy-View-SwiftUI'
25 | # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
26 | s.license = { :type => 'MIT', :file => 'LICENSE' }
27 | s.author = { 'joehinkle11' => 'joehinkle11@gmail.com' }
28 | s.source = { :git => 'https://github.com/joehinkle11/Lazy-View-SwiftUI.git', :tag => s.version.to_s }
29 | # s.social_media_url = 'https://twitter.com/joehink95'
30 |
31 | s.ios.deployment_target = '13.0'
32 |
33 | s.source_files = 'Source/**/*'
34 |
35 | # s.resource_bundles = {
36 | # 'LazyViewSwiftUI' => ['LazyViewSwiftUI/Assets/*.png']
37 | # }
38 |
39 | # s.public_header_files = 'Pod/Classes/**/*.h'
40 | # s.frameworks = 'UIKit', 'MapKit'
41 | # s.dependency 'AFNetworking', '~> 2.3'
42 | end
43 |
--------------------------------------------------------------------------------
/Package.swift:
--------------------------------------------------------------------------------
1 | // swift-tools-version:5.1
2 | // The swift-tools-version declares the minimum version of Swift required to build this package.
3 |
4 | import PackageDescription
5 |
6 | let package = Package(
7 | name: "LazyViewSwiftUI",
8 | platforms: [.iOS(.v13)],
9 | products: [
10 | // Products define the executables and libraries produced by a package, and make them visible to other packages.
11 | .library(
12 | name: "LazyViewSwiftUI",
13 | targets: ["LazyViewSwiftUI"]),
14 | ],
15 | dependencies: [
16 | // Dependencies declare other packages that this package depends on.
17 | // .package(url: /* package url */, from: "1.0.0"),
18 | ],
19 | targets: [
20 | // Targets are the basic building blocks of a package. A target can define a module or a test suite.
21 | // Targets can depend on other targets in this package, and on products in packages which this package depends on.
22 | .target(
23 | name: "LazyViewSwiftUI",
24 | path: "Source"),
25 | ]
26 | )
27 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Lazy View SwiftUI
2 |
3 | I came up with this solution independently while working on a project. After some more Googling, I found others had come across the same bug and solved it. I am using this as an opportunity to try my first CocoaPod and SwiftPackage.
4 |
5 | ## Why Lazy Load a SwiftUI View?
6 |
7 | The primary problem is with `NavigationLink`. The destination view given will be immediately instantiated and loaded--before the user even navigates to the details page. This is a problem for large details pages that you don't want to have immediately loaded with the previous screen.
8 |
9 | ## Example project:
10 |
11 | To run the example project, clone the repo, and run `pod install` from the Example directory first.
12 |
13 | ## Example usage:
14 |
15 | ```swift
16 | struct ContentView: View {
17 | var body: some View {
18 | NavigationView {
19 | NavigationLink(destination: LazyView(Text("My details page"))) {
20 | Text("Go to details")
21 | }
22 | }
23 | }
24 | }
25 | ```
26 |
27 | ## Installation
28 |
29 | ### CocoaPods
30 |
31 | LazyViewSwiftUI is available through [CocoaPods](https://cocoapods.org). To install
32 | it, simply add the following line to your Podfile:
33 |
34 | ```ruby
35 | pod 'LazyViewSwiftUI'
36 | ```
37 |
38 | ### SPM
39 |
40 | LazyViewSwiftUI is also available through [Swift Package Manager](https://swift.org/package-manager/).
41 |
42 | Once you have your Swift package set up, adding LazyViewSwiftUI as a dependency is as easy as adding it to the dependencies value of your Package.swift.
43 |
44 | dependencies: [
45 | .package(url: "https://github.com/joehinkle11/Lazy-View-SwiftUI")
46 | ]
47 |
48 | ## Sources
49 |
50 | - https://medium.com/better-programming/swiftui-navigation-links-and-the-common-pitfalls-faced-505cbfd8029b
51 | - https://gist.github.com/chriseidhof/d2fcafb53843df343fe07f3c0dac41d5
52 | - https://twitter.com/chriseidhof/status/1144242544680849410?lang=en
53 |
--------------------------------------------------------------------------------
/Source/LazyView.swift:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | LazyView.swift
4 |
5 |
6 | Author: Joe Hinkle
7 | Date: Jan 6, 2020
8 |
9 |
10 | Notes: I came up with this solution independently while working on a project. After some more Googling, I found others had come across the same bug and solved it. I am using this as an opportunity to try my first CocoaPod and SwiftPackage.
11 |
12 |
13 | Sources:
14 | - https://medium.com/better-programming/swiftui-navigation-links-and-the-common-pitfalls-faced-505cbfd8029b
15 | - https://gist.github.com/chriseidhof/d2fcafb53843df343fe07f3c0dac41d5
16 | - https://twitter.com/chriseidhof/status/1144242544680849410?lang=en
17 |
18 |
19 | Example usage:
20 | struct ContentView: View {
21 | var body: some View {
22 | NavigationView {
23 | NavigationLink(destination: LazyView(Text("My details page")) {
24 | Text("Go to details")
25 | }
26 | }
27 | }
28 | }
29 | */
30 |
31 | import SwiftUI
32 |
33 | public struct LazyView: View {
34 | private let build: () -> Content
35 | public init(_ build: @autoclosure @escaping () -> Content) {
36 | self.build = build
37 | }
38 | public var body: Content {
39 | build()
40 | }
41 | }
42 |
--------------------------------------------------------------------------------