[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🍎 Apple/Swift 32

[WWDC24] Swift 6로 앱을 마이그레이션하기

https://developer.apple.com/kr/videos/play/wwdc2024/10169/ Swift 6으로 앱을 마이그레이션하기 - WWDC24 - 비디오 - Apple Developer기존 샘플 앱의 업데이트를 따라 Swift 6 마이그레이션 과정을 직접 경험해 보세요. 증분 마이그레이션 방법을 모듈별로 설명하고, 컴파일러로 데이터 레이스 위험이 있는 코드를 식별하는 방법developer.apple.com 주된 내용들만 메모해서 정리했습니다. 전체 내용이 궁금하신 분들은 영상을 감상하시는 것을 추천드려요!Intro다른 세션에서 설명한 앱의 아키텍처입니다. main queue, background queue, arbitary queue(헬스킷같은 곳으로부터 나오는 특정 completion..

🍎 Apple/Swift 2024.07.04

[CloudKit] 기본 개념 및 사용법

CloudKit앱의 데이터를 iCloud에 저장하고, 모든 기기와 웹에서 데이터를 최신 상태로 유지할 수 있도록 도와주는 도구비공개 데이터는 사용자의 iCloud 계정에 저장되기 때문에 사용자층이 늘어나도 무제한으로 확장이 가능하다.공개 데이터를 저장할 수 있는 공간을 최대 1PB까지 사용할 수 있다.웹 기반 제어 패널인 CloudKit Console를 제공하기 때문에 편리한 데이터 관리가 가능하다.Container데이터를 정리하는 논리적 공간. 앱의 저장공간이라고 생각하면 된다.일반적으로 하나의 앱에서 하나의 컨테이너를 사용한다.하나의 앱에서 여러 Container를 사용할 수도 있고, 여러 앱에서 하나의 Container를 사용할 수도 있다.사용자는 Container 내에서 앱의 스키마를 관리한다.D..

🍎 Apple/Swift 2024.06.07

[WWDC22] Link fast: Improve build and launch times

안녕하세요 inu입니다. 오랜만에 포스팅을 작성하네요 :) 오랜 숙원 사업이었던 'Link fast: Improve build and launch times' 감상을 드디어 마쳤습니다. 개인적으로 조사한 정보들도 포함해 글로 정리해봤습니다. 중간중간 CS 관련된 내용도 나와서 이해하기가 어려울 수 있는데, 정적 라이브러리와 동적 라이브러리의 개념과 동작방식에 대해서 정도만 이해해도 충분히 얻어가는 세션이었다고 생각합니다. 저처럼 컴파일 및 모듈 관련 지식이 부족했던 분들에게 도움이 되길 바랍니다. 사전정보 오브젝트 파일 : 소스코드 파일이 컴파일러에 의해 컴파일된 이후 생성되는 파일로, 이 파일은 실행가능한 파일(excutable file)이나 라이브러리(library) 파일을 만들기 전 중간 단계의 바..

🍎 Apple/Swift 2024.04.08

[Swfit] resolvedColor(with:) / UITraitCollection.current

resolvedColor(with:) UIColor의 Instance Method인 resolvedColor는 주어진 trait을 기반으로 UIColor를 resolve합니다. 해당 UIColor가 다크모드를 지원하는 Dynamic Color일 경우 현재 다크모드 스타일에 맞는 Color를 반환합니다. Core Graphics의 Color 요소인 CGColor는 Dynamic Color를 지원하지 않습니다. 이러한 특징때문에 CGColor를 필요로하는 요소에서는 다크모드가 자동으로 적용되지 않습니다. let black = UIColor.myBlack.cgColor 이 과정에서 resolve가 일어납니다. cgColor는 Dynamic Color를 지원하지 않기때문에 현재의 trait에 맞춰 resolve..

🍎 Apple/Swift 2023.10.27

[Swift] Attributes

Attributes 선언 혹은 타입에 새로운 정보를 추가하는 역할을 수행한다. 예를 들면 discardableResult 는 함수의 선언부에 사용되어서, 해당하는 함수의 리턴값을 사용부에서 사용하지 않아도 에러를 띄우지 않도록 컴파일러에게 알려주는 역할을 한다. @ 심볼을 통해 attribute를 확인할 수 있으며 심볼 뒤에는 그 attribute의 이름이 따라온다. 추가적인 정보가 필요할 경우 해당 attribute의 arguments도 뒤에 붙는다. @ @() 종류 attached macro도 Attributes 버전 제한둘때 쓰는 available 도 Attribute @available(iOS 10.0, macOS 10.12, *) discardableResult, dynamicCallable 등..

