Skip to content

Commit 439d9ff

Browse files
authored
Merge pull request #303 from boostcampwm-2021/develop
6์ฃผ์ฐจ ์ฝ”๋“œ ํ”„๋ฆฌ์ง•
2 parents f6bc5b8 + e1631d7 commit 439d9ff

File tree

96 files changed

+2245
-1262
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+2245
-1262
lines changed

Diff for: โ€ŽWithBuddy.xcodeproj/project.pbxproj

+12-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
/* Begin PBXBuildFile section */
1010
8521BE3C27437BC4000F3C05 /* UIView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E8AC37273CD428005F8306 /* UIView+Extension.swift */; };
1111
8521BE3D2743C492000F3C05 /* CalendarViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E8ABBD273A8D43005F8306 /* CalendarViewModel.swift */; };
12+
85456A2E2754C697006AFFF2 /* BubbleDescriptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85456A2D2754C696006AFFF2 /* BubbleDescriptionView.swift */; };
1213
8549E0AF274A390300C2F9AD /* Int+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8549E0AE274A390300C2F9AD /* Int+Extension.swift */; };
1314
854AA75E27337A7200663911 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 854AA75D27337A7200663911 /* SearchView.swift */; };
1415
854AA76427338C2F00663911 /* ListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 854AA76327338C2F00663911 /* ListTableViewCell.swift */; };
@@ -20,6 +21,7 @@
2021
85624745274F5DC70041E927 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85624744274F5DC70041E927 /* String+Extension.swift */; };
2122
85624746274F5DCA0041E927 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85624744274F5DC70041E927 /* String+Extension.swift */; };
2223
85624748274F6B3B0041E927 /* UIImage+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85624747274F6B3B0041E927 /* UIImage+Extension.swift */; };
24+
8562474A274F84F40041E927 /* UIColor+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85624749274F84F40041E927 /* UIColor+Extension.swift */; };
2325
85BC8E14274131F300570FC4 /* ChartViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85BC8E13274131F300570FC4 /* ChartViewModel.swift */; };
2426
85D262E8273CD703000190B8 /* PurposeChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85D262E7273CD703000190B8 /* PurposeChartView.swift */; };
2527
85D262EA273CD71C000190B8 /* BubbleChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85D262E9273CD71C000190B8 /* BubbleChartView.swift */; };
@@ -47,6 +49,7 @@
4749
8A73D679273A61EC001D5184 /* BuddyChoiceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A73D678273A61EC001D5184 /* BuddyChoiceViewController.swift */; };
4850
8A73D67E273A6C4B001D5184 /* BuddyChoiceViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A73D67D273A6C4B001D5184 /* BuddyChoiceViewModel.swift */; };
4951
8A8EA0C8274CAF4100F1BDFD /* UserUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A8EA0C7274CAF4100F1BDFD /* UserUseCase.swift */; };
52+
8A97318E2756273E00B18D0B /* PictureUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A97318D2756273E00B18D0B /* PictureUseCase.swift */; };
5053
8AD6691F2744D94B00158E1A /* BuddyCustomViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AD6691E2744D94B00158E1A /* BuddyCustomViewModel.swift */; };
5154
8AD669212744F12300158E1A /* ImageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AD669202744F12300158E1A /* ImageCollectionViewCell.swift */; };
5255
8AF3152727461A8800BDDF85 /* CheckableInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AF3152627461A8800BDDF85 /* CheckableInfo.swift */; };
@@ -71,7 +74,6 @@
7174
BBF7FF44272FC1B000B71C97 /* .swiftlint.yml in Resources */ = {isa = PBXBuildFile; fileRef = BBF7FF43272FC1B000B71C97 /* .swiftlint.yml */; };
7275
BBF7FF47272FC78100B71C97 /* Cafe24Ssurround.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BBF7FF46272FC78100B71C97 /* Cafe24Ssurround.ttf */; };
7376
BBF7FF49272FC78C00B71C97 /* Cafe24SsurroundAir.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BBF7FF48272FC78C00B71C97 /* Cafe24SsurroundAir.ttf */; };
74-
BBF7FF4C272FD7F200B71C97 /* withBuddyLaunchScreen.png in Resources */ = {isa = PBXBuildFile; fileRef = BBF7FF4B272FD7F200B71C97 /* withBuddyLaunchScreen.png */; };
7577
BBF8AFD5274E0831002479D4 /* SettingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBF8AFD4274E0831002479D4 /* SettingViewModel.swift */; };
7678
F78EE745274CDEB000948960 /* BuddyImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F78EE744274CDEB000948960 /* BuddyImageView.swift */; };
7779
F78EE747274CDF0700948960 /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F78EE746274CDF0700948960 /* LoadingView.swift */; };
@@ -119,13 +121,15 @@
119121
/* End PBXCopyFilesBuildPhase section */
120122

