반응형
1. @State vs @Binding 혼동 주의
- 설명: @State는 뷰 내부에서 값을 소유하고 관리할 때, @Binding은 외부에서 주입받은 상태를 수정할 때 사용한다.
- 잘못 쓰면 값이 업데이트되지 않거나 메모리 누수가 생길 수도 있다.
2. 앱이 백그라운드 진입 시 작업을 완료하려면 beginBackgroundTask()를 활용하자
- 설명: 예를 들어 파일 저장이나 로그 업로드 같은 작업이 앱 종료 전에 끝나야 할 때 UIApplication.shared.beginBackgroundTask를 써서 시간을 벌 수 있다.
- 주의: 반드시 endBackgroundTask(_:)로 종료해줘야 한다.
3.UIStackView는 isHidden만 바꿔도 레이아웃이 자동 갱신된다
- 설명: UIStackView는 내부 뷰의 isHidden 속성만 바꿔도 자동으로 레이아웃을 다시 계산해줘서 constraint를 따로 조정하지 않아도 깔끔하게 처리된다.
- 팁: 애니메이션과 함께 사용하면 UX 향상에도 좋다.
4. Xcode Previews는 @PreviewProvider로 UIKit도 프리뷰 가능하다
- 설명: SwiftUI만의 전유물이 아니다.
- UIKit 기반 뷰도 UIViewRepresentable을 활용하면 Canvas에서 실시간으로 프리뷰할 수 있다.
#if DEBUG
import SwiftUI
struct MyView_Preview: PreviewProvider {
static var previews: some View {
ViewPreview {
MyCustomUIKitView()
}
}
}
#endif
5. OSLog으로 디버그 로그를 성능 저하 없이 남길 수 있다
- 설명: print() 대신 os_log를 사용하면 로그를 더 세밀하게 분류하고, 릴리즈 빌드에서는 자동으로 비활성화되므로 성능에도 유리하다.
import os.log
let logger = Logger(subsystem: "com.myapp", category: "network")
logger.debug("API 호출 성공: \(response.debugDescription)")
반응형
'iOS' 카테고리의 다른 글
[iOS] iOS 개발자를 위한 토막 상식 5 (0) | 2025.04.22 |
---|---|
[iOS] iOS 개발자를 위한 토막 상식 3 (0) | 2025.04.16 |
[iOS] iOS 개발자를 위한 토막상식 2 (0) | 2025.04.15 |
[iOS] iOS 개발자를 위한 토막상식 1 (0) | 2025.04.14 |