iOS/WWDC 3

What's New in Swift (2020)

Swift 5에 API 안정성이 도입되면서 Swift에 Binary Framework가 도입되었습니다. 이로 인해서 SwiftUI 같은 강력한 API가 등장했습니다. 또한 Swift Package Manager를 사용하여 접근할 수 있는 오픈 소스 API가 증가 되었고 도메인 문제를 해결하기 위한 Cross-Platform으로써 성장할 수 있습니다. 1. 런타임 성능 발전에 대해서 Swift 4이후 버전, vs Objective-C 버전 Swift 4.1은 코드 크기 최적화로 많은 부분을 제거할 수 있었는데 Swift 5.3에서는 Objective-C 버전 코드 크기의 1.5배 이하로 줄였습니다. SwiftUI에서는 앱의 코드 크기가 개선되었습니다. 2. Dirty 메모리 사용한 개선에 대해서 Binar..

iOS/WWDC 2023.06.30

WWDC16) Understanding Swift Performance - 2

프로토콜 유형과 제네릭 코드 구현을 탐색 프로토콜 유형 변수가 저장되고 복사되며 메소드 디스패치가 작동하는 방식을 알아 볼 겁니다. 여기 Drawable 추상 기본 클래스 대신, draw 메소드를 선언하는 protocol drawable이 있습니다. 또한 값 타입인 구조체 Point와 Line이 프로토콜을 준수하고 있습니다. 이제 값타입도 다형성을 가지게 되었습니다. 우리는 drawable프로토콜 타입의 배열에 Point와 Line 타입의 값을 모두 저장할 수 잇습니다. 그러나 이전과 비교했을 때, 다른 점이 있습니다. 참고로 값 유형 구조체인 Line과 point구조체는 Kyle이 방금 보여준 V-Table 디스패치를 수행하는데 필요한 공통 상속 관계를 공유하지 않습니다. 그렇다면 이 메서드에 대한 디..

iOS/WWDC 2023.05.02

WWDC16) Understanding Swift Performance - 1

주제: 디자인 공간을 좁히고 작업에 적합한 올바른 도구를 선택하는 방법 Swift의 다른 추상화 메커니즘의 모델링 영향을 고려 값 또는 참조 세마틱스 중 어떤 것이 적합한지 이 추상화를 얼마나 동적으로 만들어야 할지 메모리 할당 빠른 Swift 코드를 작성하려면 우리는 활용하지 않는 동적성과 런타임에 대한 가격을 피해야 합니다. Swift는 자동으로 메모리를 할당하고 해제 합니다. 그 중 일부는 스택에 할당 됩니다. Stack 스택은 매우 간단한 데이터 구조 입니다. 스택의 끝에 push할 수 있고, 스택의 끝에서 pop할 수 있습니다. 스택은 항상 끝에서 추가 및 제거가 일어나기 떄문에 끝점을 가리키는 포인터만 유지하면 됩니다. 스택 포인터라고 불리는 스택의 끝점에 메모리를 할당 할 수 있음을 의미 합..

iOS/WWDC 2023.04.28