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

[2.0.0] TCA기반의 메인 공지화면 리스트 구현 #34

Merged
merged 9 commits into from
Nov 26, 2023

Conversation

lgvv
Copy link
Member

@lgvv lgvv commented Oct 1, 2023

요약

  • 공지 리스트 구현
  • 학과 선택 변경 구현
  • [이슈] ❗️ 키보드 블락 이슈
    • 키보드 포커스시 아래의 이슈로 block되는 현상이 있음. 시간이 흘러서 풀리긴 하나 해결방법을 잘 모르곘습니다. ㅠ
      [UIKeyboardTaskQueue lockWhenReadyForMainThread] timeout waiting for task on queue

코드 변경사항

  • 패키지모듈
    • 번들 리소스를 사용하기 위한 번들 익스텐션
  • App프로젝트
    • 알림 설정창 UI 구현
    • 일반 공지 및 학과 설정 UI구현

중점적으로 볼 사항

  • 학과 및 대학 공지
  • ❗️ 키보드 블락 이슈

후속 작업

  • 데이터 저장에 대한 부분이 v1에서 아직 옮겨지지 않았기에 TCA 기반으로 UI 화면만 구성하여 데이터 연결부 구현이 필요합니다.
  • 디자인 시스템 분리 후 다른 브랜치의 동일 View 통일

디자인


  • 메인화면


  • 학과검색


  • 네가지 타입의 NoticeRow


@lgvv lgvv self-assigned this Oct 1, 2023
@lgvv lgvv requested review from x-0o0 and sunshiningsoo October 1, 2023 07:47
@lgvv lgvv added v2 공지리스트 공지디테일, 공지리스트 기능 labels Oct 1, 2023
@lgvv lgvv added the PBM Package Based Modularization (패키지 기반 모듈화) label Oct 1, 2023
@x-0o0 x-0o0 added the 학과 학과 관련 기능 (학과 검색, 내학과) label Oct 1, 2023
Copy link
Contributor

@x-0o0 x-0o0 left a comment

Choose a reason for hiding this comment

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

뷰에 onTapGesture 를 적용하는 방식으로 하신 이유가 있으실까요?
전 버튼에는 확실하게 Button(action:label:) 을 사용하는 것을 좀 더 선호해서
Button 으로 수정하고 나중에 label 영역은 전부 디자인시스템 으로 옮기면 어떨까요.

