Skip to content

Commit b6e0287

Browse files
Initial commit
0 parents  commit b6e0287

File tree

14 files changed

+721
-0
lines changed

14 files changed

+721
-0
lines changed

README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
![App Brewery Banner](https://github.com/londonappbrewery/Images/blob/master/AppBreweryBanner.png)
2+
3+
4+
# Todoey ✓
5+
6+
## Our Goal
7+
8+
The objective of this tutorial is to understand how to save data in iOS. We'll look at various choices and learn to use UserDefaults, Core Data and Realm.
9+
10+
11+
## What you will create
12+
13+
A todolist app to keep track of all your tasks.
14+
15+
16+
>This is a companion project to The App Brewery's Complete iOS Development Bootcamp, check out the full course at [www.appbrewery.co](https://www.appbrewery.co/)
17+
18+
![End Banner](https://github.com/londonappbrewery/Images/blob/master/readme-end-banner.png)
19+

Todoey.xcodeproj/project.pbxproj

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

Todoey.xcodeproj/project.xcworkspace/contents.xcworkspacedata

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

0 commit comments

Comments
 (0)