본문 바로가기

SwiftUI11

SwiftUI Observable과 MVI 패턴 State(Intent)에 대한 고찰 대부분 iOS ViewModel에서 상태를 관리하기 내부에 쓰이는 값들을 하나의 구조체로 그 객체가 갖는 상태를 선언해서 관리한다.@Observable class ViewModel { var state: State struct State { var isFirstAppear = true var isTipAlertPresented = false } ...}⚠️ 이렇게 된다면 @Observable 의 장점인 하나의 변화에만 대응하는 장점을 잃을 수 있다..! ⚠️ 이 구조체 하나가 변경되면 값 복사가 일어나니 isFirstAppear가 변경되어도 isTipAlertPresented의 값을 관찰하는 관찰자의 특정 action이 실행될 수 있다.자세한 Observ.. 2025. 3. 26.
UIHostingConfiguration을 이용한 컬렉션 뷰 채팅 셀 UIHostingConfiguration | Apple Developer DocumentationA content configuration suitable for hosting a hierarchy of SwiftUI views.developer.apple.com💡 컬렉션 또는 테이블 보기에서 각각 SwiftUI 보기의 계층 구조를 호스팅하려면 UICollectionViewCell 또는 UITableViewCell과 함께 UIContentConfiguration 프로토콜을 따르는 이 유형의 값을 사용합니다.장점빠른 뷰 코드 작성 가능UIKit에서 작성한 코드 스타일에 크게 위반하지 않고 ListCell만 SwiftUI의 View를 도입해서 빠른 구현 가능구현 요소ChatAsset ⇒ SwiftUI의 V.. 2024. 9. 3.
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.