121123
/* Begin PBXFileReference section */
124+
85456A2D2754C696006AFFF2 /* BubbleDescriptionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BubbleDescriptionView.swift; sourceTree = "<group>"; };
122125
8549E0AE274A390300C2F9AD /* Int+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+Extension.swift"; sourceTree = "<group>"; };
123126
854AA75D27337A7200663911 /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = "<group>"; };
124127
854AA76327338C2F00663911 /* ListTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListTableViewCell.swift; sourceTree = "<group>"; };
125128
854AA7652733A37200663911 /* ListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListViewModel.swift; sourceTree = "<group>"; };
126129
8560CCB9274B8E0F0076F500 /* PurpleLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PurpleLabel.swift; sourceTree = "<group>"; };
127130
85624744274F5DC70041E927 /* String+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = "<group>"; };
128131
85624747274F6B3B0041E927 /* UIImage+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Extension.swift"; sourceTree = "<group>"; };
132+
85624749274F84F40041E927 /* UIColor+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Extension.swift"; sourceTree = "<group>"; };
129133
85BC8E13274131F300570FC4 /* ChartViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartViewModel.swift; sourceTree = "<group>"; };
130134
85C236B427380D39001499E5 /* FaceColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaceColor.swift; sourceTree = "<group>"; };
131135
85D262E7273CD703000190B8 /* PurposeChartView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PurposeChartView.swift; sourceTree = "<group>"; };
@@ -156,6 +160,7 @@
156160
8A73D678273A61EC001D5184 /* BuddyChoiceViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuddyChoiceViewController.swift; sourceTree = "<group>"; };
157161
8A73D67D273A6C4B001D5184 /* BuddyChoiceViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuddyChoiceViewModel.swift; sourceTree = "<group>"; };
158162
8A8EA0C7274CAF4100F1BDFD /* UserUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserUseCase.swift; sourceTree = "<group>"; };
163+
8A97318D2756273E00B18D0B /* PictureUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PictureUseCase.swift; sourceTree = "<group>"; };
159164
8AD6691E2744D94B00158E1A /* BuddyCustomViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuddyCustomViewModel.swift; sourceTree = "<group>"; };
160165
8AD669202744F12300158E1A /* ImageCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageCollectionViewCell.swift; sourceTree = "<group>"; };
161166
8AF3152627461A8800BDDF85 /* CheckableInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckableInfo.swift; sourceTree = "<group>"; };
@@ -188,7 +193,6 @@
188193
BBF7FF43272FC1B000B71C97 /* .swiftlint.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = .swiftlint.yml; sourceTree = "<group>"; };
189194
BBF7FF46272FC78100B71C97 /* Cafe24Ssurround.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Cafe24Ssurround.ttf; sourceTree = "<group>"; };
190195
BBF7FF48272FC78C00B71C97 /* Cafe24SsurroundAir.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Cafe24SsurroundAir.ttf; sourceTree = "<group>"; };
191-
BBF7FF4B272FD7F200B71C97 /* withBuddyLaunchScreen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = withBuddyLaunchScreen.png; sourceTree = "<group>"; };
192196
BBF8AFD4274E0831002479D4 /* SettingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingViewModel.swift; sourceTree = "<group>"; };
193197
F78EE744274CDEB000948960 /* BuddyImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuddyImageView.swift; sourceTree = "<group>"; };
194198
F78EE746274CDF0700948960 /* LoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingView.swift; sourceTree = "<group>"; };
@@ -261,6 +265,7 @@
261265
85D262EB273CDEBE000190B8 /* LatestOldChartView.swift */,
262266
85D262F3273CF211000190B8 /* PurposeView.swift */,
263267
85D262F5273CFEBF000190B8 /* LatestOldView.swift */,
268+
85456A2D2754C696006AFFF2 /* BubbleDescriptionView.swift */,
264269
85D262F7273D138E000190B8 /* DefaultView.swift */,
265270
);
266271
path = View;
@@ -282,6 +287,7 @@
282287
F7B69B89273398C4005D2F32 /* CalendarUseCase.swift */,
283288
BB1936D2274B8F50007EF21A /* PurposeUseCase.swift */,
284289
8A8EA0C7274CAF4100F1BDFD /* UserUseCase.swift */,
290+
8A97318D2756273E00B18D0B /* PictureUseCase.swift */,
285291
);
286292
path = UseCases;
287293
sourceTree = "<group>";
@@ -652,7 +658,6 @@
652658
isa = PBXGroup;
653659
children = (
654660
8A52C4F5273947E50025C562 /* defaultImage.png */,
655-
BBF7FF4B272FD7F200B71C97 /* withBuddyLaunchScreen.png */,
656661
BBF7FF45272FC75F00B71C97 /* Fonts */,
657662
);
658663
path = Resource;
@@ -737,6 +742,7 @@
737742
8549E0AE274A390300C2F9AD /* Int+Extension.swift */,
738743
85624744274F5DC70041E927 /* String+Extension.swift */,
739744
85624747274F6B3B0041E927 /* UIImage+Extension.swift */,
745+
85624749274F84F40041E927 /* UIColor+Extension.swift */,
740746
);
741747
path = Extension;
742748
sourceTree = "<group>";
@@ -836,7 +842,6 @@
836842
BBF7FF47272FC78100B71C97 /* Cafe24Ssurround.ttf in Resources */,
837843
BBF7FF49272FC78C00B71C97 /* Cafe24SsurroundAir.ttf in Resources */,
838844
BBF7FF32272FB51400B71C97 /* LaunchScreen.storyboard in Resources */,
839-
BBF7FF4C272FD7F200B71C97 /* withBuddyLaunchScreen.png in Resources */,
840845
8A52C4F6273947E50025C562 /* defaultImage.png in Resources */,
841846
BBF7FF2F272FB51400B71C97 /* Assets.xcassets in Resources */,
842847
);
@@ -888,6 +893,7 @@
888893
85D262EE273CE6DD000190B8 /* WhiteView.swift in Sources */,
889894
F7E8AC3E273CD4E6005F8306 /* ImageTextCollectionViewCell.swift in Sources */,
890895
85624745274F5DC70041E927 /* String+Extension.swift in Sources */,
896+
85456A2E2754C697006AFFF2 /* BubbleDescriptionView.swift in Sources */,
891897
85624748274F6B3B0041E927 /* UIImage+Extension.swift in Sources */,
892898
F7E8AC3C273CD4E2005F8306 /* AppDelegate.swift in Sources */,
893899
8AF3152927461EA600BDDF85 /* Face.swift in Sources */,
@@ -936,6 +942,7 @@
936942
854AA76427338C2F00663911 /* ListTableViewCell.swift in Sources */,
937943
F7E8ABC5273BB814005F8306 /* GatheringDetailViewController.swift in Sources */,
938944
8A07DF6A2743C20A008F6E58 /* GatheringEditViewController.swift in Sources */,
945+
8A97318E2756273E00B18D0B /* PictureUseCase.swift in Sources */,
939946
8A8EA0C8274CAF4100F1BDFD /* UserUseCase.swift in Sources */,
940947
BB2D25C2273B901600E7BF35 /* BuddyEntity+CoreDataClass.swift in Sources */,
941948
85D262F2273CE7D6000190B8 /* BlackTitleLabel.swift in Sources */,
@@ -947,6 +954,7 @@
947954
8A397A2C274B8AE80060443C /* UserCreateViewModel.swift in Sources */,
948955
BB2D258F2739299A00E7BF35 /* CoreDataManager.swift in Sources */,
949956
BB1936D3274B8F50007EF21A /* PurposeUseCase.swift in Sources */,
957+
8562474A274F84F40041E927 /* UIColor+Extension.swift in Sources */,
950958
BB2D25A5273A58A100E7BF35 /* GatheringUseCase.swift in Sources */,
951959
F78EE745274CDEB000948960 /* BuddyImageView.swift in Sources */,
952960
);

