분류 전체보기

    Metal Start

    Start Metal은 Apple 하드웨어에서 매우 효율적으로 설계되어 OpenGL ES를 사용할 때보다 향상된 속도와 낮은 오버헤드를 제공한다. 이 튜토리얼에서는 Metal API를 사용해서 간단한 삼각형 그리기를 해볼 것이다. 만약 OpenGL등의 경험이 있다면 Metal에도 동일한 개념이 많이 적용되어 있어 쉽게 할 수 있을 것이다. Metal을 사용해 랜더링을 하려면 7단계를 따라야 한다. 1. MTLDevice 2. CAMetalLayer 3. Vertex Buffer 4. Vertex Shader 5. Fragment Shader 6. Render Pipeline 7. Command Queue 1. MTLDevice 먼저 MTLDevice에 대한 참조를 얻어야 한다. GPU에 직접적으로 연결되..

    [iOS] 푸시, 다이나믹 링크 등으로 실행될 때 디버깅하기

    앱 아이콘을 클릭하고, Edit Scheme...을 누른다. 이 후 Info 탭에서 Launch 메뉴를 보면 Automatically와, Wait for the executable to be launched가 있는데, Automatically가 기본 옵션이고, 아래 옵션이 앱 빌드 후, 내가 앱을 직접 실행할때 까지 기다리는 옵션이다. 이 옵션을 이용하면 다이나믹 링크나, 푸시 등으로 앱이 실행될때 디버깅을 쉽게 할 수 있다.

    KeyPath

    Swift 4에서 도입된 KeyPath는 속성이나 서브스크립트에 대한 참조를 나타내는 안전한 방법이다. KeyPath를 사용하면 속성의 이름을 직접 사용하는 대신에 키 경로를 통해 속성에 접근할 수 있다. 이를 통해 컴파일러가 키 경로의 유효성을 검사하고 타입 안정성을 보장할 수 있다. KeyPath는 세 가지 주요 유형으로 분류된다. KeyPath to a Property (속성에 대한 KeyPath): 이 유형의 KeyPath는 특정 타입의 속성에 대한 참조. 예를 들어, KeyPath는 Person 타입의 String 속성에 대한 KeyPath이다. struct Person { var name: String var age: Int } let person = Person(name: "John", ag..

    2022 WWDC Design protocol interfaces in Swift

    Understand type eraure: associated type이 있는 protocol이 existential any type과 어떻게 상호 작용하는지 설명. Hide implementation details: interface와 implementation을 분리해서 캡슐화하기 위해 opaque type을 사용하는 방법에 대해 설명. Identify type releationships: protocol에서 same-type requirements가 concrete type의 여러가지 다른 sets간의 관계를 모델링하는 방법에 대해 설명. Understand type eraure protocol Animal { associatedtype CommodityType: Food func produce()..