SwiftUI 65

What's new in SwiftUI (WWDC26)

What's new in SwiftUI (WWDC26) 목차Refreshed look and feelDocument-based appsPresentation and interactionData flow and performanceRefreshed look and feel새롭게 앱을 빌드하고 실행하면 Liquid Glass 디자인이 업데이트 된 모습으로 자동 적용 appearsActive를 사용해서 조건부로 버튼의 불투명도를 조절할 수 있음.Xcode 27부터는 Preview에 리사이징이 가능하도록 변경SwiftUI로 만든 앱은 이런 기능을 자동으로 지원하지만 UIKit과 SwiftUI를 모두 사용하고 있다면 고려해야할 사항 존재.Screen Geometry 확인, 디바이스 대신에 size class 사..

Apple/WWDC 2026.07.02

SwiftUI의 Observation 알아보기 (Discover Observation in SwiftUI) - WWDC23

SwiftUI의 Observation 알아보기 SwiftUI에서 마법적인 기능에 대해서 소개할 것.Observation은 SwiftUI의 뷰가 반응형으로 동작할 수 있도록 도와줌. 목차What is ObservationSwiftUI property wrappers유용한 프로퍼티래퍼 알아볼 것Advanced usesObservable의 고급 사용 사례ObservableObject와 새로운 @Observable 매크로로 코드를 업데이트 하는 예시 Observation은 프로퍼티의 변화를 추적하는 Swift의 신기능.평범한 Swift의 타입을 매크로의 형태로 바꿔둠. Observable을 추가하므로써 UI가 데이터 모델의 변화에 대응할 수 있음.Swift의 새로운 매크로 시스템 덕분에 Swift 5.9에서는..

Apple/WWDC 2026.05.16

SwiftUI 핵심 기능 (SwiftUI essential) - WWDC24

SwiftUI 핵심 기능 (SwiftUI essential) - WWDC24 다양한 기능이 있으며 Apple 플랫폼에서 자연스럽게 통합되고 더 적은 코드로도 프로덕션을 더 빠르게 만들 수 있음.또한, 기존 코드 베이스에 한번에 적용하는게 아닌 점진적으로 적용할 수 있도록 호환성도 갖춤. 목차Fundamentals of views뷰가 작동하는 방식에 대한 설명Built-in capability내장된 기능Across all platformApple 플랫폼에서 어떻게 작동하는지 설명SDK interoperability다른 프레임워크와 통합되는 SwiftUI View는 UI의 기본 구성 단위로 화면에 표시되는 모든 픽셀은 어떤 식으로든 뷰에 의해서 정의. SwiftUI에서 선언형과 명령형은 서로 배타적이..

Apple/WWDC 2026.05.16

SwiftUI의 새로운 기능 (Explore related documentation, sample code, and more) -wwdc25

SwiftUI의 새로운 기능 (Explore related documentation, sample code, and more) SwiftUI의 저성능 관련 개선사항부터 UI상의 버튼에 이르기까지 시스템 전반에 걸쳐 개선 목차Make the new design shine새로운 모든 시스템 기능 리뷰Framework foundations성능과 애니메이션, 레이아웃 관련 개선사항 공유SwiftUI across the systemApple 플랫폼 전반에 걸쳐 SwiftUI를 사용할 수 있는 새로운 환경 소개Expand SwiftUI views웹 콘텐츠, 리치 텍스트 지원 등 SwiftUI 뷰의 새 기능에 대해 알아볼 것. Make the new design shine네비게이션, 버튼, 탭바, macOS, Pad..

Apple/WWDC 2026.05.02

Transactional observation preserves consistency

Transactional observation preserves consistency Transactional observation preserves consistency는 주로 상태 관찰 시스템(ex Swift의 Observable)에서 사용하는 개념 Transactional observation트랜잭션 단위의 관찰 → 일련의 변화(이벤트, 값 변경 등)를 하나의 단위로 관찰한다는 뜻Preserves consistency일관성을 유지한다 → 상태가 중간에 깨지지 않고, 항상 논리적으로 올바른 상태라는 뜻 즉, 여러 상태 변화가 한꺼번에 발생했을 때, 그 중간 과정은 보지 않고 완전히 반영된 상태만 관찰자에게 전달된다는 의미.

힙 메모리 분석하기(Analyze heap memory) - WWDC24

