![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cU7S6v/btsL3X9K7Tq/dKZgpnXHRKgTpu5yxhVCeK/img.png)
- WWDC 24 > Meet Swift Testing- WWDC 24 > Go further with Swift Testing- 소개 | 개발 문서 [1] 언제 @Suite 를 직접 붙여야하는가 ? 문서: A type containing test functions is automatically a test suite and can be optionally annotated with the @Suite attribute. WWDC 와 문서에서 말하는 것 처럼, 테스트 함수를 포함하는 타입은 자동으로 테스트 스위트가 되기 때문에@Suite 를 직접 붙일 필요가 없다. 즉 두개는 똑같기 때문에 굳이 @Suite 를 안붙여줘도 됨. 그럼 @Suite 를 언제 붙이면 좋을까 ? display..
[1] NSCollectionLayoutBoundarySupplementaryItem > absoluteOffset 대놓고 이름이 offset 인데, inset 처럼 동작안해서 이상하다고 생각하고 있었다 ;;;;; 위 그림에서 item (파란색) bottom 으로 부터 안쪽 100에 footer (초록색) 이 위치해야하는데, 이상하다 ? 고 생각함 ;;;;; 왜그랬을까 생각해보면... 스유에서 alignment 에 값 주던 형태랑 비슷하니까 안쪽으로 들어간다고 생각했지 않을까 ? 갑자기 떠오르는 SwiftUI 초창기 시절에 들었던 발표,,, 아무리 사고방식이 바뀌었다고 해도 이름이 offset 이다.. 정신차려라. 그리고 주석에도 그림이 적혀있음! 내가 헷갈렸던 footer 2개 들..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/m7gim/btsK9ykQJDY/uk1LnIIcW4t9KXwkfpiXkk/img.png)
- 문서 - 문서 ⭐️- WWDC 23 > Write Swift macros 📝 Assisted by GPT [1] 매크로 템플릿 만들기 Xcode > New > Pacakge > Swift Macro 선택해서 매크로 템플릿을 만들 수 있음. 커맨드라인으로도 가능한데, 아래 명령어를 실행시키면 됨. swift package init --type macro 만들어보면 기본적으로 ㄴ dependency 로 swift-syntax 가 걸려있음.ㄴ WWDC 에서 소개하는 stringify 매크로의 선언, 구현, 예제, 테스트 코드 들어가 있음. [2] 매크로 유형 일단 크게 두가지 1️⃣ Freestanding Macros• 코드 블록 외부에서 동작.• 예: 디버깅 정보를 자동으로 추가..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bJDdTe/btsKMmpHWhU/NDcKnAVKPChxlMDBI6AViK/img.png)
✓ SE-0431 @isolated(any) Function Types 📝 Assisted by GPT [1] @isolated(any) @isolated(any) 은 swift 6 에 추가된 attribute 입니다. (function only)임의의 (하지만 정적으로 알 수 없는) 격리를 가진 함수를 표현할 수 있습니다. Task 에도 반영됨! [2] @isolated(any) 도입 배경 Task 이니셜라이저는 () async throws -> () 타입의 불투명 값 (opaque value) 을 받습니다. 그러나 이 값에서 격리를 동적으로 복구할 수 없기 때문에, 이니셜라이저는 해당 작업을 global concurrent executor 에서 시작할 수밖에 없습니다. 만약 이니셜라이..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/c7ltQi/btsKy070VGm/0UdqKllbWJhKjCyHgkS9nK/img.png)
- [Swift] Sendable 을 먼저 읽고 오시길 추천드립니다. - Swift 6 기반의 글입니다.[1] @unchecked GPT 의 설명Swift에서는 Sendable이라는 프로토콜을 통해 값이 스레드 간 안전하게 공유될 수 있는지를 나타내는데, 기본적으로 Sendable 프로토콜을 구현한 타입은 스레드 안전해야 합니다. 하지만, @unchecked를 사용하면 이 안전성 검사를 생략하고 강제로 Sendable을 준수하는 것으로 표시할 수 있습니다.예를 들어, @unchecked Sendable을 사용하면 Swift 컴파일러는 이 타입을 Sendable로 인식하지만, 실제로는 스레드 안전하지 않을 수 있음을 경고 없이 허용합니다. struct SomeType: @unchecked Sendable ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cNdew8/btsKlwtaKHm/wgqEU1mhbVF7ETBD4ieotk/img.png)
- WWDC 23 > What’s new in Swift : 작년에 소개됨 (Swift 5.9, 제네릭 지원 X) - WWDC 24 > Consume noncopyable types in Swift : 올해 별도의 세션이 생김 (Swift 6, 제네릭 지원) - SE-0390 Noncopyable structs and enums [1] Noncopyable - Noncopyable 은 copy 가 불가능한 타입임을 나타냄 (struct, enum 에서 사용가능) - 말할 때는 Noncopyable, code syntax 로는 ~Copyable - copy 가 불가능하다는 것이 7번 라인이 불가능하다는 뜻이 아니라, copy 를 한번 하고 나면 ownership이 이전되어서 원본은 못쓰고 복사본만..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ddUIxt/btsKb1gIS2H/mgzKVefn0Ex7YEpBm8YF31/img.png)
WWCD 24 > What’s new in Xcode 16 에서 소개된 preview 관련 API 두개..! [1] @Previewable - @Previewable 은 #Preview body 내에서 사용하는 매크로 (iOS 17+)- 이 매크로는 #Preview body 내에서 @State property 를 선언할 수 있게 해줌 (예전에는 dynamic property 를 들고 있는 뷰의 동작을 테스트하기 위해 별도의 wrapper view 를 만들고 @State property 를 선언했음) AS ISimport SwiftUIstruct SomeView: View { @Binding var text: String var body: some View { Te..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bGqLhi/btsJ3sedjSy/6d0oSG50nrCo55CTlUllf0/img.png)
Swift 6 에서 'Typed throws' 를 사용할 수 있다. - Swift Proposal: SE-0413- WWDC 24 > What’s new in Swift [1] 개념 AS IS기존의 에러 처리 방식이다. catch 블럭에 전달되는 에러는 type erased 되기 때문에 이런 식으로 구체 타입 체크를 했다. 이런 방식을 'UnTyped throws' 라고 한다. TO BE 이제 'Typed throws' 방식도 지원된다! 이렇게 function 이 throw 할 에러의 구체타입을 지정할 수 있다. (하나의 구체 타입만 사용한다면) 그럼 type erasure 가 안되고catch 블럭으로 들어오는 에러는 구체타입이다. [2] 실습 [3] 참고 1) API 에서 t..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/beNwZg/btsJTBWBIZQ/58xp82KQimoRA907m5f400/img.png)
[ 문서 ]- 공식 문서 > templates. - workshop > Bonus 2. Templates [ tuist scaffold ]tuist 는 tuist scaffold 라는 명령어를 제공하는데, 프로젝트 자동생성을 도와주는 명령어입니다.tuist scaffold name_of_template --name Name 이 명령어는 Tuist/Templates 경로에 저장되어있는 템플릿을 사용하고,템플릿은 manifest 파일과 Stencil file 을 결합하여 만듭니다. 자세히 말하자면, 1) Tuist/Templates 하위에 name_of_template 디렉토리 만들기. 2) 해당 디렉토리에 name_of_template.swift 파일 두기.3) name_of_template.swif..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/drZ0Sx/btsJdGkybmI/d47lJ6gUAhwbpafIKZJGQ0/img.png)
[1] AsyncSequence - iterator 를 통해 elements 에 접근하는 Sequence 와 동일한 개념. 대신 asynchronous 하게 element 를 접근한다는 점이 Sequence 와 다름. 영어가 더 깔끔한 듯.. ? ‘AsyncSequence is a protocol which resembles Sequence and allows you to iterate over a sequence of values asynchronously.’ - iterator 의 next() 를 호출하거나 for await loops 를 사용해서 elements 에 접근할 수 있음 - AsyncSequence 프로토콜의 requirement 를 간략히 적어보자면 다음과 같음 protocol As..
- Total
- Today
- Yesterday
- flutter 앱 출시
- flutter dynamic link
- Flutter Clipboard
- 플러터 싱글톤
- PencilKit
- Django FCM
- ribs
- github actions
- 장고 Custom Management Command
- Flutter getter setter
- SerializerMethodField
- flutter deep link
- Flutter Spacer
- drf custom error
- ipad multitasking
- Django Firebase Cloud Messaging
- DRF APIException
- flutter build mode
- Dart Factory
- Flutter Text Gradient
- Flutter 로딩
- Watch App for iOS App vs Watch App
- Python Type Hint
- 플러터 얼럿
- 장고 URL querystring
- 구글 Geocoding API
- Django Heroku Scheduler
- Sketch 누끼
- cocoapod
- METAL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |