본문 바로가기

전체 글100

[PhotoKit] 3. Asset Retrieval Fetching Objects and Requesting Changes: PhotoKit을 사용하여 Photos 앱의 객체를 가져오고 변경 요청을 하는 방법. PhotoKit에서 Photos 앱의 객체들은 모두 PHObject타입임. 이미지, 비디오, 라이브 포토와 같은 에셋 (PHAsset),앨범이나 순간 모음과 같은 에셋 컬렉션 (PHAssetCollection),앨범 폴더 또는 ~한 순간 모음의 모음과 같은 컬렉션 리스트 (PHCollectionList)PHAsset, PHAssetCollection, PHCollectionList는 읽기 전용이며 변경할 수 없으며 메타데이터만 포함. 이 클래스들을 사용하여 지정된 쿼리와 일치하는 객체(PHObject)를 가져옴(fetch). 변경을 하기 위해서는 .. 2024. 8. 3.
[PhotoKit] 1. PHPhotoLibrary : Shared Photo Library PHPhotoLibraryPHPhotoLibrary는 사용자의 사진 라이브러리에 대한 접근과 변경을 관리하는 객체. PHPhotoLibrary 객체는 Photos앱이 관리하는 전체 Asset 및 Collection을 나타냄. (로컬 장치에 저장된 Asset과 iCloud Photos에 저장된 Asset 포함) 이 PhotoKit의 PhotoLibrary 즉, PHPhotoLibrary의 객체는 어쩔때 쓰냐면,사용자가 우리 앱에 부여한 Photos 콘텐츠에 대한 액세스 권한(permission)을 검색 또는 확인할때asset들과 collection들을 변경하고자 할때. 예) 에셋 메타데이터나 콘텐츠 변경, 새로운 에셋 추가, 컬렉션 멤버 재정렬사진 라이브러리 변경사항에 대한 이벤트 감지하고 싶을 경우 1... 2024. 8. 3.
[PhotoKit] 0. PhotoKit 소개 PhotoKitPhotos 앱이 관리하는 이미지와 비디오 Asset들(iCloud Photos 및 Live Photos도 포함)을 작업해야할때 사용하는 프레임워크.!Photokit을 사용하면 Photos 앱이 iOS, MacOS, TVOS 및 VisionOS에서 관리하는 이미지 및 비디오 Asset에 접근할 수 있음.사용자의 사진을 편집하거나 표시하거나 앨범, 순간 및 공유 앨범과 같은 Asset의 Collection을 관리 할 수 ​​있음.이 프레임워크는 사용자의 기기와 iCloud에 있는 사진에 액세스 할 수 있도록 해줌.   앱에서 사람의 사진에 액세스하는 것 외에도 앱 확장을 구축하고 iOS 또는 MacOS의 사진 앱에 직접 앱 기능을 통합 할 수 있음.앱을 앱 스토어에 제출할 때 앱 번들에 앱 .. 2024. 8. 3.
[Swift] class func vs static func 보호되어 있는 글 입니다. 2024. 7. 31.
스마트폰과 스마트워치간에는 어떻게 통신할까? (블루투스) 1. BLE Scanning / Advertising BLE Scanning 과 Advertising 이 이뤄지는 원리와 방식 GAP* 를 통해 관리됨. Advertising- GAP peripheral 로 동작하는 디바이스에서 GAP central로 동작하는 디바이스에 자신을 알리는 것.- Bluetooth Classic은 총 79개의 채널을 사용함.- BLE의 경우에는 전체 40개의 채널중에 ch37, 38, 39 단 3개의 채널만 advertising 을 위해 사용함. central이 pheripheral 보다는 조금 더 많은 양의 전류를 소모함. * BLE 프로토콜 스택 중에 하나인 GAP(Gerneric Access Profile) 2. BLE ConnectionMaster 와 Slave는 Co.. 2024. 7. 25.
[Foundation] Bundle 클래스 보호되어 있는 글 입니다. 2024. 7. 21.
[Swift] inout 매개변수 안녕하세요 로디입니다. 오늘은 Swift의 inout 키워드에 대해서 간단하게 정리하겠습니다. Swift에서, 함수의 매개변수(parameter)로 전달되는 "값 타입"은 기본적으로 상수(let)입니다.* 값 타입Swift의 값 타입은 구조체(struct)를 사용하여 표시합니다. 예를 들어 String, Int, Array, Dictionary 등. 그렇기에, 함수의 body 내부에서 매개변수로 전달받은 값을 바꾸는 것은 불가능합니다.아래와 같이 매개변수 값을 바꾸려고하면 컴파일러가 에러를 표시하죠. 그렇다면 함수 내부에서 매개변수의 값을 바꾸는 게 영영 불가능할까요?아뇨, 매개변수를 inout 키워드를 이용해 inout 매개변수로 정의하면 가능합니다. Swift의 인아웃 매개변수(In-Out Param.. 2024. 7. 19.
[Swift] Method Dispatch 란 보호되어 있는 글 입니다. 2024. 7. 15.
[Swift] LazySequence 보호되어 있는 글 입니다. 2024. 7. 8.
[Swift] 문자열 String 보호되어 있는 글 입니다. 2024. 7. 7.
[알고리즘] 해시 해시- 키를 통해 값을 찾을 수 있음- 그러나 값을 통해 키를 찾을 수는 없음.- 키 자체가 해시 함수에 의해 값이 있는 인덱스가 되므로 값을 찾기 위한 탐색 과정이 필요 없음.- 값을 익덱스로 활용하려면 적절한 변환 과정을 거쳐야함. 해시 테이블- 키와 대응한 값이 저장되어 있는 공간- 해시 테이블의 각 데이터를 버킷이라고 부름. 해시 함수코딩테스트에서 해시 함수를 직접 구현하라는 문제가 나오는 경우는 거의 없음.Swift의 STL은 이미 Dictionary 를 제공하는데, 해시와 거의 동일하게 동작하므로 해시를 쉽게 사용할 수 있음.해시 함수에 의해 얻어지는 값을 해시값, 해시코드, 해시 체크섬으로도 부름. 해시 함수를 구현할 때 고려해야할 부분- 첫째, 해시 함수가 변환한 값은 인덱스로 활용해야 함.. 2024. 7. 4.
[iOS] L10n 대응하기 (with Tuist and SwiftGen) 보호되어 있는 글 입니다. 2024. 7. 2.