Diff for: โ€ŽWithBuddy/Application/AppDelegate.swift

+18-11
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,32 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
1717
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
1818
let center = UNUserNotificationCenter.current()
1919
center.delegate = self
20-
2120
return true
2221
}
2322

24-
// MARK: UISceneSession Lifecycle
23+
// MARK: - UISceneSession Lifecycle
2524
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
26-
// Called when a new scene session is being created.
27-
// Use this method to select a configuration to create the new scene with.
2825
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
2926
}
30-
31-
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
32-
// Called when the user discards a scene session.
33-
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
34-
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
35-
}
3627

3728
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
3829
completionHandler([.alert, .sound])
3930
}
31+
32+
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
33+
guard let window = (UIApplication.shared.connectedScenes.first?.delegate as? SceneDelegate)?.window,
34+
let id = UUID(uuidString: response.notification.request.identifier) else { return }
35+
36+
let tabBarController = TabBarViewController()
37+
tabBarController.selectedIndex = 3
38+
let navigationController = UINavigationController(rootViewController: tabBarController)
39+
let gatheringDetailViewController = GatheringDetailViewController()
40+
gatheringDetailViewController.id = id
41+
navigationController.pushViewController(gatheringDetailViewController, animated: true)
42+
window.rootViewController = navigationController
43+
window.makeKeyAndVisible()
44+
45+
completionHandler()
46+
}
47+
4048
}
41-
Loading
Loading
Loading

