iyOmSd/Title: Swift 106

[Swift] WWDC24 Demystify explicitly built modules

Demystify explicitly built modules 세션을 정리한 글입니다 Modules기본적으로 모듈은 코드 배포의 단위이며 라이브러리나 프레임워크의 인터페이스를 설명해 줍니다 Swift 대상에는 모듈을 구성하는 여러 Swift 파일이 포함되고 일반적으로 단일 대상이나 프레임워크의 모든 Swift 소스 파일은 동일한 모듈에 포함됩니다모듈의 인터페이스는 Swift에 액세스 지정자로 명시적 표시됩니다클래스와 해당 변수가 public으로 표시되어 임포터에게 보여집니다 모듈은 다른 모듈을 가져올 수도 있으며 전체 프로젝트에서 비순환 모듈 그래프를 형성합니다 Swift 컴파일러는 사용자가 작성한 외부 인터페이스를 가져와 인터페이스만 포함된 텍스트 형식의 .swiftinterface 파일로 요약합니다 ..

iyOmSd/Title: Swift 2024.11.26

[Swift] WWDC24 Bring expression to your app with Genmoji

Bring expression to your app with Genmoji세션을 정리한 글입니다.새로 생긴 genmoji의 활용법과 텍스트처럼 사용시 웹이나 백엔드와는 어떻게 상호작용하는지 알아봅니다.  Express yourselfExpressive이모티콘은 표현력이 풍부하고 텍스트 단락 전체를 단 하나의 이모티콘으로 대신할 수 있음! (👍) Versatile이모티콘 하나로 제대로 전달되지 않을 땐 적절한 조합을 찾으면 완벽해짐!  (🥒😱) Playful텍스트와 결합되면 더 강력해지죠 이모티콘도 텍스트임! (밖에비온다 우산없는데..😱😱😱) Enhances text이미지와 달리 이모티콘은 문장의 일부이며 주변 텍스트와 어울리도록 표현이 조정됩니다 (폰트적용)  Emoji enhancements..

iyOmSd/Title: Swift 2024.11.24

[Swift] WWDC24 Explore machine learning on Apple platforms

Explore machine learning on Apple platforms세션을 정리한 글입니다.  공간 컴퓨팅을 위한 제스처 인식, 이미지 캡처 시 인물 사진 모드 지원, 건강을 위한 심전도 및 심박수 모니터링,등 수많은 혁신적인 기능의 근간에는 첨단 머신 러닝과 AI 모델이 있습니다 머신 러닝과 AI 덕분에 이 모든 기능을 구현할 수 있으며, 이러한 기능을 구동하는 모델은 온전히 기기에서만 실행됩니다따라서 사용자 데이터를 기기에 보관하여 개인정보 보호를 강화하는 동시에 빠르고 효율적으로 상호 작용하는 경험을 제공할 수 있습니다온디바이스 머신 러닝은 Apple Silicon의 강력한 성능 덕분에 가능합니다   Apple InteligenceApple Intelligence를 통해 흥미로운 발전이 이..

iyOmSd/Title: Swift 2024.11.22

[Swift] WWDC23 Debug with structured logging

Tour Debug Console위의 로그에 관련 추가정보를 보고싶다면 왼쪽하단의 메타데이터 옵션버튼을 누르고 선택하면됨로그아래에 메타데이터가 배치되는걸 볼 수 있음 해당로그를 선택하고 스페이스 바를 눌러 빠르게 정보를 볼 수 있음 새 디버그 콘솔의 진짜 강점은 필터링 기능입니다 1.필터바에 직접 필터를 입력해도 됨2.특정 타입로그에 대한 필터에 빠르게 접근하여 확인할 타입선택가능(debug, info, notice ,error, lldb, stdio, 등)3.필요하거나 불필요한 로그를 우클릭하면 유사한 로그를 숨기거나 보여주는 옵션을 제공합니다특정 로그 집합을 더 자세히 다루거나 뷰에서 제거할 수 있음  Live debugging문제상황발생시 문제원인 찾는 예시를 보여주며 진행합니다이부분은 텍스트로 간..

iyOmSd/Title: Swift 2024.11.20

[Swift] WWDC24 Bring your app to Siri

Bring your app to Siri세션을 정리한 글입니다.앱을 시리에 연결하는 방법을 소개합니다 IntroductionIntegrate with Siri시리를 사용하면 사용자가 기기 어느화면에서든 앱을 이용해 작업을 수행할 수 있음사용자들이 앱을 보고있을 때 신속하게 작업수행 할 수있도록 도와줌 Developing with Siri iOS 10부터 SiriKit이 도입되었습니다 덕분에 개발자는 시스템이 제공하는 인텐트를 통해 사용자가 이미 이용하는 Siri 기능을 앱에서도 사용할 수 있게 지원할 수 있습니다  iOS 16에서는 앱 인텐트가 도입되었습니다 이 새로운 프레임워크는 앱을 Siri, 단축어 Spotlight 등과 통합해 줍니다 앱이 기존 SiriKit 도메인과 겹치지 않는다면 앱 인텐트가 ..

