2024 KWDC 톺아보기
소개
2024 KWDC 내용 정리
당신의 View가 버벅이는 이유
화면 렌더링이 멈추는 대표적인 Case인 메인 스레드가 동작하지 않는 원인들에 대해 알아보고, 이를 테스트하기 위한 방법들에 대한 내용이다.
Swift에서는 View protocol의 body 생성자를 통해 화면에 표시할 구성요소들을 정 의 해준다. 이러한 View는 Main thread와 Background thread를 통해 코드가 실행되는 방식을 제어 할 수 있는데 어떻게 더 부드러운 화면을 만들 수 있는지 알아보자
View가 멈추는 대표적인 이유
화면이 멈추는 이유는 대부분 메인 스레드에 Blocking이 발생하기 때문이다. 그렇다면 메인 스레드에 Blocking이 발생하는 원인은 어떤게 있을까?
- 메인 스레드가 동작하지(반응하지) 않는 이유
- 스레드에 작업이 할당되어 있을 때
- 다른 응답을 기다리고 있을 때 ex) async hang
메인 스레드에 작업이 걸리는 경우들
- View model의
initialize
시점에 작업 할당 시 ->initialize
시점에 작업 할당 시 메인 스레드에서 동작하도록 되어있어 의도치 않게 메인 스레드에 작업이 할당될 수 있다
SwiftUI 애니메이션의 마법
SwiftUI iOS 개발자인 pavel zak
님이 SwiftUI Canvas를 사용해 여러 애니메이션들을 구현하는 방법과 예제를 공유해주었다. 발표 당시 ppt 자료 글씨가 너무 작게보여 해당 내용들을 기록해둘 수 없었는데, 개인 블로그인 Pavel Zak’s dev blog에 잘 정리되어있어 코드를 확인할 수 있었다.
블로그 링크로 발표 내용 정리를 대신하고, 추후 시간이되면 포스트를 하나씩 따라하며 정리해보려한다.
위젯, 위젯, 어디에나 있고 픽셀 하나도 남기지 않기
iOS, iPadOS, watchOS, macOS 등 애플 기기 전반에 걸쳐 활용되는 위젯을 구현해본 경험을 공유하는 시간이었다.
iOS 16 부터 위젯에 여러 상호작용이 가능하도록 구현되어 이를 활용한 위젯 개발이 가능해졌다. 이를 토대로 여러 디바이스 환경에서 위젯을 개발하는 방법과 위젯을 개발할 때 고려해야할 사항들을 공유하는 시간이었다.