UIKIT
17UICollectionViewCompositionalLayout 가로 스크롤 섹션에서 삐끗한 것들
UICollectionViewCompositionalLayout에서 orthogonalScrollingBehavior로 가로 스크롤 섹션을 만들 때 paging, group width, estimated size, section inset에서 자주 헷갈린 지점을 정리한다.
Coordinator 패턴에서 부모 없는 외부 진입이 만드는 delegate nil 함정
푸시나 딥링크로 상세 화면을 직접 열 때 부모 Coordinator가 없어 delegate nil로 종료 흐름이 멈춘 문제와 fallback 처리 기록.
UIKit 모달 여러 개가 동시에 present 될 때 큐로 줄 세운 기록
UIKit에서 여러 publisher가 동시에 modal present를 트리거할 때 생기는 충돌을 priority queue, RunLoop 디바운스, dismiss completion으로 직렬화한 사례.
Coordinator re-attach 때 생기는 deinit race window 막기
UIKit Coordinator를 재부착하는 순간 old coordinator deinit과 외부 push/deeplink 이벤트가 겹치며 생기는 race window를 막는 방법.
iOS Coordinator에서 푸시 진입을 단일 라우터로 정리한 기록
UIKit MVVM Coordinator 앱에서 list ViewModel이 푸시를 직접 구독하던 구조를 AppNavigationRouter와 async/await 기반 단일 진입점으로 정리한 사례.
@MainActor를 클래스에 통째로 붙이면 생기는 fetch 함정
UIKit 때문에 클래스 전체에 @MainActor를 붙였다가 async fetch까지 메인 액터에 묶인 사례. Swift Concurrency에서 UI 빌드와 데이터 fetch 격리를 나누는 방법.
UIButton.Configuration 쓸 땐 layer.cornerRadius 건드리지 말자
layer.cornerRadius 줬는데 안 먹는다면 Configuration이 범인이다
SwiftUI에서 NantesLabel 살리기
SwiftUI Text로는 안 되는 자동 링크 탐지, 줄 수 제한, 더 보기 토글을 UIKit NantesLabel을 UIViewRepresentable로 래핑해서 해결한 패턴과 네 가지 함정 정리.