iOS 개발을 하다 보면 SwiftUI와 UIKit의 초기화(Initialization) 방식이 크게 다르다는 것을 알게 됩니다. 오늘은 이 차이점과 그 이유에 대해 자세히 알아보겠습니다.SwiftUI에서 View를 만들 때 init을 작성하지 않아도 되는데, UIKi
Swift 5.5에서 도입된 Actor는 동시성 프로그래밍을 위한 강력한 도구입니다. 하지만 모든 상황에서 Actor가 정답은 아닙니다. 이 글에서는 Actor와 Class의 차이점을 알아보고, 각각을 언제 사용해야 하는지 실용적인 관점에서 살펴보겠습니다.Actor의
SwiftUI를 사용하다 보면 @State, @Binding, @ObservedObject 같은 Property Wrapper를 자주 사용합니다. 하지만 커스텀 이니셜라이저를 만들 때 "Cannot assign to property: 'self' is immutable
SwiftUI 앱에서 iPad 지원을 위해 Launch Screen을 설정했는데 다음 오류가 발생했습니다.Info.plist의 UILaunchStoryboardName 값에서 확장자를 제거하면 됩니다.프로젝트 → 타겟 → Info 탭 → Custom iOS Target
오늘은 Swift Concurrency를 공부하기 위해 진행하던 사이드 프로젝트에 async/await를 적용하려고 했어요. 이런 방식으로 하면 된다고 해서 한번 해 봤는데...먼저 URLSession.shared.data(for:) 메서드는 튜플 (Data, URLR
최근 사이드 프로젝트로 "5초 뒷담화 앱"을 개발하면서 Socket.IO를 사용할 기회가 생겼습니다. 실시간으로 익명의 뒷담화가 5초씩 표시되고 사라지는 앱을 만들면서, Swift에서 Socket.IO를 다루는 다양한 노하우를 얻을 수 있었습니다.웹소켓을 사용한 실시간
이번에 사이드 프로젝트에서 토스트 기능을 구현하던 도중 토스트가 화면에 있는 동안 다른 토스트가 불리면 어떻게 해야 할까를 고민하던 도중 DispatchWorkItem가 있다는 것을 알게 되어 사용해 보았습니다.DispatchWorkItem은 Grand Central
이번에 토스트를 추가하면서 ViewModifier를 사용해 봤습니다. 처음엔 단순히 코드를 따라 쳤는데, 알고 보니 SwiftUI에서 정말 유용한 패턴이더라고요. 한번 제가 사용한 방법을 정리해 보겠습니다.ViewModifier는 SwiftUI에서 뷰를 변경하고 꾸미는
SwiftUI에서 수직 레이아웃을 구성할 때 VStack과 LazyVStack 중 어떤 것을 선택해야 할지 고민해본 적 있나요? 최근 개인정보처리방침 화면을 구현하면서 스크롤 감지 기능이 예상과 다르게 동작하는 문제를 겪었는데, 이를 통해 두 컴포넌트의 중요한 차이점을