[1] Merge Commit 은 왜 기본적으로 Interactive Rebase 가 안될 까 ? Git의 rebase --interactive (또는 간단히 rebase -i) 는 히스토리를 직선(선형)으로 평탄화하려고 설계되어 있어서, 부모가 2개 이상인 merge commit은 목록에 포함되지 않거나 편집 대상이 아닙니다. 그래서 기본적으로 머지 커밋을 Interactive Rebase (edit, fixup, reword 등) 할 수 없어요. 📌 머지 커밋의 구조머지 커밋은 브랜치를 합치는 시점에 생기며,부모가 두 개 이상 → 양쪽 브랜치의 끝을 모두 가리킵니다. D --- E (feature 브랜치) / A -- B -------- M (main 브랜치..
[1] 목표Swift 에서 deinit 은 항상 nonisolated 입니다. 객체 해제는 즉시 일어나야 하고, Executor 전환으로 지연되면 안되기 때문에 deinit 을 특정 Executor (ex. @MainActor) 에 격리 불가능합니다. 따라서 아래 세가지 상황에서 늘 헷갈리는데 정리해봅시다. [2.1] 상황 1 현황) 이 상황은 swift 5 에서도 에러 발생합니다. Strict Concurrency Checking 을 가장 낮은 수준 (Minimal) 로 해도 에러 발생. 원인)• deinit 안의 코드는 nonisolated 상태로 실행됨.→ 그런데 effect1.stop()은 @MainActor 격리된 메서드.→ nonisolated(deinit)에서 actor-..
- 문서: Integrating your app with visual intelligence- 예제 프로젝트 : Adopting App Intents to support system experiences [1] 배경 카메라나 스크린샷을 통해 Visual Search 를 하면 아래의 메소드가 타게 되고 SemanticContentDescriptor 를 통해 이미지에 대한 정보를 얻어올 수 있다. SemanticContentDescriptor 는 labels, pixelBuffer 를 제공하는데 label 을 단독으로 쓸 수 없다. 굉장히 광범위한 label 정보를 주기 때문이다. (예를들어 스콘을 이미지 검색하면 bread 도 아니고 food 라는 label 을 준다.) label 은 부가적인..
[1] Foundation ModelsFoundation Models 는 온디바이스 LLM 을 제공하는 프레임워크입니다. https://developer.apple.com/documentation/foundationmodels Foundation Models | Apple Developer DocumentationPerform tasks with the on-device model that specializes in language understanding, structured output, and tool calling.developer.apple.com HIG 에 Generative AI 도 함께 추가되었는데 사용하면서 함께 읽어보면 좋을 것 같아요 [2] 사용법LanguageModelSession ..
[ TextEditor ]TextEditor 는 iOS 14+ 인데, iOS 26 부터 쓸 수 있는 이니셜라이저가 추가되었다. AttributedString 는 iOS 15+ 이고 Text 의 이니셜라이저에서 먼저 사용되고 있었는데 (iOS 15+) 이제 뷰어 뿐만아니라 에디터에서도 사용할 수 있게 된 것이다. 🥹 TextEditor 에 AttributedString 을 받는 이니셜라이저를 사용하면 String 을 받는 이니셜라이저와 달리 Format 이라는 메뉴가 뜨고 기본으로 제공되는 rich text editing 을 지원할 수 있다. 맥 OS 는 이렇게 나옴 대부분의 attribute, paragraph style 이 지원되는 듯 보인다. 다만 한국어는 아직 불안정한데..
- 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개 들..
- 문서 - 문서 ⭐️- 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• 코드 블록 외부에서 동작.• 예: 디버깅 정보를 자동으로 추가..
✓ 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 에서 시작할 수밖에 없습니다. 만약 이니셜라이..
- [Swift] Sendable 을 먼저 읽고 오시길 추천드립니다. - Swift 6 기반의 글입니다.[1] @unchecked GPT 의 설명Swift에서는 Sendable이라는 프로토콜을 통해 값이 스레드 간 안전하게 공유될 수 있는지를 나타내는데, 기본적으로 Sendable 프로토콜을 구현한 타입은 스레드 안전해야 합니다. 하지만, @unchecked를 사용하면 이 안전성 검사를 생략하고 강제로 Sendable을 준수하는 것으로 표시할 수 있습니다.예를 들어, @unchecked Sendable을 사용하면 Swift 컴파일러는 이 타입을 Sendable로 인식하지만, 실제로는 스레드 안전하지 않을 수 있음을 경고 없이 허용합니다. struct SomeType: @unchecked Sendable ..
- Total
- Today
- Yesterday
- PencilKit
- ipad multitasking
- Django Firebase Cloud Messaging
- cocoapod
- flutter build mode
- SerializerMethodField
- Flutter getter setter
- Python Type Hint
- METAL
- github actions
- Flutter Text Gradient
- flutter dynamic link
- 플러터 싱글톤
- 구글 Geocoding API
- Flutter Clipboard
- Django FCM
- 플러터 얼럿
- 장고 URL querystring
- drf custom error
- Flutter 로딩
- flutter deep link
- Sketch 누끼
- DRF APIException
- flutter 앱 출시
- Flutter Spacer
- Django Heroku Scheduler
- Dart Factory
- ribs
- Watch App for iOS App vs Watch App
- 장고 Custom Management Command
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 |