Skip to content

Commit 1f73b94

Browse files
authored
Merge pull request #123 from DSM-PICK/feature/117-school_meal_refact
refact :: [#117] 주말급식 리팩토링
2 parents df60ebf + abe5cc9 commit 1f73b94

File tree

11 files changed

+42
-55
lines changed

11 files changed

+42
-55
lines changed

Projects/Data/Sources/DTO/SchoolMeal/SchoolMealDTO.swift

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,16 @@ extension SchoolMealDTO {
1919
}
2020

2121
struct SchoolMealDTOElement: Decodable {
22-
public let breakfast: MealDTOElement
23-
public let lunch: MealDTOElement
24-
public let dinner: MealDTOElement
22+
public let breakfast, lunch, dinner: MealDTOElement
2523
}
2624

2725
extension SchoolMealDTOElement {
2826
func toDomain() -> SchoolMealEntityElement {
2927
return .init(
3028
mealBundle: [
31-
(0, "조식", breakfast.toDomain()),
32-
(1, "중식", lunch.toDomain()),
33-
(2, "석식", dinner.toDomain())
29+
("조식", breakfast.toDomain()),
30+
("중식", lunch.toDomain()),
31+
("석식", dinner.toDomain())
3432
]
3533
)
3634
}

Projects/Domain/Sources/Entity/SchoolMeal/SchoolMealEntity.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ public struct SchoolMealEntity {
99
}
1010

1111
public struct SchoolMealEntityElement {
12-
public let mealBundle: [(Int, String, MealEntityElement)]
12+
public let mealBundle: [(String, MealEntityElement)]
1313

14-
public init(mealBundle: [(Int, String, MealEntityElement)]) {
14+
public init(mealBundle: [(String, MealEntityElement)]) {
1515
self.mealBundle = mealBundle
1616
}
1717
}

Projects/Modules/DesignSystem/Sources/Component/Alert/PiCKAlert.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ public class PiCKAlert: UIViewController {
6767
}
6868
self.clickLogout = clickLogout
6969
super.init(nibName: nil, bundle: nil)
70+
self.modalTransitionStyle = .crossDissolve
71+
self.modalPresentationStyle = .overFullScreen
7072
}
7173
required init?(coder: NSCoder) {
7274
fatalError("init(coder:) has not been implemented")

Projects/Presentation/Sources/Base/BaseViewController.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,13 @@ open class BaseViewController<ViewModel: BaseViewModel>: UIViewController, UIGes
3535
viewWillAppearRelay.accept(())
3636
bindAction()
3737
}
38-
open override func viewDidLayoutSubviews() {
39-
super.viewDidLayoutSubviews()
38+
open override func viewWillLayoutSubviews() {
39+
super.viewWillLayoutSubviews()
4040
addView()
4141
setLayout()
42+
}
43+
open override func viewDidLayoutSubviews() {
44+
super.viewDidLayoutSubviews()
4245
configureNavgationBarLayOutSubviews()
4346
setLayoutData()
4447
}

Projects/Presentation/Sources/Scene/AllTab/AllTabViewController.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,6 @@ public class AllTabViewController: BaseViewController<AllTabViewModel> {
7979
) {
8080
owner.logoutRelay.accept(())
8181
}
82-
alert.modalPresentationStyle = .overFullScreen
83-
alert.modalTransitionStyle = .crossDissolve
8482
owner.present(alert, animated: true)
8583
}.disposed(by: disposeBag)
8684
}

Projects/Presentation/Sources/Scene/Home/HomeViewController.swift

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import Then
66
import RxSwift
77
import RxCocoa
88

9-
import Starscream
10-
119
import Core
1210
import Domain
1311
import DesignSystem
@@ -25,7 +23,7 @@ public class HomeViewController: BaseViewController<HomeViewModel> {
2523
width: self.view.frame.width,
2624
height: 0
2725
)
28-
private lazy var timeTableHeight = BehaviorRelay<CGFloat>(value: 0)
26+
private lazy var timeTableHeight = BehaviorRelay<CGFloat>(value: 100)
2927
private lazy var schoolMealHeight = BehaviorRelay<CGFloat>(value: 0)
3028

3129
private let scrollView = UIScrollView().then {
@@ -242,9 +240,7 @@ public class HomeViewController: BaseViewController<HomeViewModel> {
242240
output.timeTableHeight.asObservable()
243241
.withUnretained(self)
244242
.bind { owner, height in
245-
if height == 0 {
246-
owner.timeTableHeight.accept(100)
247-
} else {
243+
if height != 0 {
248244
owner.timeTableHeight.accept(height)
249245
}
250246

@@ -314,24 +310,16 @@ public class HomeViewController: BaseViewController<HomeViewModel> {
314310
}
315311

316312
private func setupViewType(type: HomeViewType) {
317-
switch type {
318-
case .timeTable:
319-
self.todaysLabel.text = "오늘의 시간표"
320-
self.schoolMealView.isHidden = true
321-
self.timeTableView.isHidden = false
322-
323-
mainStackView.snp.remakeConstraints {
324-
$0.height.equalTo(self.timeTableHeight.value)
325-
}
326-
327-
case .schoolMeal:
328-
self.todaysLabel.text = "오늘의 급식"
329-
self.timeTableView.isHidden = true
330-
self.schoolMealView.isHidden = false
331-
332-
mainStackView.snp.remakeConstraints {
333-
$0.height.equalTo(self.schoolMealHeight.value)
334-
}
313+
let isTimeTable = (type == .timeTable)
314+
self.todaysLabel.text = isTimeTable ? "오늘의 시간표" : "오늘의 급식"
315+
316+
self.timeTableView.isHidden = !isTimeTable
317+
self.schoolMealView.isHidden = isTimeTable
318+
319+
let height = isTimeTable ? self.timeTableHeight.value : self.schoolMealHeight.value
320+
321+
mainStackView.snp.remakeConstraints {
322+
$0.height.equalTo(height)
335323
}
336324
}
337325

Projects/Presentation/Sources/Scene/Home/HomeViewModel.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public class HomeViewModel: BaseViewModel, Stepper {
6262
let applyStatusData: Signal<HomeApplyStatusEntity>
6363
let weekendMealPeriodData: Signal<WeekendMealPeriodEntity>
6464
let timetableData: Driver<[TimeTableEntityElement]>
65-
let schoolMealData: Driver<[(Int, String, MealEntityElement)]>
65+
let schoolMealData: Driver<[(String, MealEntityElement)]>
6666
let noticeListData: Signal<NoticeListEntity>
6767
let selfStudyData: Driver<SelfStudyEntity>
6868
let outingPassData: Signal<OutingPassEntity>
@@ -76,7 +76,7 @@ public class HomeViewModel: BaseViewModel, Stepper {
7676
private let applyStatusData = PublishRelay<HomeApplyStatusEntity>()
7777
private let weekendMealPeriodData = PublishRelay<WeekendMealPeriodEntity>()
7878
private let timetableData = BehaviorRelay<[TimeTableEntityElement]>(value: [])
79-
private let schoolMealData = BehaviorRelay<[(Int, String, MealEntityElement)]>(value: [])
79+
private let schoolMealData = BehaviorRelay<[(String, MealEntityElement)]>(value: [])
8080
private let outingPassData = PublishRelay<OutingPassEntity>()
8181
private let noticeListData = PublishRelay<NoticeListEntity>()
8282
private let selfStudyData = BehaviorRelay<SelfStudyEntity>(value: [])

Projects/Presentation/Sources/Scene/Home/View/HomeSchoolMealView.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import Domain
1111
import DesignSystem
1212

1313
public class HomeSchoolMealView: BaseView {
14-
private let schoolMealData = BehaviorRelay<[(Int, String, MealEntityElement)]>(value: [])
14+
private let schoolMealData = BehaviorRelay<[(String, MealEntityElement)]>(value: [])
1515

1616
private lazy var collectionViewFlowLayout = UICollectionViewFlowLayout().then {
1717
$0.scrollDirection = .vertical
@@ -33,7 +33,7 @@ public class HomeSchoolMealView: BaseView {
3333
}
3434

3535
public func setup(
36-
schoolMealData: [(Int, String, MealEntityElement)]
36+
schoolMealData: [(String, MealEntityElement)]
3737
) {
3838
self.schoolMealData.accept(schoolMealData)
3939
}
@@ -45,9 +45,9 @@ public class HomeSchoolMealView: BaseView {
4545
cellType: SchoolMealHomeCell.self
4646
)) { _, item, cell in
4747
cell.setup(
48-
mealTime: item.1,
49-
menu: item.2.menu,
50-
kcal: item.2.kcal
48+
mealTime: item.0,
49+
menu: item.1.menu,
50+
kcal: item.1.kcal
5151
)
5252
}.disposed(by: disposeBag)
5353
}

Projects/Presentation/Sources/Scene/OnBoarding/OnBoardingViewController.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,6 @@ public class OnboardingViewController: BaseViewController<OnboardingViewModel> {
6969
) {
7070
print("click")
7171
}
72-
alert.modalTransitionStyle = .crossDissolve
73-
alert.modalPresentationStyle = .overFullScreen
74-
7572
owner.present(alert, animated: true)
7673
}.disposed(by: disposeBag)
7774
}

Projects/Presentation/Sources/Scene/SchoolMeal/SchoolMealViewController.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,16 @@ public class SchoolMealViewController: BaseViewController<SchoolMealViewModel> {
5858
)
5959
let output = viewModel.transform(input: input)
6060

61-
output.schoolMealData.asObservable()
61+
output.schoolMealData
62+
.asObservable()
6263
.bind(to: schoolMealCollectionView.rx.items(
6364
cellIdentifier: SchoolMealCollectionViewCell.identifier,
6465
cellType: SchoolMealCollectionViewCell.self
6566
)) { _, item, cell in
6667
cell.setup(
67-
mealTime: item.1,
68-
menu: item.2.menu,
69-
kcal: item.2.kcal
68+
mealTime: item.0,
69+
menu: item.1.menu,
70+
kcal: item.1.kcal
7071
)
7172
}.disposed(by: disposeBag)
7273

0 commit comments

Comments
 (0)