Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

프로젝트 매니저 [STEP 2-1] maxhyunm #305

Open
wants to merge 20 commits into
base: ic_9_maxhyunm
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
209 changes: 201 additions & 8 deletions ProjectManager/ProjectManager.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,52 @@
BA6463102AB94FA10080E80D /* FirebaseFirestore in Frameworks */ = {isa = PBXBuildFile; productRef = BA64630F2AB94FA10080E80D /* FirebaseFirestore */; };
BA6463122AB94FA10080E80D /* FirebaseFirestoreCombine-Community in Frameworks */ = {isa = PBXBuildFile; productRef = BA6463112AB94FA10080E80D /* FirebaseFirestoreCombine-Community */; };
BA6463142AB94FA10080E80D /* FirebaseFirestoreSwift in Frameworks */ = {isa = PBXBuildFile; productRef = BA6463132AB94FA10080E80D /* FirebaseFirestoreSwift */; };
BA6463582AC042A90080E80D /* ToDo.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = BA6463562AC042A90080E80D /* ToDo.xcdatamodeld */; };
BA64635F2AC043680080E80D /* ToDo+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA64635D2AC043680080E80D /* ToDo+CoreDataClass.swift */; };
BA6463602AC043680080E80D /* ToDo+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA64635E2AC043680080E80D /* ToDo+CoreDataProperties.swift */; };
BA6463642AC043F50080E80D /* CoreDataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA6463632AC043F50080E80D /* CoreDataManager.swift */; };
BA6463662AC0440E0080E80D /* CoreDataError.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA6463652AC0440E0080E80D /* CoreDataError.swift */; };
BA6463682AC044D70080E80D /* ToDoStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA6463672AC044D70080E80D /* ToDoStatus.swift */; };
BA64636A2AC045380080E80D /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA6463692AC045380080E80D /* Observable.swift */; };
BA64636D2AC045700080E80D /* ViewModelType.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA64636C2AC045700080E80D /* ViewModelType.swift */; };
BA64636F2AC04A700080E80D /* ToDoListBaseViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA64636E2AC04A700080E80D /* ToDoListBaseViewModel.swift */; };
BA6463752AC04F920080E80D /* ToDoListHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA6463742AC04F920080E80D /* ToDoListHeaderView.swift */; };
BA6463782AC04FE40080E80D /* AlertBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA6463772AC04FE40080E80D /* AlertBuilder.swift */; };
BA64637A2AC050AD0080E80D /* ToDoListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA6463792AC050AD0080E80D /* ToDoListTableViewCell.swift */; };
BA64637D2AC26F490080E80D /* ToDoListChildViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA64637C2AC26F490080E80D /* ToDoListChildViewController.swift */; };
BA64637F2AC283F70080E80D /* ToDoListChildViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA64637E2AC283F70080E80D /* ToDoListChildViewModel.swift */; };
BA6463812AC289680080E80D /* KeywordArgument.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA6463802AC289680080E80D /* KeywordArgument.swift */; };
BAD471D62ACBA2CB0021323A /* ToDoListBaseViewModelDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAD471D52ACBA2CB0021323A /* ToDoListBaseViewModelDelegate.swift */; };
BAD471D82ACBA4820021323A /* Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAD471D72ACBA4820021323A /* Action.swift */; };
C7431F0625F51E1D0094C4CF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7431F0525F51E1D0094C4CF /* AppDelegate.swift */; };
C7431F0825F51E1D0094C4CF /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7431F0725F51E1D0094C4CF /* SceneDelegate.swift */; };
C7431F0A25F51E1D0094C4CF /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7431F0925F51E1D0094C4CF /* ViewController.swift */; };
C7431F0A25F51E1D0094C4CF /* ToDoListBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7431F0925F51E1D0094C4CF /* ToDoListBaseViewController.swift */; };
C7431F0F25F51E1E0094C4CF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C7431F0E25F51E1E0094C4CF /* Assets.xcassets */; };
C7431F1225F51E1E0094C4CF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C7431F1025F51E1E0094C4CF /* LaunchScreen.storyboard */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
BA6463572AC042A90080E80D /* ToDo.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = ToDo.xcdatamodel; sourceTree = "<group>"; };
BA64635D2AC043680080E80D /* ToDo+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ToDo+CoreDataClass.swift"; sourceTree = "<group>"; };
BA64635E2AC043680080E80D /* ToDo+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ToDo+CoreDataProperties.swift"; sourceTree = "<group>"; };
BA6463632AC043F50080E80D /* CoreDataManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataManager.swift; sourceTree = "<group>"; };
BA6463652AC0440E0080E80D /* CoreDataError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataError.swift; sourceTree = "<group>"; };
BA6463672AC044D70080E80D /* ToDoStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToDoStatus.swift; sourceTree = "<group>"; };
BA6463692AC045380080E80D /* Observable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = "<group>"; };
BA64636C2AC045700080E80D /* ViewModelType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewModelType.swift; sourceTree = "<group>"; };
BA64636E2AC04A700080E80D /* ToDoListBaseViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToDoListBaseViewModel.swift; sourceTree = "<group>"; };
BA6463742AC04F920080E80D /* ToDoListHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToDoListHeaderView.swift; sourceTree = "<group>"; };
BA6463772AC04FE40080E80D /* AlertBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertBuilder.swift; sourceTree = "<group>"; };
BA6463792AC050AD0080E80D /* ToDoListTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToDoListTableViewCell.swift; sourceTree = "<group>"; };
BA64637C2AC26F490080E80D /* ToDoListChildViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToDoListChildViewController.swift; sourceTree = "<group>"; };
BA64637E2AC283F70080E80D /* ToDoListChildViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToDoListChildViewModel.swift; sourceTree = "<group>"; };
BA6463802AC289680080E80D /* KeywordArgument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeywordArgument.swift; sourceTree = "<group>"; };
BAD471D52ACBA2CB0021323A /* ToDoListBaseViewModelDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToDoListBaseViewModelDelegate.swift; sourceTree = "<group>"; };
BAD471D72ACBA4820021323A /* Action.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Action.swift; sourceTree = "<group>"; };
C7431F0225F51E1D0094C4CF /* ProjectManager.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ProjectManager.app; sourceTree = BUILT_PRODUCTS_DIR; };
C7431F0525F51E1D0094C4CF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
C7431F0725F51E1D0094C4CF /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
C7431F0925F51E1D0094C4CF /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
C7431F0925F51E1D0094C4CF /* ToDoListBaseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToDoListBaseViewController.swift; sourceTree = "<group>"; };
C7431F0E25F51E1E0094C4CF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
C7431F1125F51E1E0094C4CF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
C7431F1325F51E1E0094C4CF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
Expand All @@ -45,6 +79,134 @@
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
BA6463612AC043CE0080E80D /* Entity */ = {
isa = PBXGroup;
children = (
BA6463622AC043D30080E80D /* CoreData */,
);
path = Entity;
sourceTree = "<group>";
};
BA6463622AC043D30080E80D /* CoreData */ = {
isa = PBXGroup;
children = (
BA64635D2AC043680080E80D /* ToDo+CoreDataClass.swift */,
BA64635E2AC043680080E80D /* ToDo+CoreDataProperties.swift */,
);
path = CoreData;
sourceTree = "<group>";
};
BA6463702AC04AAB0080E80D /* ListView */ = {
isa = PBXGroup;
children = (
BA64637B2AC0613D0080E80D /* Cell */,
BA6463822AC29D180080E80D /* BaseView */,
BA6463832AC29D1D0080E80D /* ChildView */,
);
path = ListView;
sourceTree = "<group>";
};
BA6463712AC04AC50080E80D /* App */ = {
isa = PBXGroup;
children = (
C7431F0525F51E1D0094C4CF /* AppDelegate.swift */,
C7431F0725F51E1D0094C4CF /* SceneDelegate.swift */,
);
path = App;
sourceTree = "<group>";
};
BA6463762AC04FDA0080E80D /* Builder */ = {
isa = PBXGroup;
children = (
BA6463772AC04FE40080E80D /* AlertBuilder.swift */,
);
path = Builder;
sourceTree = "<group>";
};
BA64637B2AC0613D0080E80D /* Cell */ = {
isa = PBXGroup;
children = (
BA6463742AC04F920080E80D /* ToDoListHeaderView.swift */,
BA6463792AC050AD0080E80D /* ToDoListTableViewCell.swift */,
);
path = Cell;
sourceTree = "<group>";
};
BA6463822AC29D180080E80D /* BaseView */ = {
isa = PBXGroup;
children = (
BA64636E2AC04A700080E80D /* ToDoListBaseViewModel.swift */,
C7431F0925F51E1D0094C4CF /* ToDoListBaseViewController.swift */,
);
path = BaseView;
sourceTree = "<group>";
};
BA6463832AC29D1D0080E80D /* ChildView */ = {
isa = PBXGroup;
children = (
BA64637E2AC283F70080E80D /* ToDoListChildViewModel.swift */,
BA64637C2AC26F490080E80D /* ToDoListChildViewController.swift */,
);
path = ChildView;
sourceTree = "<group>";
};
BA6463842AC2A3610080E80D /* View */ = {
isa = PBXGroup;
children = (
BA6463702AC04AAB0080E80D /* ListView */,
);
path = View;
sourceTree = "<group>";
};
BAD471D42ACBA2B80021323A /* Protocol */ = {
isa = PBXGroup;
children = (
BA64636C2AC045700080E80D /* ViewModelType.swift */,
BAD471D52ACBA2CB0021323A /* ToDoListBaseViewModelDelegate.swift */,
);
path = Protocol;
sourceTree = "<group>";
};
BAD471D92ACBC3A80021323A /* Utility */ = {
isa = PBXGroup;
children = (
BAD471D42ACBA2B80021323A /* Protocol */,
BA6463762AC04FDA0080E80D /* Builder */,
BAD471DD2ACBC5220021323A /* Manager */,
BAD471DC2ACBC5080021323A /* Error */,
BA6463672AC044D70080E80D /* ToDoStatus.swift */,
BA6463692AC045380080E80D /* Observable.swift */,
BA6463802AC289680080E80D /* KeywordArgument.swift */,
BAD471D72ACBA4820021323A /* Action.swift */,
);
path = Utility;
sourceTree = "<group>";
};
BAD471DA2ACBC4550021323A /* Resource */ = {
isa = PBXGroup;
children = (
C7431F1025F51E1E0094C4CF /* LaunchScreen.storyboard */,
C7431F0E25F51E1E0094C4CF /* Assets.xcassets */,
);
path = Resource;
sourceTree = "<group>";
};
BAD471DC2ACBC5080021323A /* Error */ = {
isa = PBXGroup;
children = (
BA6463652AC0440E0080E80D /* CoreDataError.swift */,
);
path = Error;
sourceTree = "<group>";
};
BAD471DD2ACBC5220021323A /* Manager */ = {
isa = PBXGroup;
children = (
BA6463632AC043F50080E80D /* CoreDataManager.swift */,
);
path = Manager;
sourceTree = "<group>";
};
C7431EF925F51E1D0094C4CF = {
isa = PBXGroup;
children = (
Expand All @@ -64,11 +226,12 @@
C7431F0425F51E1D0094C4CF /* ProjectManager */ = {
isa = PBXGroup;
children = (
C7431F0525F51E1D0094C4CF /* AppDelegate.swift */,
C7431F0725F51E1D0094C4CF /* SceneDelegate.swift */,
C7431F0925F51E1D0094C4CF /* ViewController.swift */,
C7431F0E25F51E1E0094C4CF /* Assets.xcassets */,
C7431F1025F51E1E0094C4CF /* LaunchScreen.storyboard */,
BA6463712AC04AC50080E80D /* App */,
BA6463612AC043CE0080E80D /* Entity */,
BAD471D92ACBC3A80021323A /* Utility */,
BA6463842AC2A3610080E80D /* View */,
BAD471DA2ACBC4550021323A /* Resource */,
BA6463562AC042A90080E80D /* ToDo.xcdatamodeld */,
C7431F1325F51E1E0094C4CF /* Info.plist */,
);
path = ProjectManager;
Expand Down Expand Up @@ -153,9 +316,26 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C7431F0A25F51E1D0094C4CF /* ViewController.swift in Sources */,
BA64637F2AC283F70080E80D /* ToDoListChildViewModel.swift in Sources */,
BA6463812AC289680080E80D /* KeywordArgument.swift in Sources */,
C7431F0A25F51E1D0094C4CF /* ToDoListBaseViewController.swift in Sources */,
BA64637A2AC050AD0080E80D /* ToDoListTableViewCell.swift in Sources */,
C7431F0625F51E1D0094C4CF /* AppDelegate.swift in Sources */,
C7431F0825F51E1D0094C4CF /* SceneDelegate.swift in Sources */,
BA6463752AC04F920080E80D /* ToDoListHeaderView.swift in Sources */,
BA64636D2AC045700080E80D /* ViewModelType.swift in Sources */,
BA64636F2AC04A700080E80D /* ToDoListBaseViewModel.swift in Sources */,
BA6463662AC0440E0080E80D /* CoreDataError.swift in Sources */,
BA6463602AC043680080E80D /* ToDo+CoreDataProperties.swift in Sources */,
BAD471D62ACBA2CB0021323A /* ToDoListBaseViewModelDelegate.swift in Sources */,
BA6463682AC044D70080E80D /* ToDoStatus.swift in Sources */,
BAD471D82ACBA4820021323A /* Action.swift in Sources */,
BA6463782AC04FE40080E80D /* AlertBuilder.swift in Sources */,
BA64636A2AC045380080E80D /* Observable.swift in Sources */,
BA64635F2AC043680080E80D /* ToDo+CoreDataClass.swift in Sources */,
BA6463642AC043F50080E80D /* CoreDataManager.swift in Sources */,
BA64637D2AC26F490080E80D /* ToDoListChildViewController.swift in Sources */,
BA6463582AC042A90080E80D /* ToDo.xcdatamodeld in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -388,6 +568,19 @@
productName = FirebaseFirestoreSwift;
};
/* End XCSwiftPackageProductDependency section */

/* Begin XCVersionGroup section */
BA6463562AC042A90080E80D /* ToDo.xcdatamodeld */ = {
isa = XCVersionGroup;
children = (
BA6463572AC042A90080E80D /* ToDo.xcdatamodel */,
);
currentVersion = BA6463572AC042A90080E80D /* ToDo.xcdatamodel */;
path = ToDo.xcdatamodeld;
sourceTree = "<group>";
versionGroupType = wrapper.xcdatamodel;
};
/* End XCVersionGroup section */
};
rootObject = C7431EFA25F51E1D0094C4CF /* Project object */;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "C7431F0125F51E1D0094C4CF"
BuildableName = "ProjectManager.app"
BlueprintName = "ProjectManager"
ReferencedContainer = "container:ProjectManager.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "C7431F0125F51E1D0094C4CF"
BuildableName = "ProjectManager.app"
BlueprintName = "ProjectManager"
ReferencedContainer = "container:ProjectManager.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "C7431F0125F51E1D0094C4CF"
BuildableName = "ProjectManager.app"
BlueprintName = "ProjectManager"
ReferencedContainer = "container:ProjectManager.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// ProjectManager - AppDelegate.swift
// Created by yagom.
// Copyright © yagom. All rights reserved.
//
// Last modified by Max.

import UIKit

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// ProjectManager - SceneDelegate.swift
// Created by yagom.
// Copyright © yagom. All rights reserved.
//
// Last modified by Max.

import UIKit

Expand All @@ -13,9 +13,13 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }

window = UIWindow(windowScene: windowScene)
window?.rootViewController = ViewController()
let coreDataManager = CoreDataManager()
let toDoViewModel = ToDoListBaseViewModel(dataManager: coreDataManager)
let baseViewController = ToDoListBaseViewController(toDoViewModel)
let navigationViewController = UINavigationController(rootViewController: baseViewController)
window?.rootViewController = navigationViewController
window?.makeKeyAndVisible()
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//
// ToDo+CoreDataClass.swift
// ProjectManager
//
// Created by Max on 2023/09/24.
//
//

import Foundation
import CoreData

@objc(ToDo)
public class ToDo: NSManagedObject {

}
Loading