힙 메모리 분석하기(Analyze heap memory) - WWDC24 힙 메모리는 앱에서 직간접적으로 사용되며, 개발자가 제어하고 최적화할 수 있는 영역.앱의 Reference 타입이 저장되는 곳이며, 쓰기 작업이 자주 발생하고 수정되기 때문에 중요함.이렇게 수정된 메모리들은 메모리 한도에 포함되어 계산 됨.이번 세션에서는 힙 메모리 측정과 감소 방법에 대해서 주로 다룰 것. 메모리 측정이나 최적화에 대해서 더 알고 싶다면 다른 세션들도 존재함. - 측정하기- 일시적 증가에 대응- 지속적 증자 추적- 메모리 누수 수정하기- 런타임 성능 개선하기총 5가지 세션에 대해서 다룸 힙을 이해하려면 앱의 전체 가상 메모리 내에서 어떤 맥락에 있는지를 알아야 함.앱이 시작되면, 자체적인 빈 가상 메모리 ..

Apple/WWDC 2025.06.03

[Swift] Timer + RunLoop, backgroundQueue (swift-corelibs-foundation)

[Swift] Timer + RunLoop, backgroundQueue (swift-corelibs-foundation) 서비스 및 기능에 따라서 RunLoop.main에서 돌아가게 하면 안되는 케이스도 존재. 잘못 설계할 경우 Timer기반으로 동작하는 로그나 기능 등 예상치 못한 결과를 낼 수 있음. RunLoop.main에서 타이머가 아예 방출되지 않거나 RunLoop.main이 아닌 다른스레드에서 돌려야 하는 경우에 대하서 자세히 알아볼 예정 위 케이스들을 내부 구현 코드를 통해 근거 있게 정리해보고자 함. 글의순서 타이머 알아보기 swift-corelibs-foundation내에 Timer 구현 알아보기 Timer 선언부 Timer scheduledTimer 함수 RunLoop 간단히 알아보..

SwiftUI로 Placeholder가 존재하는 TextField 설계 팁 (UIKit호환)

SwiftUI로 Placeholder가 존재하는 TextField 설계 팁 (UIKit호환) 최근 프로젝트에서 SwiftUI와 UIKit을 혼용해서 사용하는 빈도가 늘어남. 최신 생성되는 디자인 컴포넌트는 SwiftUI를 기반으로 하되, UIKit을 지원하는 방향으로 설계 SwiftUI를 사용할 때는 View에 상태를 저장해서 Cell 등에서 재사용 될 때 문제가 없도록 하는게 중요함. 회사 서비스가 iOS 15를 최소 버전으로 지원하므로 이에 맞추어 설계 목차스크린샷세부 설계컴포넌트 코드 (View / Store / Reducer)설계 중점 포인트SwiftUI 사용법UIKit 사용법 스크린샷 돋보기 아이콘, placeholder, 입력 중에만 나타나는 clear 버튼을 가진 검색 필드를 만들어서 사용 ..

SwiftUI 하위뷰에서 상위뷰로 DelegatePattern을 활용해 이벤트 전달하기

SwiftUI 하위뷰에서 상위뷰로 DelegatePattern을 활용해 이벤트 전달하기 글의 순서상황어떻게 처리할까?코드 적용 예시마무리 상황홈 화면에서 프로필 리스트가 있는 네비게이션 방식으로 화면을 전환하고, 해당 화면에서 프로필을 전환하고 pop 혹은 dismiss로 홈 화면으로 돌아왔을 때, 프로필이 전환되어야 함. 즉, 하위 뷰가 상위 뷰로 프로필이 전환되었음(이벤트)을 알려야 함. 어떻게 처리할까?우선 UIKit에서라면 여러가지 방법이 있겠지만, 단순하게는 Delegate Pattern이 있음.SwiftUI에서는 Environment, preferenceKey를 활용할 수 있고, @State, @Binding을 활용해 하위 뷰와 연결할 수도 있음. SwiftUI에서 제안된 방법들은 사용..

Coordinator 모듈을 통해 UI 모듈간 순환참조 해결하기

Coordinator 모듈을 통해 UI 모듈간 순환참조 해결하기 모듈을 분리하면서 화면 이동에 대한 처리가 필요해짐.기존 구조에서`UI` 모듈끼리 서로의 UI 및 기능이 필요한 경우 모듈간 순환참조가 발생할 수도 있음. 글의 순서완성한 동작 영상문제 상황아이디어 스케치Coordinator 모듈 설계하기UI 모듈 영역 적용 및 사용App 모듈 영역 적용 및 사용PresentationView 자세히보기NavigationDestinationView 자세히보기 완성한 동작 영상 영상 재현경로 설명HomeUI (모듈)[present] MultiProfileUI (모듈)[navigation] > ProfileEditUI (모듈)3개의 모듈이 화면전환이 정상적으로 동작함. 문제 상황예를 들어 홈 > 통합검..