iOS+ (24) 썸네일형 리스트형 Share Extension 개요https://medium.com/@henribredtprivat/create-an-ios-share-extension-with-custom-ui-in-swift-and-swiftui-2023-6cf069dc1209이 글은 Share Extension을 통해 외부에서 앱으로 데이터를 공유하는 방법에 대해 알아본다몇 가지 과정들을 나눠서 진행되는데, 위의 블로그를 참고했다과정Share Extension 추가Activation Rule 설정ShareViewController에서 extensionContext를 통해 데이터 처리UIHostingController을 통해 SwiftUI View 사용공유 데이터 설정 후, 앱과 데이터 공유 Share Extension 추가Share Extension을 프로젝트.. EnvironmentValues 개요이 글은 SwiftUI의 EnvironmentValues를 중심으로 다룬다 프로젝트를 리팩토링하며 SwiftUI의 기능을 적극 활용하고자 고민하던 중, Reusable View 영상을 통해 재사용 가능한 뷰 설계를 하는 법에 대해 배울 수 있었다해당 영상에서는 SwiftUI에서 뷰에 대해 리팩토링하는 여러가지 기법들을 설명하는데, 유독 EnvironmentValues가 눈에 들어왔다왜냐하면 굳이 왜 사용하는지 잘 이해가 안갔었기 때문이다 그렇기 때문에 좀 더 사용의 필요성을 확 느낄 수 있는 예시들이 글의 대부분을 차지한다그 글에서는 예시를 크게 두 가지로 분류했는데, 하나는 단순 값으로 이용이고, 나머지 하나는 상태를 통한 이용이다 전체적인 글은 다음 순서로 진행된다:Environment와 Envi.. On-Device AI with CoreML(feat. DeepSeek-R1) 개요 최근 유행하는 Deepseek-R1 모델(Distill)을 iPad에서 온디바이스로 실행시켜 보기 위해 관련 내용들을 공부하게 되었다 iOS 기기에서 PyTorch 기반의 모델을 실행하려면 CoreML이 지원하는 형식으로 변환해야 한다이때 coremltools를 활용하여 모델을 변환시킬 수 있고, 변환된 모델의 최적화를 위해 경량화 기법을 적용할 수도 있다 이렇게 변환시킨 모델은 CoreML을 사용하여 iOS에서 온디바이스로 추론을 수행시킬 수 있다 이 글은 위의 사진처럼 학습시킨 모델을 coremltools로 변환시키고, CoreML에서 이용하는 과정에서 알아야 할 것들을 중점적으로 정리했다 배경지식CoreMLcoremltools 배경지식모델 경량화Quantization: 모델 가중치를 더 적은.. 인증서와 프로파일 개요일반적으로 프로젝트에서 Automatically manage signing(자동 서명 관리)을 이용한다면, 서명 및 프로파일에 큰 신경을 안 써도 된다 하지만 Github action 같은 CI/CD 파이프라인을 직접 작성하는 경우, 작업이 돌아가는 머신에서 프로젝트를 빌드하다 보면 자동 서명 관리는 올바르게 동작하지 않는 경우가 있었다 자동 서명 관리를 안하고 직접 관리하는 방식으로 스크립트를 작성하다 보니, 서명 및 프로파일에 대해 좀 더 자세히 알아야겠단 생각을 하게 되었고, 이 글을 통해 이를 정리하고자 한다 해당 내용들에 대해 정리 이후, 서명은 Keychain에 등록하고, 프로파일은 Xcode가 기본적으로 참고하는 위치에 추가하는 스크립트를 마지막으로 글을 마무리한다 CSR(Certific.. Swift Concurrency 개요Swift Concurrency는 Apple이 Swift 5.5에서 도입한 현대적인 동시성 모델로, 동시성 코드를 작성하는 데 있어 더욱 간결하고 안전하며 가독성을 높이는 방식을 제공한다이를 통해 개발자는 복잡한 비동기 작업을 보다 쉽게 관리하고, 동시성 문제(예: 데이터 경쟁 및 데드락)를 줄일 수 있다 이전까지는 GCD(Grand Central Dispatch)를 이용하여 애플 플랫폼에서 동시성 프로그래밍을 진행했으나 여러 단점들이 있었는데, Swift Conccurency를 통해 이러한 문제들을 해결하였다 이 글에서는 우선 GCD 방식에 대해 간략하게 알아보고, Swift Concurrecny로 동시성 프로그래밍 코드를 작성하는 방법에 대해 정리한다 GCD(이전 방식)Swift Concurrec.. Codable Protocol 개요Codable 프로토콜은 Swift에서 데이터 타입을 JSON이나 다른 외부 표현으로 인코딩하거나 디코딩할 수 있도록 도와주는 프로토콜이다 이 글에서는 Codable 프로토콜의 기본 개념을 간단하게 알아보고 직렬화(Serialization)와 역직렬화(Deserialization)의 개념을 살펴본다그리고 JSON 역직렬화 과정에서 프로퍼티 값이 다른 경우, CodingKeys를 통해 커스텀한 디코딩 과정을 구현하는 방법에 대해 정리한다 Codable 프로토콜데이터 변환의 기본 개념(직렬화/역직렬화)CodingKeys와 중첩 키 처리 Codable 프로토콜Codable는 Swift에서 데이터를 직렬화와 역직렬화할 수 있도록 제공되는 프로토콜이다이는 아래에서 볼 수 있듯이, Encodable과 Decod.. URLSession을 이용한 네트워킹 작업 개요이 글은 URLSession으로 네트워킹 작업을 수행하는 데 알아야 하는 관련 개념들을 정리한다 간단하게 정리해보면 다음과 같다URLSession을 통해 네트워킹 작업을 수행할 때, URLRequest가 이용된다URLRequest는 요청에 필요한 정보들을 가진 객체인데, URL이 필요하다URL은 URLComponents를 통해 관리될 수 있다 URL, URLComponents, URLRequestURLSession URL과 URLComponents 그리고 URLRequestURL, URLComponents, URLRequest는 전부 Foundation 프레임워크에 포함되어 있고 네트워킹 작업을 수행하는 데 이용된다 URL은 요청에 이용되는 주소를 나타내며, URLComponents를 통해 URL객체.. ARC(Automatic Reference Counting) 개요이 글에서는 Swift에서 사용하는 메모리 관리 기법인 ARC(Automatic Reference Counting)에 대해 알아본다우선, 다른 언어에서 많이 사용되는 GC(Garbage Collection)를 이용한 메모리 관리와 ARC 방식은 어떤 차이가 존재하는지 확인하고,Swift에서 강한 순환 참조 문제를 해결하기 위해 사용되는 다음 키워드들에 대해 알아본다 weakunownedCapture List GC와 ARCC++의 스마트 포인터는 참조 카운팅을 통해 객체가 더 이상 사용되지 않을 때 자동으로 메모리를 해제시킨다.. Swift는 Heap 영역 관리에 ARC 방식을 사용하는데, ARC 방식을 이용하면 언어 차원에서 스마트 포인터처럼 객체 카운팅을 수행하고 관리한다GC(Garbage Coll.. 이전 1 2 3 다음