Skip to content

Commit

Permalink
feat/#162 뷰모델 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
mmaybei committed Jul 12, 2024
1 parent c987a82 commit bfcfdf3
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 12 deletions.
4 changes: 4 additions & 0 deletions KkuMulKum.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
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 Down Expand Up @@ -177,6 +178,7 @@
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 Down Expand Up @@ -539,6 +541,7 @@
A3DD9C222C4112EB00E58A13 /* MeetingListView.swift */,
A3DD9C242C4133CD00E58A13 /* MeetingTableViewCell.swift */,
A3DD9C262C41383200E58A13 /* MeetingDummyModel.swift */,
A3DD9C2A2C419CF600E58A13 /* MeetingListViewModel.swift */,
);
path = MeetingList;
sourceTree = "<group>";
Expand Down Expand Up @@ -1041,6 +1044,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 Down
23 changes: 13 additions & 10 deletions KkuMulKum/Source/MeetingList/MeetingListViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,7 @@ class MeetingListViewController: BaseViewController {
// MARK: - Property

private let rootView = MeetingListView()

private var meetingList: [MeetingDummyModel] = MeetingDummyModel.dummy() {
didSet {
DispatchQueue.main.async { [weak self] in
self?.rootView.tableView.reloadData()
}
}
}
private let viewModel = MeetingListViewModel()


// MARK: - Initializer
Expand All @@ -38,6 +31,8 @@ class MeetingListViewController: BaseViewController {
setupView()
register()
setupDelegate()

updateMeeingList()
}


Expand All @@ -57,6 +52,14 @@ class MeetingListViewController: BaseViewController {
rootView.tableView.delegate = self
rootView.tableView.dataSource = self
}

private func updateMeeingList() {
viewModel.meetingListData.bind { [weak self] _ in
DispatchQueue.main.async {
self?.rootView.tableView.reloadData()
}
}
}


// MARK: - Function
Expand Down Expand Up @@ -88,14 +91,14 @@ extension MeetingListViewController: UITableViewDelegate {

extension MeetingListViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return meetingList.count
return viewModel.meetingListData.value.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = rootView.tableView.dequeueReusableCell(
withIdentifier: MeetingTableViewCell.reuseIdentifier, for: indexPath
) as? MeetingTableViewCell else { return UITableViewCell() }
cell.dataBind(meetingList[indexPath.item], itemRow: indexPath.item)
cell.dataBind(viewModel.meetingListData.value[indexPath.item])
cell.selectionStyle = .none
return cell
}
Expand Down
14 changes: 14 additions & 0 deletions KkuMulKum/Source/MeetingList/MeetingListViewModel.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//
// MeetingListViewModel.swift
// KkuMulKum
//
// Created by 예삐 on 7/13/24.
//

import UIKit

import Then

final class MeetingListViewModel {
var meetingListData = ObservablePattern<[MeetingDummyModel]>(MeetingDummyModel.dummy())
}
3 changes: 1 addition & 2 deletions KkuMulKum/Source/MeetingList/MeetingTableViewCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,7 @@ final class MeetingTableViewCell: BaseTableViewCell {
// MARK: - Data Bind

extension MeetingTableViewCell {
func dataBind(_ contentData: MeetingDummyModel, itemRow: Int) {
self.itemRow = itemRow
func dataBind(_ contentData: MeetingDummyModel) {
nameLabel.setText(contentData.name, style: .body03, color: .gray8)
countLabel.setText("\(contentData.count)명 참여 중", style: .caption02, color: .gray5)
}
Expand Down

0 comments on commit bfcfdf3

Please sign in to comment.