Dynamic Island의 Live Activity 숨기기
Dynamic Island의 Live Activity 숨기기 TL;DR 내 앱의 ViewController에서 홈 인디케이터를 숨기면(prefersHomeIndicatorAutoHidden = true) Dynamic Island에 떠 있는 Live Activity가 보이지 않게 돼요. 공식적으로 “다른 앱의 Live Activity를 숨기는 API”는...
Dynamic Library를 embed하지 않았을 때 생기는 문제
Dynamic Library를 embed하지 않았을 때 생기는 문제 이 글에서는 Dynamic Framework를 embed하지 않았을 때 발생하는 문제와 그 원리를 정리해보려고 해요. Static Framework vs Dynamic Framework 먼저 두 프레임워크의 차이를 간단히...
Swift의 Hashable
Swift의 Hashable 1. Hashable 이란? Swift에서 Hashable은 값을 해시(hash)할 수 있도록 보장하는 프로토콜입니다. Set이나 Dictionary 같은 컬렉션에서 요소나 키를 빠르게 검색하기 위해 내부적으로 해시 테이블을 사용하는데, 여기서 필요한 것이 바로...
Swift Closure의 Capture
1. 개요 Swift에서 Closure는 코드 블록을 변수처럼 다룰 수 있는 기능입니다. 함수(Function)와 유사하지만, 주변 컨텍스트(Context)를 캡처할 수 있다는 점이 Closure의 가장 큰 특징이에요. 이 글에서는 Swift Closure의 Capture 방식에 대해...
Gesture Recognizer와 Responder Chain
Gesture Recognizer와 Responder Chain iOS 앱 개발을 하다 보면 CollectionViewCell을 눌렀는데 반응하지 않거나 하는 상황이 생겨요. 저도 그런 문제를 경험했고, 원인은 Gesture Recognizer와 Responder Chain의 관계에 있었어요. 이 글에서는 해당...
Swift에서 Instruments의 Points of Interest 활용법
Swift에서 Instruments의 Points of Interest 활용법 1. 개요 Instruments로 앱의 성능을 분석할 때, 복잡한 로그와 다양한 이벤트가 한데 섞여 있으면 “정확히 어떤 시점에 문제가 발생했는지” 파악하기 어려워요. 이럴 때 Instruments의...
Swift ARC Deep Dive
Swift ARC Deep Dive 1. 계기 예전에 ARC 관련 코드가 컴파일 단계에서 어떻게 동작하는지 확인하려고 SIL로 컴파일해서 분석하는 글을 쓴 적이 있어요. 그런데 SIL로 변환된 코드를 직접 보니, 몇 가지...
Particle Animation 메모리 최적화 방안 끄적임
Particle Animation 메모리 최적화 방안 끄적임 주의: 생각의 흐름을 정리하기 위한 글이라 앞 뒤 맥락없이 아무 말이나 할 수 있습니다. 이전에 Metal을 이용해서 Particle Animation을 만들었는데, 메모리 사용량 때문에 머리가...
ARC(Automatic Reference Counting)를 SIL로 직접 확인해보기
ARC(Automatic Reference Counting)를 SIL로 직접 확인해보기 1. Swift의 ARC, 직접 눈으로 볼 수 있을까요? Swift 개발을 하다 보면 “ARC는 인스턴스 생성 시 retain, 해제 시 release”라고 배우는 경우가 많아요. 하지만...
Metal을 이용한 Particle Animation
Metal을 이용한 Particle Animation 개요 이 글에서는 iOS에서 대량의 파티클 애니메이션을 효율적으로 구현하는 실제 경험을 공유합니다. Core Animation으로 시작해 Metal로 전환한 이유, 성능 비교, 자동화 Stress Test 경험을 공유합니다. Core...