전체 글 7

Swift6에서 didSet이 호출되지 않는 경우

개요Swift6로 이것저것 해보는 중 예상치 못한 이슈를 하나 마주함.분명히 didSet이 붙어 있는 프로퍼티인데, 값이 설정됐음에도 불구하고 didSet이 호출되지 않는 현상이 발생한 것.var fooType: Foo { didSet { someAction() }} 이 코드만 보면 문제가 없어 보인다.그런데 아래와 같은 방식으로 값을 설정했을 때, didSet이 전혀 호출되지 않았다. 문제 상황convenience init(foo: Foo) { self.init() defer { self.fooType = foo }} fooType은 didSet이 붙어 있는 저장 프로퍼티convenience init 내부에서 defer를 사용해 fooType에 값을 할당그런데 didSet이..

iOS 2025.09.25

iOS 26부터 UIKit 앱은 SceneDelegate가 필수

Migrating to the UIKit scene-based life cycle 2025.05 공개된 Apple Tech Note TN3187을 확인해보면 iOS 26 부터 SceneDelegate를 사용하지 않으면 빌드가 불가능하다고 함. 다음 메이저 릴리스부터는 최신 SDK로 빌드 시 UIScene Lifecycle 채택이 필수이며, 그렇지 않으면 앱이 실행되지 않는다고 명시되어 있음. (iOS 18.4/26 SDK에서 이미 경고 로그가 나오고, 차기 메이저에서 assert로 변경될 예정) WWDC25 세션(Make your UIKit app more flexible)에서도 같은 내용이 포함되어 있음. multiple scene이 권장되며, iOS 26에 이은 다음 주요 릴리즈에서는 최신 SDK로..

iOS/UIKit 2025.08.26

Instruments로 SwiftUI의 성능 최적화하기 - WWDC25

Instruments로 SwiftUI의 성능 최적화하기(Optimize SwiftUI performance with Instruments) WWDC25 Intro 앱이 멈추거나 중단되어 응답성이 떨어질 때 우리는 앱 성능에 문제가 있다고 판단하게 됨.즉, Hitch와 Hang 같은 현상을 말함. Hitch 또는 Hang이 발생하면 애니메이션이 일시 정지되거나 점프될 수 있고, 스크롤이 지연될 수 있는데,이러한 성능 문제를 식별하는 가장 좋은 방법은 Instruments를 사용해 앱을 Profiling하는 것임. Instruments를 사용하면 다양한 성능 문제를 식별할 수 있는데이번 글에서는 SwiftUI 사용으로 인해 발생하는 성능 문제에 집중해 볼 예정. Instruments 26에서는 Swi..

iOS/WWDC 2025.08.12

Foundation Models 프레임워크 자세히 알아보기 - WWDC25

Foundation Models 프레임워크 자세히 알아보기(Deep dive into the Foundation Models framework) WWDC25 이 글을 읽기 앞서, Foundation Models 프레임워크 만나보기 글을 읽고 오는 것을 추천합니다. Foundation Models Framework 만나보기 - WWDC25Foundation Models 프레임워크 만나보기 (Meet the Foundation Models framework) WWDC25 Foundation Models Framework. 애플에서 발표한 Foundation Models Framework은 Apple Intelligence를 구동하는 기기 내에서 LLM에 접근할 수 있는lzufs.tistory.com In..

iOS/WWDC 2025.08.08

Foundation Models Framework 만나보기 - WWDC25

Foundation Models 프레임워크 만나보기 (Meet the Foundation Models framework) WWDC25 Foundation Models Framework. 애플에서 발표한 Foundation Models Framework은 Apple Intelligence를 구동하는 기기 내에서 LLM에 접근할 수 있는 Swift API를 제공함.macOS, iOS, iPadOS, visionOS 모두 사용 가능. 개인 맞춤형 검색제안, 여행 일정 자동 생성, 게임 속 캐릭터 대화 실시간 생성 등Foundation Models Framework를 통해 새로운 기능을 On-Device AI를 통해 구현해볼 수 있음. On-Device의 장점은 다음과 같음.모델을 통과하는 모든 데이터는..

iOS/WWDC 2025.07.25

SwiftUI View 성능 이해 및 개선 (Equatable)

문제 개요SwiftUI로 개발을 하고 난 이후, 선언적인 특성 덕분에 UiKit과 비교했을 때 UI 요소를 개발하는 속도가 크게 빨라짐.또한 상태를 관리, 결합하는 과정도 훨씬 간결하고 직관적으로 표현할 수 있어서 여러모로 유리함. (애니메이션 구현 난이도도 낮음) 하지만 물론 좋은 점만 있는 것은 아님.위에서 말한 것들이 가능한 이유는 SwiftUI는 내부적으로 많은 암묵적인 기능과 구현을 갖고 있기 때문임. 특히 그 중에서도 성능과 뷰의 리렌더링과 관련된 부분은 공식 문서에도 자세히 설명되어 있지 않음. 간단한 앱이라면 사실 문제가 없지만, 수 많은 뷰들을 동시에 보여주면서 데이터가 자주 바뀌는 상황이라면 이야기가 달라짐.왜냐하면, SwiftUI의 View가 업데이트 되는 방식은 내부적인 Diffab..

iOS/SwiftUI 2025.07.24

1장 객체, 설계

느낀 점지인의 추천으로 정독을 시작하게 되었는데, 개념적으로 부족했던 부분을 많이 채워줄 수 있는 책인 것 같아서 만족스러움. 배운 것들이 차곡차곡 쌓이다 보면, 작업할 때 내 선택에 확신이 생기는 순간이 올 거라고 생각하고 그걸 목표로 하고 있음. 절차지향적으로 설계된 코드를 기반으로, 그 코드가 가진 구조적인 문제점을 분석하고 객체지향 개념을 도입해 점진적으로 개선해나가는 과정이 객체지향 원칙을 체득하는 데에 큰 도움이 되었던 것 같음. 설계 및 수정 과정에서 UML 클래스 다이어그램과 함께 설명해주는 부분이 특히 인상적이었음. 난이도가 쉬운 편은 아니지만, 단순히 코드만 비교하는 게 아니라 각 단계에서 설계가 어떻게 변화하고 있는지를 시각적으로 보여주기 때문에 문제의 본질을 더 명확하게 이해할 수 ..