Button {
    viewStore.send(.selectedDepartment(id: department.id)
} label: {
    AddedDepartmentRow(
        store: self.store.scope(...)
    )
    .frame(maxWidth: .infinity)
}

이 형태가 더 좋을 것 같습니다.

@x-0o0
Copy link
Contributor

x-0o0 commented Oct 1, 2023

[UIKeyboardTaskQueue lockWhenReadyForMainThread] timeout waiting for task on queue

Focus가 main 큐에서 발생하지 않아서 생긴 이슈일 가능성도 있을까요?

@lgvv
Copy link
Member Author

lgvv commented Oct 2, 2023

[UIKeyboardTaskQueue lockWhenReadyForMainThread] timeout waiting for task on queue

Focus가 main 큐에서 발생하지 않아서 생긴 이슈일 가능성도 있을까요?

main 큐와 관련한 이슈라고 생각하는데, 프리뷰에서는 정상적으로 작동하는데 Stack을 연결하고 시뮬에서 해당 문제가 발생하고 있습니다.
키보드를 main에서 처리하게끔 하면 될 것 같은데, 해당 부분에 대해서 고민하고 있습니다 ㅠ

프리뷰에서 학과 추가하기 버튼 클릭시

Note: Links search for destinations in any surrounding NavigationStack, then within the same column of a NavigationSplitView.
A NavigationLink is presenting a value of type “Component<State>” but there is no matching navigationDestination declaration visible from the location of the link. The link cannot be activated.

@lgvv
Copy link
Member Author

lgvv commented Oct 2, 2023

뷰에 onTapGesture 를 적용하는 방식으로 하신 이유가 있으실까요? 전 버튼에는 확실하게 Button(action:label:) 을 사용하는 것을 좀 더 선호해서 Button 으로 수정하고 나중에 label 영역은 전부 디자인시스템 으로 옮기면 어떨까요.

Button {
    viewStore.send(.selectedDepartment(id: department.id)
} label: {
    AddedDepartmentRow(
        store: self.store.scope(...)
    )
    .frame(maxWidth: .infinity)
}

이 형태가 더 좋을 것 같습니다.

네네 좋습니다~!

@lgvv lgvv requested review from sunshiningsoo and x-0o0 October 3, 2023 15:59
@lgvv
Copy link
Member Author

lgvv commented Oct 3, 2023

키보드 블락 이슈 존재.

@lgvv lgvv linked an issue Oct 7, 2023 that may be closed by this pull request
@x-0o0 x-0o0 force-pushed the feature/lgvv/notice-list branch 2 times, most recently from ac05618 to 9d67d64 Compare November 24, 2023 06:23
@x-0o0 x-0o0 force-pushed the feature/lgvv/notice-list branch from 9d67d64 to 29c43d1 Compare November 24, 2023 06:45
@x-0o0
Copy link
Contributor

x-0o0 commented Nov 24, 2023

/쿠링 ios17 앱 빌드

Copy link

🔨 iOS 17.0 iPhone 14 Pro 에서 쿠링 앱을 빌드합니다.

Copy link

📬 iOS17 에서 앱 타겟 빌드에 실패했습니다. Actions에서 실패 결과를 확인해주세요.

@x-0o0
Copy link
Contributor

x-0o0 commented Nov 25, 2023

/쿠링 패키지 빌드

Copy link

🔨 iOS 16.2 iPhone 14 Pro 에서 스위프트 패키지를 빌드합니다.

Copy link

✅ 패키지를 성공적으로 빌드했습니다.

@x-0o0
Copy link
Contributor

x-0o0 commented Nov 25, 2023

에러 및 해결

switch category {
case .학과:
    Section {
        NoticeList()
    } header: {
        DepartmentSelectorLink()
    }
default:
    NoticeList()

이 코드는 다음과 같은 에러를 발생시킵니다. (Apple bug)

List failed to visit cell content, returning an empty cell.

header 가 고정되어 있지 않고 변할 때 경고가 발생한다고 하는데(참고 링크) 특히 Switch 구문을 쓸 경우 뷰 동작에 유연성이 떨어지는 것 같음

해결방법

Section {
    NoticeList()
} header: {
    if category == .학과 {
        DepartmentSelectorLink()
    } else {
        EmptyView()
    }
}

@x-0o0
Copy link
Contributor

x-0o0 commented Nov 25, 2023

용어 정리 학과 있을 때 학과 없을 때 (기본값 학사) 학과 없을 때 학과 카테고리 선택시
Simulator Screenshot - iPhone 15 Pro - 2023-11-25 at 16 39 10 Simulator Screenshot - iPhone 15 Pro - 2023-11-25 at 16 39 10 Simulator Screenshot - iPhone 15 Pro - 2023-11-25 at 16 39 12 Simulator Screenshot - iPhone 15 Pro - 2023-11-25 at 16 39 57

@x-0o0 x-0o0 marked this pull request as ready for review November 25, 2023 07:54
Copy link
Member

@sunshiningsoo sunshiningsoo left a comment

Choose a reason for hiding this comment

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

🙌

@x-0o0 x-0o0 enabled auto-merge (squash) November 26, 2023 04:50
@x-0o0 x-0o0 merged commit a7289c4 into develop/2.0.0 Nov 26, 2023
@x-0o0 x-0o0 deleted the feature/lgvv/notice-list branch November 26, 2023 04:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PBM Package Based Modularization (패키지 기반 모듈화) v2 공지리스트 공지디테일, 공지리스트 기능 학과 학과 관련 기능 (학과 검색, 내학과)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[버그] SwiftUI TextField issue [2.0.0] TCA기반의 메인 공지화면 리스트 구현
3 participants