iyOmSd/Title: Swift 109

[Swift] Task Cancel

안녕하세요이번 게시글에서는 Task Cancel에 대해서 알아보려 합니다Task 취소과정에서 놓칠 수 있는 부분들을 살펴볼 예정입니다! 보통 아래코드를 보면task = Task { await _excute() }task.cancel()취소완료~!하고 끝낼 수 있습니다. 하지만cancel()을 호출했음에도 불구하고내부적으로 Task는 아직 실행 중일 수 있습니다. Concurrency는 Structured / Unstructured 로 크게 나눌 수 있습니다.구조화된 작업은 async let, TaskGroup으로 만들수 있고비구조화된 작업은 Task { }, Task.detached { } 로 만들 수 있습니다. 구조화된 작업은 로컬 변수처럼 작업이 선언된 스코프에서 끝까지 살아남고, 스코프 밖으로 ..

iyOmSd/Title: Swift 2025.05.23

[Swift] Mergeable Libraries, 병합된 라이브러리

안녕하세요엑스코드가 발전됨에 따라 모듈화할때 예전과 달라지도록 만든 개념중 하나인 Mergeable Libraries에 대해 알아보려고합니다 Mergeable Libraries가 뭔가요?간단하게 요약하면debug 빌드에서 모듈들을 동적으로 연결하고release 빌드에서 모듈들을 정적으로 연결한다정도로 요약할 수 있을 것같아요 Xcode14를 사용했을 시절... 혹은 그 이전...모듈화를 고려할때동적으로 모듈을 만들지, 정적으로 만들지 고민해야하는데동적보단 정적 모듈을 권장했어요 우선 둘의 차이를 알아보면 정적모듈- 앱의 실행파일에 직접 복사되서 빌드시간이 느려짐- launch time이 빠름 동적모듈- 앱의 빌드시간이 빠름 - 런타임에 모듈들이 링킹되면서 launch time이 느림 이런차이로보통 유저..

iyOmSd/Title: Swift 2025.04.16

[Swift] Core Bluetooth Basic

주위에 블루투스 기기가 많아지고 있는데요블루투스 기기를 이용한 앱을 구현할때 사용하는 프레임워크가Core Bluetooth 입니다!어떻게 이용할 수 있을까 궁금해서 찍먹겸...처음이니까 원리를 간단하게 알아보려합니다!   이론중앙장치 - Central주변장치(주변기기) - Peripheral저에너지 블루투스 - BLE(Bluetooth low energy) 지원기기 iOS에서 BLE기기 + 클래식 블루투스 검색 가능  BLE - 저에너지 블루투스, bluetooth 4.0Classic Bluetooth - BR/EDR기기  - Basic Rate -> bluetooth 1.0  - Enhanced Data Rate -> bluetooth 2.0  페어링 상태 iOS 설정앱에서 보이는 기기 목록에는 이미 ..

iyOmSd/Title: Swift 2025.03.18

[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