SWIFT
-
https://velog.io/@ictechgy/SwiftUI%EC%9D%98-View-%EB%A0%8C%EB%8D%94%EB%A7%81%EC%9D%80-%EC%96%B8%EC%A0%9C-%EC%9D%B4%EB%A3%A8%EC%96%B4%EC%A7%80%EB%8A%94%EA%B0%80
[스크랩] SwiftUI의 View 렌더링은 언제 이루어지는가?https://velog.io/@ictechgy/SwiftUI%EC%9D%98-View-%EB%A0%8C%EB%8D%94%EB%A7%81%EC%9D%80-%EC%96%B8%EC%A0%9C-%EC%9D%B4%EB%A3%A8%EC%96%B4%EC%A7%80%EB%8A%94%EA%B0%80
2024.04.19 -
그동안 수없이 사용했던 캡쳐리스트에 대해 오해하고 있었던 것 같아서 다시 정리한다.클로져를 사용할 때 같은 컨텍스트에 있는 변수들을 캡쳐리스트 없이 사용하게 되면 reference type이든, value type이든 무조건 reference로 캡쳐된다.캡쳐리스트를 사용하면 value type은 클로져 생성 시의 값을 그대로 복사하여 value를 캡쳐할 수 있다.단 reference type은 캡쳐 리스트를 사용해도 reference로 캡쳐가 되기 때문에 weak, unowned 를 사용하여 retain cycle을 피할 수 있도록 해야 한다. 명시하지 않으면 strong 캡쳐가 기본이다.(Edit)value type은 캡처리스트 없이 캡쳐해도 값 그대로 복사되는 것 같은데?이거 검증이 좀 필요한 것 같..
캡쳐리스트그동안 수없이 사용했던 캡쳐리스트에 대해 오해하고 있었던 것 같아서 다시 정리한다.클로져를 사용할 때 같은 컨텍스트에 있는 변수들을 캡쳐리스트 없이 사용하게 되면 reference type이든, value type이든 무조건 reference로 캡쳐된다.캡쳐리스트를 사용하면 value type은 클로져 생성 시의 값을 그대로 복사하여 value를 캡쳐할 수 있다.단 reference type은 캡쳐 리스트를 사용해도 reference로 캡쳐가 되기 때문에 weak, unowned 를 사용하여 retain cycle을 피할 수 있도록 해야 한다. 명시하지 않으면 strong 캡쳐가 기본이다.(Edit)value type은 캡처리스트 없이 캡쳐해도 값 그대로 복사되는 것 같은데?이거 검증이 좀 필요한 것 같..
2023.11.17 -
이미 다 아시는 내용일 수도 있지만... Rx를 많이 쓰다보면 아래와 같은 크래시 로그를 마주하는 것이 낯설지 않죠.. 그런데 QA나 CS로 들어오는 크래시 로그는 위의 경우 처럼 정작 애플리케이션 코드(위에서는 UseCase라고 되어 있는 부분)의 콜스택은 symbolification되어 있지 않은 경우가 많습니다. 이 경우에 RxSwift 콜스택을 이용하면 의외로 쉽게 문제가 된 지점을 찾아낼 수 있습니다. 위의 콜스택에서 protocol witness for ObserverType.on(_:) in conformance XXXSink 라고 되어있는 콜스택은 Rx의 XXX 오퍼레이터를 사용한 부분이라고 볼 수 있고 따라서 이 경우는 다음과 같은 순서로 Rx 오퍼레이터가 사용된 곳이라고 볼 수 있습니다..
[Tip] RxSwift 콜스택만 잔뜩있는 크래시 로그로 디버깅하기이미 다 아시는 내용일 수도 있지만... Rx를 많이 쓰다보면 아래와 같은 크래시 로그를 마주하는 것이 낯설지 않죠.. 그런데 QA나 CS로 들어오는 크래시 로그는 위의 경우 처럼 정작 애플리케이션 코드(위에서는 UseCase라고 되어 있는 부분)의 콜스택은 symbolification되어 있지 않은 경우가 많습니다. 이 경우에 RxSwift 콜스택을 이용하면 의외로 쉽게 문제가 된 지점을 찾아낼 수 있습니다. 위의 콜스택에서 protocol witness for ObserverType.on(_:) in conformance XXXSink 라고 되어있는 콜스택은 Rx의 XXX 오퍼레이터를 사용한 부분이라고 볼 수 있고 따라서 이 경우는 다음과 같은 순서로 Rx 오퍼레이터가 사용된 곳이라고 볼 수 있습니다..
2023.11.16 -
some - opaque type 특정 프로토콜을 준수하는 것을 나타내는 불투명 유형을 만들기 위해 프로토콜과 함께 사용된다. 불투명 유형의 기본 유형은 변수 scope 내에서 하나로 고정되어야 합니다. 같은 구체 타입의 새로운 인스턴스를 변수에 할당하는 것도 금지되어 있습니다. 배열이나 리턴타입에서도 하나의 구체 타입으로 고정되어야 합니다. any - existential type Existential Type (Existentials, 실존타입, 실존유형) protocol과 associated type을 이용하여 특정 바운더리로 제약시키는 방법 Swift 5.7부터 실존 타입에는 any를 쓰는 것이 필수다. 왜냐하면 실존타입을 사용하는 것이 동적 타입 결정으로 인한 성능 저하를 불러올 수 있음에도 너..
some, anysome - opaque type 특정 프로토콜을 준수하는 것을 나타내는 불투명 유형을 만들기 위해 프로토콜과 함께 사용된다. 불투명 유형의 기본 유형은 변수 scope 내에서 하나로 고정되어야 합니다. 같은 구체 타입의 새로운 인스턴스를 변수에 할당하는 것도 금지되어 있습니다. 배열이나 리턴타입에서도 하나의 구체 타입으로 고정되어야 합니다. any - existential type Existential Type (Existentials, 실존타입, 실존유형) protocol과 associated type을 이용하여 특정 바운더리로 제약시키는 방법 Swift 5.7부터 실존 타입에는 any를 쓰는 것이 필수다. 왜냐하면 실존타입을 사용하는 것이 동적 타입 결정으로 인한 성능 저하를 불러올 수 있음에도 너..
2023.07.25 -
Swift 개발자라면 한 번 쯤 봤을법한 아래 영상을 리마인드할 겸 다시 리뷰하던 중 이런 궁금증이 생겼다. https://developer.apple.com/videos/play/wwdc2016/416/ Understanding Swift Performance - WWDC16 - Videos - Apple Developer In this advanced session, find out how structs, classes, protocols, and generics are implemented in Swift. Learn about their relative... developer.apple.com "protocol을 채택하지 않는 struct도 3word가 넘으면 데이터가 heap에 저장될까?" 사실..
protocol을 채택하지 않는 struct도 3word가 넘으면 데이터가 heap에 저장될까?Swift 개발자라면 한 번 쯤 봤을법한 아래 영상을 리마인드할 겸 다시 리뷰하던 중 이런 궁금증이 생겼다. https://developer.apple.com/videos/play/wwdc2016/416/ Understanding Swift Performance - WWDC16 - Videos - Apple Developer In this advanced session, find out how structs, classes, protocols, and generics are implemented in Swift. Learn about their relative... developer.apple.com "protocol을 채택하지 않는 struct도 3word가 넘으면 데이터가 heap에 저장될까?" 사실..
2023.07.19