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

[다함] 필라이즈 첫번째 과제 구현 #18

Merged
merged 14 commits into from
Jul 30, 2024
Merged

Conversation

MaraMincho
Copy link
Member

@MaraMincho MaraMincho commented Jul 30, 2024

🤔 고민 내용

아키텍쳐

SwiftUI의 데이터를 어디다가 저장할까에 대해서 고민하였습니다. 고민하다가 익숙한 TCA에 착안하여 State, Action을 갖고 있는 ViewModelable을 만들었습니다. ViewModelable을 통해서 View에서 필요한 Property를 불러옵니다. 다만 이것이 읽기전용으로 만들어야하는데, 이부분을 해결하지 못했습니다. 양방향으로 값을 수정할 수 있지만, 차후에 읽기전용으로 만들 예정입니다. Action을 통해서 ViewModel State을 적절하게 변경합니다.



Top, Bottom different background

background 가 위와 아래가 다른 색이였습니다. 이를 해결하기 위해서 고민해봤는데, Vstack 활용했습니다.

VStack(spacing: 0) { 
  Color.primaryFL
  Color.primarySecondary
}

ScrollView Content를 관리하기

가끔 ScrollView 컨텐트들의 순서를 바꾸는 경우가 있습니다. 이를 해결하기 위해서 enum 을 통해서 컨텐츠들을 관리해 봤습니다.

  enum MainViewContentType: Int, Equatable, CaseIterable, Identifiable {
    case score
    case diet
    case empty
    var id: Int { rawValue }
  }

  @ViewBuilder
  private func makeMainScrollViewContentView(_ type: MainViewContentType) -> some View {
    switch type {
    case .score:
      makeScoreView()
    case .diet:
      makeDietView()
    case .empty:
      makeEmptyView()
    }
  }

📸 Screenshot

Simulator Screen Recording - iPhone 15 Pro - 2024-07-30 at 17 37 22

@MaraMincho MaraMincho added the 고민 내용 고민 내용을 작성하는 경우 사용하세요. label Jul 30, 2024
@MaraMincho MaraMincho added this to the 필라이즈(Pillyze) milestone Jul 30, 2024
@MaraMincho MaraMincho self-assigned this Jul 30, 2024
@MaraMincho MaraMincho changed the title [다함] 필라이즈 1주차 구현 [다함] 필라이즈 첫번째 과제 구현 Jul 30, 2024
@MaraMincho MaraMincho merged commit e8a6263 into main Jul 30, 2024
@MaraMincho MaraMincho deleted the maramincho-pillyze branch July 30, 2024 08:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
고민 내용 고민 내용을 작성하는 경우 사용하세요.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant