에셋 카탈로그 (Asset Catalog)
Xcode에서 프로젝트를 처음 생성하면 Assets.xcassets라는 폴더가 자동 생성된다. 이 폴더에서 애플리케이션에서 쓰일 다양한 에셋을 관리하며, 이를 에셋 카탈로그라고 한다.
에셋 카탈로그는 에셋과 다양한 디바이스의 속성에 대한 파일의 연결을(mapping) 통해서 애플리케이션 리소스(애플리케이션이 실행 중일 때 사용하는 이미지와 음악 파일 등)에 쉽게 접근할 수 있도록 도와준다. 여기서 말하는 속성은 디바이스의 특징, 사이즈 클래스, 주문형 리소스, 특정 타입의 정보를 포함하고 있다.
에셋 카탈로그의 3가지 타입
- Folders : 에셋 카탈로그 폴더는 다른 그룹 폴더나 에셋 폴더를 포함할 수 있다. (폴더 안에 폴더 가능) 파일시스템의 폴더 이름은 대체적으로 확장자를 갖지 않지만 에셋 카탈로그 폴더는 위의 그림과 같이 해당 에셋 타입의 확장자가 자동으로 붙는다.
- JSON files : .json 확장자 파일로써 속성에 대한 정보를 포함
- Content files : 콘텐츠 파일은 리소스 파일을 나타냅니다. (사진 이미지)
에셋 카탈로그의 대표적인 타입과 확장자
폴더 타입 | 확장자 | 설명 |
App Icon Type | .appiconset | 애플리케이션의 아이콘 입니다. |
Catalog Type | .xcassets | 에셋 카탈로그의 최상위 폴더입니다. |
Image Set Type | .imageset | 객체들이 사용하는 이미지입니다. |
Data Set Type | .dataset | 애플리케이션에서 사용되는 데이터 파일입니다. |
Launch Image Type | .launchimage | 애플리케이션의 실행화면 이미지입니다. |
- App Icon Type : 다양한 크기와 해상도의 애플리케이션 아이콘 원본 이미지입니다.
- Catalog Type : 에셋 카탈로그 폴더구조의 최상위 폴더입니다. 한 개의 에셋 카탈로그에 하나만 존재할 수 있습니다.
- Image Set Type : 이미지 에셋에서 UIImage와 NSImage의 인스턴스에 사용되는 이미지 파일입니다.
- Data Set Type : 장치 실행 가능 코드(device-executable code)를 제외한 Xcode에 의해 생성된 모든 종류의 데이터를 포함하는 파일들의 집합입니다.
- Launch Image Type : 애플리케이션 실행화면 이미지입니다. (iOS 7.0 이하 버전에만 필요합니다. iOS 8.0 버전 이상은 기본적으로 실행화면 스토리보드(launch screen storyboard)를 사용합니다.)
- 자세한 내용은 아래 링크2.Type Reference를 참조하세요.
앱 시닝 (app thinning)
애플리케이션이 디바이스에 설치될 때 앱 스토어와 운영체제가 그 디바이스의 특성에 맞게 설치하도록 하는 설치 최적화 기술을 의미. 이를 통해 애플리케이션의 설치용량을 최소화하고 다운로드의 속도를 향상시킬 수 있다. 앱 시닝(app thinning)의 기술 구성요소는 슬라이싱(slicing), 비트코드(bitcode), 주문형 리소스(on-demand resource)가 있다.
앱 슬라이싱(slicing)
애플리케이션이 지원하는 다양한 디바이스에 대한 여러 조각의 애플리케이션 번들(app bundle)을 생성하고 디바이스에 알맞은 조각을 전달하는 기술. 개발자가 애플리케이션의 전체 버전을 iTunes Connect에 업로드하게 되면, 앱 스토어에는 각 디바이스 특성에 다양한 버전의 조각들이 생성된다. 사용자가 애플리케이션을 설치할 때 전체 버전이 아닌 슬라이싱(slicing)된 조각들 중 사용자의 디바이스의 가장 적합한 조각이 다운로드되어 설치된다. 에셋 카탈로그에서 관리하는 이미지들은 자동으로 적용된다.(슬라이싱(slicing)은 iOS 9.0 이상버전 이상만 지원합니다.)
'iOS > Swift' 카테고리의 다른 글
[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 3. Foundation과 UIKit 그리고 Cocoa Touch (0) | 2021.08.04 |
---|---|
[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 2. 애플리케이션 만들기 (2) (0) | 2021.08.04 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch3. 오류처리 및 고차함수 - 29. 고차함수 (0) | 2021.08.01 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch3. 오류처리 및 고차함수 - 28. 오류 처리 (0) | 2021.07.30 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch2. 다양한 표현 및 확장 - 27. 익스텐션 (0) | 2021.07.30 |