[iOS] 프로젝트에 이미지 추가하기 - asset

corncheese·2021년 7월 26일
0

iOS

목록 보기
2/10
본 글은 부스트코스 iOS앱프로그래밍을 수강하며 작성되었습니다.

1. 학습 목표

  • asset과 관련된 개념 이해
  • 에셋을 이용해 프로젝트에 사용할 이미지 추가하기

2. 핵심 키워드

  • Asset Catalog
  • App Slicing
  • App Thining

> 에셋 카탈로그란?

Xcode에서 프로젝트를 처음 생성하면 Asset.xcassets 이라는 폴더가 자동생성된다.
이 폴더에서 다양한 에셋을 관리하며, 이를 에셋 카탈로그라고 한다.

에셋 카탈로그는 에셋과 다양한 디바이스 속성에 대한 파일의 연결을 통해서 애플리케이션 리소스에 쉽게 접근할 수 있도록 도와준다.

리소스는 애플리케이션이 실행 중일 때 사용하는 이미지, 음악 파일을 이야기한다.
속성은 디바이스의 특징, 사이즈 클래스, 주문형 리소스, 특정 타입의 정보를 포함하고 있다.

> 에셋 카탈로그 구성

  • group : 한 개 이상의 또 다른 그룹이나 에셋을 가질 수 있다.
  • Assets : 에셋은 한 가지 타입의 관련된 속성과 파일들의 집합을 나타낸다.
  • Asset name : 에셋에 접근하기 위해 개발자가 정의한 문자열
  • Asset fules : 선택한 에셋의 데이터 파일 또는 리소스
  • Attribute : 선택한 그룹, 에셋, 에셋파일의 속성을 나타냄
프로젝트 내에 같은 타겟에는 에셋(폴더)의 이름은 반드시 고유해야 한다. 리소스 타입에 상관없이 이름은 고유해야 한다.

> 에셋 카탈로그 타입

폴더 타입확장자설명
App Icon type.appiconset애플리케이션의 아이콘
Catalog Type.xcassets에셋 카탈로그의 최상위 폴더
Iamge Set Type.imageset객체들이 사용하는 이미지
Data Set Type.dataset애플리케이션에서 사용되는 데이터 파일
Launch Image Type.launchimage애플리케이션의 실행화면 이미지
  • Catalog Type : 에셋 카탈로그 폴더구조의 최상위 폴더로 한개의 에셋 카탈로그만 존재할 수 있다.
  • Image Set Type : 이미지 에셋에서 UIImage와 NSImage의 인스턴스에 사용되는 이미지 파일이다.
  • Data Set Type : 장치 실행 가능 코드(device-excutable code)를 제외한 Xcode에 의해 생성된 모든 종류의 데이터를 포함하는 파일들의 집합
  • Launch Image Type : 애플리케이션 실행화면의 이미지 (* iOS 8.0버전이상은 기본적으로 실행화면 스토리보드를 사용한다.)

> 앱 시닝과 앱 슬라이싱

앱 시닝(app thining)이란?

애플리케이션이 디바이스에 설치될 때 앱 스토어와 운영체제가 그 디바이스의 특성에 맞게 설치하도록 하는 설치 최적화 기술을 의미한다.
이를 통해 애플리케이션의 설치용량을 최소화하고 다운로드의 속도를 향상시킬 수 있다.
앱 시닝의 기술 구성요소는 슬라이싱, 비트코드, 주문형 리소스가 있습니다.

슬라이싱(slicing)이란?

애플리케이션이 지원하는 다양한 디바이스에 대한 여러 조각의 애플리케이션 번들(app bundle)을 생성하고 디바이스에 알맞은 조각을 전달하는 기술이다.
개발자가 애플리케이션의 전체 버전을 itunes Connect에 업로드하게 되면, 앱 스토어에는 각 디바이스 특성에 대한 다양한 버전의 조각들이 생성된다. 사용자가 애플리케이션을 설치할 때 전체 버전이 아닌 '슬라이싱'된 조각들 중 가장 적합한 조각이 다운로드되어 설치된다.
에셋 카탈로그에서 관리하는 이미지들은 자동으로 적용이 된다.

슬라이싱은 iOS 9.0 이상버전만 지원한다.
iTunes Conncet란 개발자가 앱 스토어에 판매할 애플리케이션을 제출하고 관리할 수 있도록 도와주는 웹 기반 도구이다.

참고 링크
1. https://help.apple.com/xcode/mac/current/#/dev10510b1f7
2.https://developer.apple.com/library/archive/documentation/Xcode/Reference/xcode_ref-Asset_Catalog_Format/AssetTypes.html

0개의 댓글