Codable synthesis for Swift enumsOptional&Decodable 로 정의된 enum을 decoding할 때, case로 정의되지 않은 String이 들어있는 경우 에러가 나게 된다. 원래 Decodable에서는 init(from decode
네이버 웹툰의 상단 배너무한 스크롤상단 이미지는 스크롤되지 않으면서 하단의 타이틀만 스크롤됨자동 스크롤겉보기에는 스크롤이 되는 것처럼 보이지만 scroll은 disable 시키고 drag gesture를 인식해서 직접 offset을 바꿔주는 방법을 사용했다.무한 스크롤
image기본 구조 뷰 내에서 view model을 source of truth로 이용하기 위해서는 @State, @Binding 과 같은 property wrapper를 이용해야 한다. @State → A property wrapper type that can rea
인스타그램 탐색창 이렇게 생긴 인스타그램 탐색창을 SwiftUI로! 만들어보려고 한다. 분석 간략화해보면 이런 느낌이다. (1x1인 정사각형 네 개) + (1x2인 직사각형 하나) 로, 총 다섯개의 아이템으로 구성된 레이아웃이 반복된다. 같은 레이아웃이 반복되어
다국어 작업을 위해 아래와 같은 형식으로 다국어 값들을 내려받기로 되었다.그 말은 매번 모든 struct에 위와 같은 형식을 해줘야 한다는 말인데, 이런 nested property를 좀 더 쉽게 이용할 수 있는 방법이 없을까 해서 고민해봤다.https://d
https://github.com/swiftlang/swift-testingSwift6~매크로를 사용하여 더 간편하게 테스트를 작성하는 방법@Test annotation을 가지는 함수async/throws일 수 있음global actor-isolated (@M
Macro란 컴파일러에게 코드 블록을 추가(expand)하도록 명령하는 방법 - 기존 코드의 삭제나 변경은 안된다! 반복적인 코드 작성을 대신하게 하거나, 컴파일 타임에 확인하고 싶은 부분을 체크해서 에러를 내게 할 수도 있다. \ swift 5.9에 추가된 기능이기
최소 Xcode15, Swift5.9 가 필요하다. Xcode에서 패키지 생성을 클릭Testing은 XCTest, 이름은 CodableMacro로 추가해줬다.생성되는 기본 프로젝트는 아래와 같다.swift의 패키지는, .xcodeproj 나 .xcworkspace 대신
매크로 구현을 시작하기 전에 매크로는 SwiftSyntax 라이브러리를 이용해 작성된다. 스위프트 컴파일러는 소스코드를 AST로 변환하여 처리를 하는데, SwiftSyntax는 이 AST에 직접 접근해서 조작하는 걸 도와주는 API다. 기본적으로 매크로 구현은 1.선언