iyOmSd/Title: Swift 2024.11.18

[Swift] WWDC24 Meet Swift Testing

Meet Swift Testing 세션을 정리한 글입니다. Swift Testing은 새로운 오픈 소스 패키지로 Swift를 사용해 코드를 테스트할 수 있습니다Swift Testing은 Swift용으로 만들어져 동시성 및 매크로와 같은 최신 기능을 도입했습니다 Linux와 Windows 등 모든 주요 플랫폼을 지원합니다 Building blocks@Test 속성이 첫 번째 구성 요소입니다함수가 테스트임을 나타내죠 이것을 추가하면 Xcode가 인식하고 옆에 Run 버튼을 표시합니다테스트 함수는 @Test 속성을 가진 일반적인 Swift 함수입니다전역 함수일 수도 있고 유형의 메서드일 수도 있습니다비동기 또는 예외로 표시하거나 필요한 경우 전역 액터로 격리할 수 있습니다 @testable 속성을 사용해서 테..

iyOmSd/Title: Swift 2024.11.14

[Swift] WWDC22 Meet Transferable

Meet Transferable세션을 정리한 글입니다. Transferable공유 및 데이터 전송을 위해 어떻게 모델을 직렬화하고 역직렬화하는지 설명하는 Swift 우선 선언형 방식입니다 Anatomy of Transferable실행 중인 두 애플리케이션을 가정해 봅시다그리고 사용자가 복사 및 붙여넣기 ShareSheet, 단순 드래그 또는 다른 앱 기능을 통해 한 앱에서 다른 앱으로 어떤 정보를 전달한다고 하죠서로 다른 두 앱 간에 무언가를 보낼 때 이 모든 바이너리 데이터가 넘어갑니다이 데이터를 보낼 때 중요한 부분은 해당 데이터가 무엇인지를 결정하는 것입니다그건 텍스트나 영상, 가장 좋아하는 여성 엔지니어 프로필 또는 전체 아카이브일 수 있죠 그리고 데이터의 용도를 설명하는 UTType도 있고요 다..

iyOmSd/Title: Swift 2024.11.13

[SwiftUI] WWDC24 Enhance your UI animations and transitions

Enhance your UI animations and transitions 세션을 정리한 글입니다. TransitionsiOS 18에는 새 확대/축소 전환 효과가 있습니다 이 새 전환 효과를 사용하면 탭하는 셀이 수신 뷰로 바뀝니다 단순한 시각적 모습이 아니라 지속적으로 상호 작용하므로 처음부터 또는 전환 중에 탭하고 드래그해서 이동할 수 있게 됩니다확대/축소 전환 설정두 가지 작업을 해야 합니다첫 번째, 원한다는 표현을 합니다즉, 표시된 뷰에 navigationTransitionStyle 편집자를 추가하고 확대/축소 전환을 지정합니다두 번째로, 이 편집자를 소스 뷰에 연결하여 시스템이 확대/축소할 뷰를 알 수 있게 합니다두 위치 모두에서 동일한 식별자와 네임스페이스를 지정합니다 UIKit으로 전환적용..

iyOmSd/Title: Swift 2024.11.12

[Swift] WWDC24 Consume noncopyable types in Swift

Consume noncopyable types in Swift 세션을 정리한 글입니다. Copyingstruct Player { var icon: String}func test() { let player1 = Player(icon: "🐸") //1 var player2 = player1 //2 player2.icon = "🚚" //3 assert(player1.icon == "🐸")}위와같은 코드가있을때 1단계식보면플레이어1 🐸 생성플레이어2도 1과 동일하게 생성, 플레이어1의 복사본을 만든다는 의미 (player1 = player2 = 🐸)플레이어2의 아이콘변경시 플레이어1로부터 독립적인 플레이어를 변경하는것임 (player1 = 🐸, player2 = 🚚)하지만 Player가 참..

iyOmSd/Title: Swift 2024.11.11

[Swift] WWDC24 Explore Swift Performance(2)

Putting it together주요기능 구현 살펴보기Dynamically sized typeC 구조체의 크기는 항상 고정적이지만 Swift 유형의 크기는 런타임에 결정될 수 있습니다 두 가지 경우가 있습니다 첫째, SDK의 많은 유형은 미래의 OS 업데이트에서 저장된 속성이 추가되거나 변경될 수 있으며 Foundation의 URL 같은 유형도 여기에 포함되죠 따라서 이러한 유형의 레이아웃은 컴파일 타임에 알려지지 않는 것으로 취급해야 합니다 두 번째로 제네릭 유형의 유형 매개변수는 어떤 가능한 표현의 어떤 유형으로든 대체될 수 있어야 하므로 마찬가지로 레이아웃을 모르는 것으로 취급해야 합니다 두 번째 규칙에는 예외가 있는데 유형 매개변수가 특정 클래스로 제한되면 클래스 유형의 표현을 가져야 한다는 것..

iyOmSd/Title: Swift 2024.11.10