🍎 Apple/Swift 2023.07.29

[Swift] AVFoundation 기초

최근에 AVFoundation을 알아야 할 일이 있어서 공부를 좀 했습니다. 본 포스트는 애플 공식 문서의 의역을 대다수 포함합니다. AVFoundation 시청각 asset들로 작업하고, 장치 카메라를 제어하고, 오디오를 처리하고, 시스템 오디오 상호 작용을 구성할 수 있습니다. AVFoundation은 Apple 플랫폼에서 미디어를 검사, 재생, 캡처 및 처리는 등 광범위한 작업을 포괄하는 몇 가지 주요 기술 영역을 포괄하고 있습니다. UIKit 너머의 Core 프레임워크와 맞닿아 있는 프레임워크입니다. AVAsset https://developer.apple.com/documentation/avfoundation/avasset/ 시간이 지정된 시청각 미디어를 모델링하는 객체 해당 객체는 파일 기반의..

🍎 Apple/Swift 2023.07.15

[Swift][문서의역] Macro

본 포스트는 스위프트 공식문서의 매크로에 대한 설명을 의역한 것이며 편의를 위해 생략 혹은 추가된 내용이 있을 수 있습니다. Macro https://docs.swift.org/swift-book/documentation/the-swift-programming-language/macros 컴파일 타임에 코드를 만들 수 있는 기능 Macro는 컴파일할 때 소스코드를 변환해서 반복적인 코드를 최소화할 수 있도록 돕는다 컴파일시간에 Swift는 코드를 빌드하기 전에, 코드 안에 존재하는 모든 매크로를 확장(Expands)한다. 매크로의 특징 매크로의 코드 확장 작업은 추가적인 작업으로, 기존 코드를 수정하거나 삭제하지는 않는다. 매크로 코드와 매크로 확장 결과 코드 모두에서 유효한 Swift 코드 여부를 확인..

🍎 Apple/Swift 2023.07.15

[Swift] Mirror

Mirror Mirror란 reflection은 일반적인 프로그래밍 기능 중 하나로, 런타임에 동적으로 멤버를 검사하고 작업할 수 있습니다. 원래는 Swift같이 정적으로 타입을 지정하는 언어에는 사용하지 않지만 Swift2부터 지원이 추가되었습니다. Swift에서 reflection을 사용하면 struct, class 혹은 기타 타입에 관련없이 타입에 있는 stored property의 값을 읽을 수 있습니다. reflection을 사용하기 위해 필요한 객체가 Mirror입니다. Mirror는 인스턴스의 저장 property, collection 혹은 tuple의 요소 등에 대해 특정 인스턴스를 구성하는 부분을 설명합니다. Mirror는 어떻게 Mirror가 렌더링될지 지정하는 "display styl..

🍎 Apple/Swift 2023.05.18

[Swift] autoreleasepool

autoreleasepool 참조 카운트를 나중으로 미루고 이들이 한번에 감소되는것을 보장받기 위한 기법입니다. 주로 autoreleasepool을 자동으로 관리해주지 않는 Operation Queue에서 많이 사용합니다. autoreleasePool에 포함된 객체들은 코드가 autoreleasePool에서 벗어나면 한번에 참조 카운트가 줄어듭니다. func useManyImages() { let filename = pathForResourceInBundle for _ in 0 ..< 5 { for _ in 0 ..< 1000 { let image = UIImage(contentsOfFile: filename) } } } 이와 같이 여러개의 UIImage가 생성되는 케이스가 있다고 해봅시다. 이 경우 매..

🍎 Apple/Swift 2022.05.27

[Swift] UNUserNotificationCenter 살펴보기

UNUserNotificationCenter UNUserNotificationCenter UNUserNotificationCenter는 앱 혹은 앱 확장에서 발생하는 알림 관련 활동들을 관리할 수 있는 중앙 객체입니다. 앱에서 관련 기능을 다루기 위해서는 먼저 권한을 요청해야 합니다. options에 필요한 권한을 포함시켜 전달하고, 그 결과를 completionHandler로 받아 추가 작업을 수행합니다. options에 포함시킬 수 있는 권한은 위와 같습니다. 싱글톤 객체를 제공하기 때문에 이를 활용하면 됩니다. 여기에 아래에서 학습할 UNNotificationRequest 객체를 추가해서 알림을 설정합니다. UNMutableNotificationContent 알림의 내용을 설정할 수 있는 객체입니다..

🍎 Apple/Swift 2022.05.26