IOS
-
Swift Macro - attachIOS/WWDC24 2025. 6. 8. 17:16
여태까지 #을 사용하는 freestanding 메크로를 사용했음. 메크로의 종류가 2가지인 것을 다시 표로 상기시켜 보고 이번엔 attach 메크로에 알아보겠습니다. *사전지식두가지 메크로가 같은 코드에 적용되면 어떤 게 먼저 적용될지에 대한 주제로 고민한다면 정답은 어느 쪽도 상관이 없음 각 메크로마다 역할이 중복되지 않아서 어떤 순서로 선언하거나 실행해도 결과는 같음 attach 메크로 종류 attached peer기존 함수, 타입, 변수 등에 추가적인 선언을 생성해주는 메크로예시로, 비동기 처리에서 async와 completion handler를 통합할 때 보일러 플레이트 코드를 제거하는 예제로 쓰일 수 있음예시로, 비동기 처리에서 async와 completion handler를 통합할 때 보일러 ..
-
Swift Macro - implementIOS/WWDC24 2025. 6. 1. 23:32
1. 패키지 생성Xcode -> File -> New -> Package 선택 시 Swift macro가 있습니다.2. 구성 보기패키지 생성 시 기본적으로 #stringfy 메크로 선언, 구현, 단위 테스트 코드가 존재합니다.3. 메크로 선언stringify표현에 사용할 매크로 구현체가 있는 모듈을 #externalMacro로 상세한다.메크로에 사용될 구현체는 @main으로 프로그램 진입 시점에 선언@mainstruct WWDC_MacroPlugin: CompilerPlugin { let providingMacros: [Macro.Type] = [ StringifyMacro.self, SlopeSubsetMacro.self ]}플러그인 메커니즘플러그인은 호스트 프로세스..
-
Swift Macro - IntroIOS/WWDC24 2025. 5. 10. 16:12
목적Swift 코드에서 발생하는 보일러 코드를 제거하기 위해 5.9버전 부터 도입된 표현식사용범위Package처럼 별도의 Macro들을 구현해 다른 패키지에 의존성을 주입하는 방식으로 모듈화 가능기본 내장되어 있는 Macro들도 존재 예를들어 swiftUI @Observable주위사항Swift Macro는 단위 테스트를 작성할 것을 권장Macro는 프로젝트에 코드를 더하기만 할 뿐이니 남용 금지Macro의 종류와 용도종류@freestanding (독립형 메크로) 사용엔 (#메크로 이름) 형식으로 호출예시: #stringfy, #diagnose ...@attached(속성형 메크로)사용엔 (@메크로 이름) 형식으로 호출예시 : @Observable, @Codable ...용도 메크로 메커니즘SwiftSyn..
-
[WWDC24] Swift의 성능 살펴보기 (3/3)IOS/WWDC24 2025. 2. 9. 13:54
이번 글은 이전글에 이어서 작성하는 글로 Swift의 고수준 기능에 대한 글입니다. [WWDC24] Swift의 성능 살펴보기 (2 / 3)2024.12.07 - [IOS/WWDC24] - [WWDC24] Swift의 성능 살펴보기 (1 / 3)에 이어서 작성하는 글로 WWDC기반 영상을 분석하고 풀어낸 글입니다. 이번에는 메모리 할당 관련해서 설명하려 합니다. https://developer.appjjunbbang.tistory.com [WWDC24] Swift의 성능 살펴보기 (1 / 3)https://developer.apple.com/wwdc24/10217 Explore Swift performance - WWDC24 - Videos - Apple DeveloperDiscover how Sw..
-
[WWDC24] Swift의 성능 살펴보기 (2 / 3)IOS/WWDC24 2025. 2. 8. 13:13
2024.12.07 - [IOS/WWDC24] - [WWDC24] Swift의 성능 살펴보기 (1 / 3)에 이어서 작성하는 글로 WWDC기반 영상을 분석하고 풀어낸 글입니다. 이번에는 메모리 할당 관련해서 설명하려 합니다. https://developer.apple.com/wwdc24/10217 Explore Swift performance - WWDC24 - Videos - Apple DeveloperDiscover how Swift balances abstraction and performance. Learn what elements of performance to consider and how the Swift optimizer...developer.apple.com 1. Memory allo..
-
[WWDC24] Swift의 성능 살펴보기 (1 / 3)IOS/WWDC24 2024. 12. 7. 14:26
https://developer.apple.com/wwdc24/10217 Explore Swift performance - WWDC24 - Videos - Apple DeveloperDiscover how Swift balances abstraction and performance. Learn what elements of performance to consider and how the Swift optimizer...developer.apple.com해당 영상에서 Swift 최적화 부분에 표면적으로 드러나는 부분 외 내부적인 최적화를 다루는 내용입니다.보통 개발자는 표면적으로 바로 볼 수 있는 알고리즘을 수정해서 최적화하는 방법이 있지만 추가적으로 내부적인 최적화도 알고 있어야 한다는 걸 깨달은 영상으..
-
[WWDC19] Building Custom Views with SwiftUI Session, SwiftUI Layout 크기 메커니즘 알아보기IOS/WWDC24 2024. 9. 21. 09:04
[Introduce]이번 글은 WWDC19 Building Custom View with SwiftUI 영상에 소개된 SwiftUI View 메커니즘에 소개하려 합니다.SwiftUI를 활용한 iOS, iPadOS 등 컴포넌트 사용법을 습득하기에 급급했었습니다. Apple 생태계 개발에 입문하시는 분들에게 이번 영상을 계기로 좀 더 SwiftUI의 메커니즘을 이해하는 데 도움이 되는 마음으로 글을 작성하게 되었습니다. struct ContentView: View { var body: some View { Text("Hello World") }}간단한 코드이지만, 실제 어떤 계층 구조를 가지고 있는지 생각해 보신 적 있으신가요?SwiftUI에선 위 코드를 어떤 구조로 가지고 있을까요?SwiftUI도 UIk..
-
[WWDC24] Translation API_한번에 여러 컴포넌트 번역하기IOS/WWDC24 2024. 9. 14. 11:48
WWDC Translation API 소개 영상에 나온 기능 시연입니다. 한 번에 상호작용으로 여러 번역을 제공하는 시연 영상입니다. 이 기능을 구현하는 방법은 어떻게 하면 될까요? 1. TranslationSession classTranslationSession을 활용하면 한 번에 여러 텍스트를 번역해서 출력 또한 할 수 있다고 소개되어 있습니다. requests property를 보면, TranslationSeesion.Request 배열이 존재하고 이걸 파라미터로 전달하게 되는 형태인 거 같네요.SwiftUI에선. translationTask Modifier를 통해 Translation class 인스턴스를 생성하지 않고 사용할 수 있습니다.위 예시는 초기 Text가 표출 될 때 클로저가 한 번만 ..