Skip to content

Commit bc5ece3

Browse files
committed
Added MVVM Closures
1 parent 77acac5 commit bc5ece3

File tree

15 files changed

+915
-0
lines changed

15 files changed

+915
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,383 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 50;
7+
objects = {
8+
9+
/* Begin PBXBuildFile section */
10+
D217917C21FD22E60019D974 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D217917B21FD22E60019D974 /* AppDelegate.swift */; };
11+
D217918321FD22E80019D974 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D217918221FD22E80019D974 /* Assets.xcassets */; };
12+
D217918621FD22E80019D974 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D217918421FD22E80019D974 /* LaunchScreen.storyboard */; };
13+
D21791AC21FD234B0019D974 /* ReposViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21791AB21FD234B0019D974 /* ReposViewController.swift */; };
14+
D21791AE21FD23510019D974 /* ReposViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21791AD21FD23510019D974 /* ReposViewModel.swift */; };
15+
D21791B121FD235F0019D974 /* NetworkingApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21791B021FD235F0019D974 /* NetworkingApi.swift */; };
16+
D21791B421FD23E30019D974 /* Repo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21791B321FD23E30019D974 /* Repo.swift */; };
17+
D21791B721FD39F20019D974 /* Throttle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21791B621FD39F20019D974 /* Throttle.swift */; };
18+
/* End PBXBuildFile section */
19+
20+
/* Begin PBXFileReference section */
21+
D217917821FD22E60019D974 /* MVVMClosures.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MVVMClosures.app; sourceTree = BUILT_PRODUCTS_DIR; };
22+
D217917B21FD22E60019D974 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
23+
D217918221FD22E80019D974 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
24+
D217918521FD22E80019D974 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
25+
D217918721FD22E80019D974 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
26+
D21791AB21FD234B0019D974 /* ReposViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReposViewController.swift; sourceTree = "<group>"; };
27+
D21791AD21FD23510019D974 /* ReposViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReposViewModel.swift; sourceTree = "<group>"; };
28+
D21791B021FD235F0019D974 /* NetworkingApi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkingApi.swift; sourceTree = "<group>"; };
29+
D21791B321FD23E30019D974 /* Repo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Repo.swift; sourceTree = "<group>"; };
30+
D21791B621FD39F20019D974 /* Throttle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Throttle.swift; sourceTree = "<group>"; };
31+
/* End PBXFileReference section */
32+
33+
/* Begin PBXFrameworksBuildPhase section */
34+
D217917521FD22E60019D974 /* Frameworks */ = {
35+
isa = PBXFrameworksBuildPhase;
36+
buildActionMask = 2147483647;
37+
files = (
38+
);
39+
runOnlyForDeploymentPostprocessing = 0;
40+
};
41+
/* End PBXFrameworksBuildPhase section */
42+
43+
/* Begin PBXGroup section */
44+
D217916F21FD22E60019D974 = {
45+
isa = PBXGroup;
46+
children = (
47+
D217917A21FD22E60019D974 /* MVVMClosures */,
48+
D217917921FD22E60019D974 /* Products */,
49+
);
50+
sourceTree = "<group>";
51+
};
52+
D217917921FD22E60019D974 /* Products */ = {
53+
isa = PBXGroup;
54+
children = (
55+
D217917821FD22E60019D974 /* MVVMClosures.app */,
56+
);
57+
name = Products;
58+
sourceTree = "<group>";
59+
};
60+
D217917A21FD22E60019D974 /* MVVMClosures */ = {
61+
isa = PBXGroup;
62+
children = (
63+
D21791A921FD23130019D974 /* App */,
64+
D217918221FD22E80019D974 /* Assets.xcassets */,
65+
D217918421FD22E80019D974 /* LaunchScreen.storyboard */,
66+
D217918721FD22E80019D974 /* Info.plist */,
67+
);
68+
path = MVVMClosures;
69+
sourceTree = "<group>";
70+
};
71+
D21791A921FD23130019D974 /* App */ = {
72+
isa = PBXGroup;
73+
children = (
74+
D217917B21FD22E60019D974 /* AppDelegate.swift */,
75+
D21791B521FD39E70019D974 /* Utils */,
76+
D21791B221FD23DB0019D974 /* Models */,
77+
D21791AF21FD23560019D974 /* Networking */,
78+
D21791AA21FD23410019D974 /* ReposScene */,
79+
);
80+
path = App;
81+
sourceTree = "<group>";
82+
};
83+
D21791AA21FD23410019D974 /* ReposScene */ = {
84+
isa = PBXGroup;
85+
children = (
86+
D21791AB21FD234B0019D974 /* ReposViewController.swift */,
87+
D21791AD21FD23510019D974 /* ReposViewModel.swift */,
88+
);
89+
path = ReposScene;
90+
sourceTree = "<group>";
91+
};
92+
D21791AF21FD23560019D974 /* Networking */ = {
93+
isa = PBXGroup;
94+
children = (
95+
D21791B021FD235F0019D974 /* NetworkingApi.swift */,
96+
);
97+
path = Networking;
98+
sourceTree = "<group>";
99+
};
100+
D21791B221FD23DB0019D974 /* Models */ = {
101+
isa = PBXGroup;
102+
children = (
103+
D21791B321FD23E30019D974 /* Repo.swift */,
104+
);
105+
path = Models;
106+
sourceTree = "<group>";
107+
};
108+
D21791B521FD39E70019D974 /* Utils */ = {
109+
isa = PBXGroup;
110+
children = (
111+
D21791B621FD39F20019D974 /* Throttle.swift */,
112+
);
113+
path = Utils;
114+
sourceTree = "<group>";
115+
};
116+
/* End PBXGroup section */
117+
118+
/* Begin PBXNativeTarget section */
119+
D217917721FD22E60019D974 /* MVVMClosures */ = {
120+
isa = PBXNativeTarget;
121+
buildConfigurationList = D21791A021FD22E80019D974 /* Build configuration list for PBXNativeTarget "MVVMClosures" */;
122+
buildPhases = (
123+
D217917421FD22E60019D974 /* Sources */,
124+
D217917521FD22E60019D974 /* Frameworks */,
125+
D217917621FD22E60019D974 /* Resources */,
126+
);
127+
buildRules = (
128+
);
129+
dependencies = (
130+
);
131+
name = MVVMClosures;
132+
productName = MVVMDelegates;
133+
productReference = D217917821FD22E60019D974 /* MVVMClosures.app */;
134+
productType = "com.apple.product-type.application";
135+
};
136+
/* End PBXNativeTarget section */
137+
138+
/* Begin PBXProject section */
139+
D217917021FD22E60019D974 /* Project object */ = {
140+
isa = PBXProject;
141+
attributes = {
142+
LastSwiftUpdateCheck = 1010;
143+
LastUpgradeCheck = 1010;
144+
ORGANIZATIONNAME = tailec;
145+
TargetAttributes = {
146+
D217917721FD22E60019D974 = {
147+
CreatedOnToolsVersion = 10.1;
148+
};
149+
};
150+
};
151+
buildConfigurationList = D217917321FD22E60019D974 /* Build configuration list for PBXProject "MVVMClosures" */;
152+
compatibilityVersion = "Xcode 9.3";
153+
developmentRegion = en;
154+
hasScannedForEncodings = 0;
155+
knownRegions = (
156+
en,
157+
Base,
158+
);
159+
mainGroup = D217916F21FD22E60019D974;
160+
productRefGroup = D217917921FD22E60019D974 /* Products */;
161+
projectDirPath = "";
162+
projectRoot = "";
163+
targets = (
164+
D217917721FD22E60019D974 /* MVVMClosures */,
165+
);
166+
};
167+
/* End PBXProject section */
168+
169+
/* Begin PBXResourcesBuildPhase section */
170+
D217917621FD22E60019D974 /* Resources */ = {
171+
isa = PBXResourcesBuildPhase;
172+
buildActionMask = 2147483647;
173+
files = (
174+
D217918621FD22E80019D974 /* LaunchScreen.storyboard in Resources */,
175+
D217918321FD22E80019D974 /* Assets.xcassets in Resources */,
176+
);
177+
runOnlyForDeploymentPostprocessing = 0;
178+
};
179+
/* End PBXResourcesBuildPhase section */
180+
181+
/* Begin PBXSourcesBuildPhase section */
182+
D217917421FD22E60019D974 /* Sources */ = {
183+
isa = PBXSourcesBuildPhase;
184+
buildActionMask = 2147483647;
185+
files = (
186+
D21791B121FD235F0019D974 /* NetworkingApi.swift in Sources */,
187+
D21791B721FD39F20019D974 /* Throttle.swift in Sources */,
188+
D21791AC21FD234B0019D974 /* ReposViewController.swift in Sources */,
189+
D21791B421FD23E30019D974 /* Repo.swift in Sources */,
190+
D217917C21FD22E60019D974 /* AppDelegate.swift in Sources */,
191+
D21791AE21FD23510019D974 /* ReposViewModel.swift in Sources */,
192+
);
193+
runOnlyForDeploymentPostprocessing = 0;
194+
};
195+
/* End PBXSourcesBuildPhase section */
196+
197+
/* Begin PBXVariantGroup section */
198+
D217918421FD22E80019D974 /* LaunchScreen.storyboard */ = {
199+
isa = PBXVariantGroup;
200+
children = (
201+
D217918521FD22E80019D974 /* Base */,
202+
);
203+
name = LaunchScreen.storyboard;
204+
sourceTree = "<group>";
205+
};
206+
/* End PBXVariantGroup section */
207+
208+
/* Begin XCBuildConfiguration section */
209+
D217919E21FD22E80019D974 /* Debug */ = {
210+
isa = XCBuildConfiguration;
211+
buildSettings = {
212+
ALWAYS_SEARCH_USER_PATHS = NO;
213+
CLANG_ANALYZER_NONNULL = YES;
214+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
215+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
216+
CLANG_CXX_LIBRARY = "libc++";
217+
CLANG_ENABLE_MODULES = YES;
218+
CLANG_ENABLE_OBJC_ARC = YES;
219+
CLANG_ENABLE_OBJC_WEAK = YES;
220+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
221+
CLANG_WARN_BOOL_CONVERSION = YES;
222+
CLANG_WARN_COMMA = YES;
223+
CLANG_WARN_CONSTANT_CONVERSION = YES;
224+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
225+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
226+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
227+
CLANG_WARN_EMPTY_BODY = YES;
228+
CLANG_WARN_ENUM_CONVERSION = YES;
229+
CLANG_WARN_INFINITE_RECURSION = YES;
230+
CLANG_WARN_INT_CONVERSION = YES;
231+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
232+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
233+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
234+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
235+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
236+
CLANG_WARN_STRICT_PROTOTYPES = YES;
237+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
238+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
239+
CLANG_WARN_UNREACHABLE_CODE = YES;
240+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
241+
CODE_SIGN_IDENTITY = "iPhone Developer";
242+
COPY_PHASE_STRIP = NO;
243+
DEBUG_INFORMATION_FORMAT = dwarf;
244+
ENABLE_STRICT_OBJC_MSGSEND = YES;
245+
ENABLE_TESTABILITY = YES;
246+
GCC_C_LANGUAGE_STANDARD = gnu11;
247+
GCC_DYNAMIC_NO_PIC = NO;
248+
GCC_NO_COMMON_BLOCKS = YES;
249+
GCC_OPTIMIZATION_LEVEL = 0;
250+
GCC_PREPROCESSOR_DEFINITIONS = (
251+
"DEBUG=1",
252+
"$(inherited)",
253+
);
254+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
255+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
256+
GCC_WARN_UNDECLARED_SELECTOR = YES;
257+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
258+
GCC_WARN_UNUSED_FUNCTION = YES;
259+
GCC_WARN_UNUSED_VARIABLE = YES;
260+
IPHONEOS_DEPLOYMENT_TARGET = 12.1;
261+
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
262+
MTL_FAST_MATH = YES;
263+
ONLY_ACTIVE_ARCH = YES;
264+
SDKROOT = iphoneos;
265+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
266+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
267+
};
268+
name = Debug;
269+
};
270+
D217919F21FD22E80019D974 /* Release */ = {
271+
isa = XCBuildConfiguration;
272+
buildSettings = {
273+
ALWAYS_SEARCH_USER_PATHS = NO;
274+
CLANG_ANALYZER_NONNULL = YES;
275+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
276+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
277+
CLANG_CXX_LIBRARY = "libc++";
278+
CLANG_ENABLE_MODULES = YES;
279+
CLANG_ENABLE_OBJC_ARC = YES;
280+
CLANG_ENABLE_OBJC_WEAK = YES;
281+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
282+
CLANG_WARN_BOOL_CONVERSION = YES;
283+
CLANG_WARN_COMMA = YES;
284+
CLANG_WARN_CONSTANT_CONVERSION = YES;
285+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
286+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
287+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
288+
CLANG_WARN_EMPTY_BODY = YES;
289+
CLANG_WARN_ENUM_CONVERSION = YES;
290+
CLANG_WARN_INFINITE_RECURSION = YES;
291+
CLANG_WARN_INT_CONVERSION = YES;
292+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
293+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
294+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
295+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
296+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
297+
CLANG_WARN_STRICT_PROTOTYPES = YES;
298+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
299+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
300+
CLANG_WARN_UNREACHABLE_CODE = YES;
301+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
302+
CODE_SIGN_IDENTITY = "iPhone Developer";
303+
COPY_PHASE_STRIP = NO;
304+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
305+
ENABLE_NS_ASSERTIONS = NO;
306+
ENABLE_STRICT_OBJC_MSGSEND = YES;
307+
GCC_C_LANGUAGE_STANDARD = gnu11;
308+
GCC_NO_COMMON_BLOCKS = YES;
309+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
310+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
311+
GCC_WARN_UNDECLARED_SELECTOR = YES;
312+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
313+
GCC_WARN_UNUSED_FUNCTION = YES;
314+
GCC_WARN_UNUSED_VARIABLE = YES;
315+
IPHONEOS_DEPLOYMENT_TARGET = 12.1;
316+
MTL_ENABLE_DEBUG_INFO = NO;
317+
MTL_FAST_MATH = YES;
318+
SDKROOT = iphoneos;
319+
SWIFT_COMPILATION_MODE = wholemodule;
320+
SWIFT_OPTIMIZATION_LEVEL = "-O";
321+
VALIDATE_PRODUCT = YES;
322+
};
323+
name = Release;
324+
};
325+
D21791A121FD22E80019D974 /* Debug */ = {
326+
isa = XCBuildConfiguration;
327+
buildSettings = {
328+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
329+
CODE_SIGN_STYLE = Automatic;
330+
INFOPLIST_FILE = MVVMDelegates/Info.plist;
331+
LD_RUNPATH_SEARCH_PATHS = (
332+
"$(inherited)",
333+
"@executable_path/Frameworks",
334+
);
335+
PRODUCT_BUNDLE_IDENTIFIER = tailec.MVVMClosures;
336+
PRODUCT_NAME = "$(TARGET_NAME)";
337+
SWIFT_VERSION = 4.2;
338+
TARGETED_DEVICE_FAMILY = "1,2";
339+
};
340+
name = Debug;
341+
};
342+
D21791A221FD22E80019D974 /* Release */ = {
343+
isa = XCBuildConfiguration;
344+
buildSettings = {
345+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
346+
CODE_SIGN_STYLE = Automatic;
347+
INFOPLIST_FILE = MVVMDelegates/Info.plist;
348+
LD_RUNPATH_SEARCH_PATHS = (
349+
"$(inherited)",
350+
"@executable_path/Frameworks",
351+
);
352+
PRODUCT_BUNDLE_IDENTIFIER = tailec.MVVMClosures;
353+
PRODUCT_NAME = "$(TARGET_NAME)";
354+
SWIFT_VERSION = 4.2;
355+
TARGETED_DEVICE_FAMILY = "1,2";
356+
};
357+
name = Release;
358+
};
359+
/* End XCBuildConfiguration section */
360+
361+
/* Begin XCConfigurationList section */
362+
D217917321FD22E60019D974 /* Build configuration list for PBXProject "MVVMClosures" */ = {
363+
isa = XCConfigurationList;
364+
buildConfigurations = (
365+
D217919E21FD22E80019D974 /* Debug */,
366+
D217919F21FD22E80019D974 /* Release */,
367+
);
368+
defaultConfigurationIsVisible = 0;
369+
defaultConfigurationName = Release;
370+
};
371+
D21791A021FD22E80019D974 /* Build configuration list for PBXNativeTarget "MVVMClosures" */ = {
372+
isa = XCConfigurationList;
373+
buildConfigurations = (
374+
D21791A121FD22E80019D974 /* Debug */,
375+
D21791A221FD22E80019D974 /* Release */,
376+
);
377+
defaultConfigurationIsVisible = 0;
378+
defaultConfigurationName = Release;
379+
};
380+
/* End XCConfigurationList section */
381+
};
382+
rootObject = D217917021FD22E60019D974 /* Project object */;
383+
}

mvvm-closures/MVVMClosures.xcodeproj/project.xcworkspace/contents.xcworkspacedata

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)