본문 바로가기

이모저모/SwiftUI8

iPad ConfirmationDialog 에러 대응 해결법✅ confirmationDialog 모디파이어를 직접 띄우는 Action을 주는 뷰 컴포넌트의 모디파이어로 위치시킴에러 발견🚨 ConfirmationDialog를 띄우는 Reset 버튼을 눌렀지만 변화가 일어나지 않았다!!구현 코드 및 특징⇒ 하나의 화면 전체를 구성하는 최상위 뷰의 모디파이어로 confirmationDialog를 구현함해결iPadOS에서 나타내는 Confirmation Dialog구현 코드✅ Reset 버튼 컴포넌트에 모디파이어로 적용한다.⇒ SwiftUI가 Dialog를 띄어줄 위치를 알아내고 이를 표현할 수 있다.추가 사항 UIActionSheet | Apple Developer DocumentationA view that presents a set of alternativ.. 2024. 6. 23.
SwiftUI View Nested Type 사용 컨벤션 뷰 컨벤션 도식 FKViewConvention 예제 프로젝트  분리 목적💡 - 페이지를 만드는데 개인 별 시간소요가 차이가 크게 발생하는 경우, 페이지 내부에 View Component 단위로 액션을 분리해 상호간에 협업할 수 있어야 합니다.- 추가적으로 앱의 문제점이 발생한 경우 수정을 효율적으로 해야할 수 있습니다.- 이 경우를 대비해 View Part에 파일 및 코드 구조를 설정합니다.⚠️ 주의 사항하나의 페이지에만 적용하는 내용입니다.(X) [일지 작성 > 농작업 키워드]와 같은 하위 페이지는 고려하지 않음(O) [일지 작성] 페이지만 고려함알아야 할 사전 개념View와 ViewModifier의 차이점SwiftUI / View Modifier@EnvironmentObject와 하위 뷰 (페이지 .. 2024. 5. 30.
TCA - 뽀모도로 앱, Timer View Interaction 기존 코드Timer View의 하위 View Components를 Enum으로 구분해 Interaction이 발생하면 해당 Enum 값을 방출함타이머 뷰 컴포넌트 Interaction Enum 값으로 분리extension TimerFeature{ enum ActionType:Equatable{ case timerFieldTapped case catTapped case resetTapped case triggerTapped case triggerWillTap } enum Action:Equatable{ case viewAction(ActionType) ... }}View 컴포넌트에서 사용enum.. 2024. 5. 7.
TCA에서 Stream 생성 및 주입 원하는 구현 사항RealmDB를 사용해서 타이머가 끝난 기록(Analyze)을 보여주는 기능✅ 타이머가 끝나고 DB에 새로운 데이터가 추가되면, AnalyzeFeature에서 특별한 Action 없이 비동기로 새로운 데이터를 포함하는 목록을 AnalyzeState에서 가져오도록 만들고 싶었다.구현 목표도식화기록 기능 구현 진행 사항 Analyze에서 새로운 타이머 기록 데이터를 Action 없이 가져오기 RealmDB는 단일 Actor에서 작동하도록 설계되었고 (예외적인 사항 존재), 나는 메인 actor가 아닌 Realm전용 Actor에서 작동하도록 구현했다. ⇒ 이로 인해, async/await 비동기 처리를 필수로 만족해야함RealmDB을 접근을 Dependency로 분리했다. ⇒ Global한 값.. 2024. 4. 13.