Diff for: โ€ŽWithBuddy/Application/Assets.xcassets/buddyFace.imageset/Contents.json renamed to โ€ŽWithBuddy/Application/Assets.xcassets/TabBar/Calendar.imageset/Contents.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
{
22
"images" : [
33
{
4-
"filename" : "buddyFace@1x.png",
4+
"filename" : "Calendar@1x.png",
55
"idiom" : "universal",
66
"scale" : "1x"
77
},
88
{
9-
"filename" : "buddyFace@2x.png",
9+
"filename" : "Calendar@2x.png",
1010
"idiom" : "universal",
1111
"scale" : "2x"
1212
},
1313
{
14-
"filename" : "buddyFace@3x.png",
14+
"filename" : "Calendar@3x.png",
1515
"idiom" : "universal",
1616
"scale" : "3x"
1717
}
Loading
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"images" : [
3+
{
4+
"filename" : "[email protected]",
5+
"idiom" : "universal",
6+
"scale" : "1x"
7+
},
8+
{
9+
"filename" : "[email protected]",
10+
"idiom" : "universal",
11+
"scale" : "2x"
12+
},
13+
{
14+
"filename" : "[email protected]",
15+
"idiom" : "universal",
16+
"scale" : "3x"
17+
}
18+
],
19+
"info" : {
20+
"author" : "xcode",
21+
"version" : 1
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"author" : "xcode",
4+
"version" : 1
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"images" : [
3+
{
4+
"filename" : "[email protected]",
5+
"idiom" : "universal",
6+
"scale" : "1x"
7+
},
8+
{
9+
"filename" : "[email protected]",
10+
"idiom" : "universal",
11+
"scale" : "2x"
12+
},
13+
{
14+
"filename" : "[email protected]",
15+
"idiom" : "universal",
16+
"scale" : "3x"
17+
}
18+
],
19+
"info" : {
20+
"author" : "xcode",
21+
"version" : 1
22+
}
23+
}
Loading
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"images" : [
3+
{
4+
"filename" : "[email protected]",
5+
"idiom" : "universal",
6+
"scale" : "1x"
7+
},
8+
{
9+
"filename" : "[email protected]",
10+
"idiom" : "universal",
11+
"scale" : "2x"
12+
},
13+
{
14+
"filename" : "[email protected]",
15+
"idiom" : "universal",
16+
"scale" : "3x"
17+
}
18+
],
19+
"info" : {
20+
"author" : "xcode",
21+
"version" : 1
22+
}
23+
}
Loading
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"images" : [
3+
{
4+
"filename" : "[email protected]",
5+
"idiom" : "universal",
6+
"scale" : "1x"
7+
},
8+
{
9+
"filename" : "[email protected]",
10+
"idiom" : "universal",
11+
"scale" : "2x"
12+
},
13+
{
14+
"filename" : "[email protected]",
15+
"idiom" : "universal",
16+
"scale" : "3x"
17+
}
18+
],
19+
"info" : {
20+
"author" : "xcode",
21+
"version" : 1
22+
}
23+
}
Loading
Loading
Loading
Binary file not shown.
Binary file not shown.
Binary file not shown.

Diff for: โ€ŽWithBuddy/Data/PersistentStorage/BuddyEntity+CoreDataClass.swift

+6-7
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import Foundation
1010
import CoreData
1111

1212
@objc(BuddyEntity)
13-
public class BuddyEntity: NSManagedObject {
13+
public final class BuddyEntity: NSManagedObject {
1414

1515
@NSManaged public var id: UUID
1616
@NSManaged public var name: String
@@ -55,12 +55,11 @@ extension BuddyEntity {
5555
face: self.face)
5656
}
5757

58-
}
59-
60-
extension BuddyEntity: Comparable {
61-
62-
public static func < (lhs: BuddyEntity, rhs: BuddyEntity) -> Bool {
63-
return lhs.name < rhs.name
58+
func findRecentlyDate(before date: Date) -> Date? {
59+
for gatheringEntity in self.gatheringList.sorted(by: >) where gatheringEntity.date <= date {
60+
return gatheringEntity.date
61+
}
62+
return nil
6463
}
6564

6665
}

0 commit comments

Comments
ย (0)