💪 간단한 애플리케이션을 만들어보자
스위프트의 문법을 공부 했으면 이제 이를 이용하여 iOS 애플리케이션 개발에 관한 공부를 진행해야 할 것 같다. 아주 간단한 애플리케이션을 만들 더라고 기본부터 천천히 공부하고 기록해 두는 습관을 들여야겠다.
나는 Boost course의 iOS앱 프로그래밍을 참고하여 기초적인 iOS 앱개발 공부를 시작할 예정이다.
✏️ Catalog Asset
Xcode프로젝트를 생성할 때 기본으로 생성되는 Assets.xcassets 폴더 앱에 사용될 여러 애셋을 보관하는 곳이다.(말그대로 에셋, 자산... 이미지같은 것?)
애셋 카탈로그는 여러 디바이스와의 mapping을 통해서 (모든 기기는 속성이 다르니깐) 애플리케이션의 리소스에 접근하기 쉽도록 도와준다.
여기서 말하는 속성은 각 디바이스의 특징, 사이즈 클래스, 주문형 리소스, 특정 타입의 정보 등이 있다.
애셋 카탈로그의 콘텐츠는 3가지 타입을 갖는다.
- folders : 다른 그룹폴더 또는 에셋 폴더를 포함할 수 있다. 폴더명인데도 확장자를 가지는 특징이 있다.
- JSON files : .json확장자 파일로서 속성에 대한 정보를 포함한다.
- Content files : 콘텐츠파일은 리소스 파일을 나타낸다.
Carrot은 리소스가 아니고 저 자체가 Asset folder이다, 그 안의 1x, 2x, 3x가 리소스인듯..?
✏️ 에셋 카탈로그 타입(Asset Catalog Type)
위의 글을 작성할 때 타입이라는 말이 이해가 안되었는데. 살펴보자.
다음은 에셋카탈로그의 대표적인 타입과 확장자이다.
폴터 타입 확장자 설명
App Icon Type | .appiconset | 애플리케이션의 아이콘 |
Catalog Type | .xcassets | 에셋 카탈로그 최상의 폴더 |
Image Set Type | .imageset | 객체들이 사용하는 이미지 |
Data Set Type | .dataset | 애플리케이션에서 사용되는 데이터 파일 |
Launch Image Type | .launchimage | 애플리케이션의 launch 이미지 |
- App Icon Type : 다양한 크기와 해상도의 애플리케이션 아이콘 원본 이미지
- Catalog Type : 에셋 카탈로그 폴더구조의 최상위 폴더. 한 개의 에셋 카탈로그에 한 개만 존재 가능
- Image Set Type : 이미지 에셋에서 UIImage와 NSImage의 인스턴스에 사용되는 이미지 파일
- Data Set Type : 장치 실행 가능 코드(device-executable code)를 제외한 Xcode에 의해 생성된 모든 종류의 데이터를 포함하는 파일들의 집합
- Launch Image Type : 애플리케이션 실행화면 이미지인데 iOS 7.0이하에서만 필요함! 이후버전에서는 스토리보드에서 launch screen storyboard를 사용한다!
이 외의 타입들에 대해서는 아래 링크를 참고하면 된다!
✏️ 앱 시닝(App Thining)과 앱 슬라이싱(App Slicing)이란?
- 앱 시닝(App thining)
이름처럼 앱을 가볍게만드는..것인데 정확하게는 애플리케이션이 디바이스에 설치될 때 앱스토어와 운영체제가 디바이스의 특성에 맞춰서 설치 최적화를 한다는 것. 그리하여 설치용량을 최소화하고 다운로드의 속도를 향상할 수 있는 것!
앱 시닝의 기술 구성요소 : 슬라이싱, 비트코드, 주문형리소스(on-demand resource)
- 앱 슬라이싱
여러개의 번들로 애플리케이션을 생성하고 디바이스에 맞는 조각을 전달하는 기술.(사실 나는 이것만 읽어서는 정확하게 앱 시닝과 슬라이싱의 차이를 모르겠다..)
아무튼, 사용자가 다운로드를 하게되면, 여러개의 번들 중 디바이스에 최적화된 적합한 조합으로 다운로드되어 설치되는 것!
자료 출처 : iOS 앱 프로그래밍
'공부 > [iOS&Swift]' 카테고리의 다른 글
[Swift] Protocol에 대하여 (0) | 2022.01.24 |
---|---|
[iOS] Button, Label, Slider에 대하여 (0) | 2022.01.20 |
[iOS] LLDB(Low-Level-Debugger)에 대하여 (0) | 2022.01.18 |
[Swift] Extension(확장)에 대하여 (0) | 2022.01.17 |
[Swift] Swift의 상속에 대하여 (0) | 2022.01.14 |
댓글