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

[feat] 내 모임 리스트 UI 구현 #165

Merged
merged 11 commits into from
Jul 12, 2024
70 changes: 63 additions & 7 deletions KkuMulKum.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@
78B9286E2C29402C006D9942 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78B9286D2C29402C006D9942 /* SceneDelegate.swift */; };
78B928752C29402E006D9942 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 78B928742C29402E006D9942 /* Assets.xcassets */; };
78B928782C29402E006D9942 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 78B928762C29402E006D9942 /* LaunchScreen.storyboard */; };
A3DD9C232C4112EB00E58A13 /* MeetingListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3DD9C222C4112EB00E58A13 /* MeetingListView.swift */; };
A3DD9C252C4133CD00E58A13 /* MeetingTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3DD9C242C4133CD00E58A13 /* MeetingTableViewCell.swift */; };
A3DD9C272C41383200E58A13 /* MeetingDummyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3DD9C262C41383200E58A13 /* MeetingDummyModel.swift */; };
A3DD9C2B2C419CF600E58A13 /* MeetingListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3DD9C2A2C419CF600E58A13 /* MeetingListViewModel.swift */; };
A3FB184D2C3BF45F001483E5 /* MakeMeetingsRequestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3FB184C2C3BF45F001483E5 /* MakeMeetingsRequestModel.swift */; };
A3FB184F2C3BF4BC001483E5 /* MakeMeetingsResponseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3FB184E2C3BF4BB001483E5 /* MakeMeetingsResponseModel.swift */; };
A3FB18512C3BF531001483E5 /* RegisterMeetingsResponseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3FB18502C3BF531001483E5 /* RegisterMeetingsResponseModel.swift */; };
Expand All @@ -83,7 +87,7 @@
DD931B762C3DC16100526452 /* PromiseInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD931B752C3DC16100526452 /* PromiseInfoView.swift */; };
DDA2EE732C385EB9007C6059 /* MainTabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDA2EE722C385EB9007C6059 /* MainTabBarController.swift */; };
DDA2EE752C385FB1007C6059 /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDA2EE742C385FB1007C6059 /* HomeViewController.swift */; };
DDA2EE772C385FC3007C6059 /* GroupListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDA2EE762C385FC3007C6059 /* GroupListViewController.swift */; };
DDA2EE772C385FC3007C6059 /* MeetingListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDA2EE762C385FC3007C6059 /* MeetingListViewController.swift */; };
DDAF1C7C2C3D5B86008A37D3 /* RxCocoa in Frameworks */ = {isa = PBXBuildFile; productRef = DDAF1C7B2C3D5B86008A37D3 /* RxCocoa */; };
DDAF1C7E2C3D5B86008A37D3 /* RxRelay in Frameworks */ = {isa = PBXBuildFile; productRef = DDAF1C7D2C3D5B86008A37D3 /* RxRelay */; };
DDAF1C812C3D5BD5008A37D3 /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = DDAF1C802C3D5BD5008A37D3 /* Kingfisher */; };
Expand Down Expand Up @@ -171,6 +175,10 @@
78B928742C29402E006D9942 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
78B928772C29402E006D9942 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
78B928792C29402E006D9942 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
A3DD9C222C4112EB00E58A13 /* MeetingListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeetingListView.swift; sourceTree = "<group>"; };
A3DD9C242C4133CD00E58A13 /* MeetingTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeetingTableViewCell.swift; sourceTree = "<group>"; };
A3DD9C262C41383200E58A13 /* MeetingDummyModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeetingDummyModel.swift; sourceTree = "<group>"; };
A3DD9C2A2C419CF600E58A13 /* MeetingListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeetingListViewModel.swift; sourceTree = "<group>"; };
A3FB184C2C3BF45F001483E5 /* MakeMeetingsRequestModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MakeMeetingsRequestModel.swift; sourceTree = "<group>"; };
A3FB184E2C3BF4BB001483E5 /* MakeMeetingsResponseModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MakeMeetingsResponseModel.swift; sourceTree = "<group>"; };
A3FB18502C3BF531001483E5 /* RegisterMeetingsResponseModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterMeetingsResponseModel.swift; sourceTree = "<group>"; };
Expand All @@ -193,7 +201,7 @@
DD931B752C3DC16100526452 /* PromiseInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PromiseInfoView.swift; sourceTree = "<group>"; };
DDA2EE722C385EB9007C6059 /* MainTabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainTabBarController.swift; sourceTree = "<group>"; };
DDA2EE742C385FB1007C6059 /* HomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = "<group>"; };
DDA2EE762C385FC3007C6059 /* GroupListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupListViewController.swift; sourceTree = "<group>"; };
DDA2EE762C385FC3007C6059 /* MeetingListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeetingListViewController.swift; sourceTree = "<group>"; };
DDAF1C832C3D5D19008A37D3 /* ViewModelType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewModelType.swift; sourceTree = "<group>"; };
DDAF1C882C3D6E3D008A37D3 /* ReadyStatusViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadyStatusViewController.swift; sourceTree = "<group>"; };
DDAF1C892C3D6E3D008A37D3 /* PromiseSegmentedControl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PromiseSegmentedControl.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -458,6 +466,46 @@
path = KkuMulKum;
sourceTree = "<group>";
};
A3DD9C2C2C419FDA00E58A13 /* View */ = {
isa = PBXGroup;
children = (
A3DD9C222C4112EB00E58A13 /* MeetingListView.swift */,
);
path = View;
sourceTree = "<group>";
};
A3DD9C2D2C419FE000E58A13 /* ViewModel */ = {
isa = PBXGroup;
children = (
A3DD9C2A2C419CF600E58A13 /* MeetingListViewModel.swift */,
);
path = ViewModel;
sourceTree = "<group>";
};
A3DD9C2E2C419FED00E58A13 /* ViewController */ = {
isa = PBXGroup;
children = (
DDA2EE762C385FC3007C6059 /* MeetingListViewController.swift */,
);
path = ViewController;
sourceTree = "<group>";
};
A3DD9C2F2C419FFB00E58A13 /* Model */ = {
isa = PBXGroup;
children = (
A3DD9C262C41383200E58A13 /* MeetingDummyModel.swift */,
);
path = Model;
sourceTree = "<group>";
};
A3DD9C302C41A00900E58A13 /* Cell */ = {
isa = PBXGroup;
children = (
A3DD9C242C4133CD00E58A13 /* MeetingTableViewCell.swift */,
);
path = Cell;
sourceTree = "<group>";
};
DD865B652C3920F600C351A2 /* Onboarding */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -526,12 +574,16 @@
path = Home;
sourceTree = "<group>";
};
DDA2EE7C2C38607F007C6059 /* GroupList */ = {
DDA2EE7C2C38607F007C6059 /* MeetingList */ = {
isa = PBXGroup;
children = (
DDA2EE762C385FC3007C6059 /* GroupListViewController.swift */,
A3DD9C302C41A00900E58A13 /* Cell */,
A3DD9C2F2C419FFB00E58A13 /* Model */,
A3DD9C2E2C419FED00E58A13 /* ViewController */,
A3DD9C2D2C419FE000E58A13 /* ViewModel */,
A3DD9C2C2C419FDA00E58A13 /* View */,
);
path = GroupList;
path = MeetingList;
sourceTree = "<group>";
};
DDA2EE7E2C3860B2007C6059 /* Core */ = {
Expand Down Expand Up @@ -603,7 +655,7 @@
children = (
DDA2EE7E2C3860B2007C6059 /* Core */,
DDA2EE7B2C386078007C6059 /* Home */,
DDA2EE7C2C38607F007C6059 /* GroupList */,
DDA2EE7C2C38607F007C6059 /* MeetingList */,
DE159D312C406E1600425101 /* MyPage */,
DE6D4D0E2C3F14D80005584B /* MeetingInfo */,
DD865B652C3920F600C351A2 /* Onboarding */,
Expand Down Expand Up @@ -1016,6 +1068,7 @@
789873342C3D1A7B00435E96 /* LoginView.swift in Sources */,
782B40822C3E4925008B0CA7 /* NicknameViewModel.swift in Sources */,
782B406F2C3DBF93008B0CA7 /* ProfileViewController.swift in Sources */,
A3DD9C232C4112EB00E58A13 /* MeetingListView.swift in Sources */,
A3FB18592C3BF77D001483E5 /* MeetingInfoResponseModel.swift in Sources */,
DEA932182C3F180800FDF637 /* MeetingPromisesModel.swift in Sources */,
DE159D342C406E1600425101 /* MyPageEtcSettingView.swift in Sources */,
Expand All @@ -1031,6 +1084,7 @@
DDAF1C912C3D6E3D008A37D3 /* TardyViewController.swift in Sources */,
782B407D2C3E3984008B0CA7 /* WelcomeViewController.swift in Sources */,
DE8248002C36E857000601BC /* ObservablePattern.swift in Sources */,
A3DD9C2B2C419CF600E58A13 /* MeetingListViewModel.swift in Sources */,
DDAF1C902C3D6E3D008A37D3 /* PromiseViewModel.swift in Sources */,
DE254AAA2C31190E00A4015E /* UIStackView+.swift in Sources */,
DE159D362C406E1600425101 /* MyPageViewController.swift in Sources */,
Expand All @@ -1044,14 +1098,15 @@
DE6D4D152C3F14D80005584B /* InvitationCodePopUpViewController.swift in Sources */,
DE9E189A2C3BCCBE00DB76B4 /* UtilsTemp.swift in Sources */,
782B407B2C3E395A008B0CA7 /* WelcomeView.swift in Sources */,
A3DD9C272C41383200E58A13 /* MeetingDummyModel.swift in Sources */,
DD3072142C3BF87A00416D9F /* NearestPromiseResponseModel.swift in Sources */,
782B407F2C3E44B7008B0CA7 /* WelcomeViewModel.swift in Sources */,
DD3072162C3BFE4E00416D9F /* UpcomingPromiseListResponseModel.swift in Sources */,
A3FB18572C3BF704001483E5 /* MeetingListResponseModel.swift in Sources */,
DE254AB22C31197B00A4015E /* UIButton+.swift in Sources */,
DE6D4D162C3F14D80005584B /* MeetingInfoViewController.swift in Sources */,
DE159D322C406E1600425101 /* MyPageAlarmSettingView.swift in Sources */,
DDA2EE772C385FC3007C6059 /* GroupListViewController.swift in Sources */,
DDA2EE772C385FC3007C6059 /* MeetingListViewController.swift in Sources */,
78B9286C2C29402C006D9942 /* AppDelegate.swift in Sources */,
DEBA032F2C3C24F2002ED8F2 /* ModelType.swift in Sources */,
789AD4B52C3C0147002E2688 /* ResissueResponseModel.swift in Sources */,
Expand All @@ -1061,6 +1116,7 @@
DE6D4D172C3F14D80005584B /* MeetingInfoViewModel.swift in Sources */,
78AED1372C3D98D1000AD80A /* NicknameView.swift in Sources */,
A3FB185B2C3BF7DF001483E5 /* MeetingMembersResponseModel.swift in Sources */,
A3DD9C252C4133CD00E58A13 /* MeetingTableViewCell.swift in Sources */,
DD3072222C3C0DA300416D9F /* PromiseParticipantListResponseModel.swift in Sources */,
789873322C3D1A7B00435E96 /* LoginViewController.swift in Sources */,
782B40722C3DBFA3008B0CA7 /* ProfileViewModel.swift in Sources */,
Expand Down
2 changes: 1 addition & 1 deletion KkuMulKum/Application/SceneDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
) {
guard let windowScene = (scene as? UIWindowScene) else { return }
self.window = UIWindow(windowScene: windowScene)
self.window?.rootViewController = NicknameViewController()
self.window?.rootViewController = MainTabBarController()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

앗 바꾼다고 하고 암생각없이 올려버렷네요 미안합니다~

self.window?.makeKeyAndVisible()
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "ic_grpplus.svg",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

This file was deleted.

This file was deleted.

2 changes: 1 addition & 1 deletion KkuMulKum/Source/Core/MainTabBarController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ final class MainTabBarController: UITabBarController {
$0.tabBarItem.image = .iconHome
}

let groupListViewController: GroupListViewController = GroupListViewController().then {
let groupListViewController: MeetingListViewController = MeetingListViewController().then {
$0.tabBarItem.title = "내 모임"
$0.tabBarItem.image = .iconGroup
}
Expand Down
35 changes: 0 additions & 35 deletions KkuMulKum/Source/GroupList/GroupListViewController.swift

This file was deleted.

74 changes: 74 additions & 0 deletions KkuMulKum/Source/MeetingList/Cell/MeetingTableViewCell.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
//
// GroupViewCell.swift
// KkuMulKum
//
// Created by 예삐 on 7/12/24.
//

import UIKit

import SnapKit
import Then

final class MeetingTableViewCell: BaseTableViewCell {


// MARK: - Property

var itemRow: Int?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이것은 불필요한 걸까요?
필요하다면, 왜 존재해야 한 것일까요?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아까 함수 수정하면서 삭제를 안 했네용 .. ㅎㅎ 머쓱

private let cellView = UIView().then {
$0.backgroundColor = .white
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

backgroundColor를 이용하여 생성할 수 있습니다.

$0.layer.cornerRadius = 8
}

private let nameLabel = UILabel()

private let countLabel = UILabel()

private let rightIcon = UIImageView().then {
$0.image = .iconRight
}


// MARK: - UI Setting

override func setupView() {
self.do {
$0.backgroundColor = .clear
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

backgroundColor = .clear 로 해도 좋을 것 같아요.

addSubviews(cellView, nameLabel, countLabel, rightIcon)
}

override func setupAutoLayout() {
cellView.snp.makeConstraints {
$0.top.leading.trailing.equalToSuperview()
$0.height.equalTo(76)
}

nameLabel.snp.makeConstraints {
$0.top.equalToSuperview().offset(16)
$0.leading.equalToSuperview().offset(20)
}

countLabel.snp.makeConstraints {
$0.bottom.equalTo(cellView.snp.bottom).offset(-16)
$0.leading.equalToSuperview().offset(20)
}

rightIcon.snp.makeConstraints {
$0.centerY.equalTo(cellView.snp.centerY)
$0.trailing.equalToSuperview().offset(-16)
}
}
}


// MARK: - Data Bind

extension MeetingTableViewCell {
func dataBind(_ contentData: MeetingDummyModel) {
nameLabel.setText(contentData.name, style: .body03, color: .gray8)
countLabel.setText("\(contentData.count)명 참여 중", style: .caption02, color: .gray5)
}
}
29 changes: 29 additions & 0 deletions KkuMulKum/Source/MeetingList/Model/MeetingDummyModel.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
//
// MeetingListModel.swift
// KkuMulKum
//
// Created by 예삐 on 7/12/24.
//

import UIKit

struct MeetingDummyModel {
let name: String
let count: Int
}

extension MeetingDummyModel {
static func dummy() -> [MeetingDummyModel] {
return [
MeetingDummyModel(name: "꾸물이들", count: 14),
MeetingDummyModel(name: "꾸물이들", count: 14),
MeetingDummyModel(name: "꾸물이들", count: 14),
MeetingDummyModel(name: "꾸물이들", count: 14),
MeetingDummyModel(name: "꾸물이들", count: 14),
MeetingDummyModel(name: "꾸물이들", count: 14),
MeetingDummyModel(name: "꾸물이들", count: 14),
MeetingDummyModel(name: "꾸물이들", count: 14),
MeetingDummyModel(name: "꾸물이들", count: 14)
]
}
}
Loading