일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- stanford
- 스위프트
- 백준
- flutter #state # stateful #stateless
- process
- GIT
- 조건문
- Masil
- CS193p
- xcode
- 새싹후기
- WidgetTree
- collectionView
- ImageSlider
- SwiftUI
- UserDefault
- MVVM
- 프로젝트회고
- Swift
- 오늘의 색상
- 청년취업사관학교후기
- IOS
- UIKit
- flutter
- 프로그래머스
- colorofdays
- 코딩테스트
- xml
- 스터디
- 알고리즘
- Today
- Total
개발을 시작하는 이야기
앱 시닝(app thinning) 본문
What is app thinning?
App Store 및 운영체제는 사용자의 기기 및 운영체제 버전에 맞게 app delivery를 조정하여 최소한의 설치 공간을 사용할 수 있도록 iOS, tvOS, watchOS앱들의 설치를 최적화 한다.
App thinning이라고 불리는 최적화를 통해 device의 기능 대부분을 사용하고 최소 디스크 공간을 차지하며 향후 Apple에 의한 업데이트들을 수용할 수 있는 앱을 만들 수 있다.
더 빠른 다운로드와 더 많은 공간은 더 나은 사용자 경험을 제공한다.
Slicing (iOS, tvOS)
슬라이싱(Slicing)은 다양한 기기와 운영체제 버전에 대하여 여러 가지 앱 번들의 변형(variants)을 생성하고 전달하는 과정이다. 변형(variants)은 실행 가능한 아키텍처, 리소스만 포함한다.
앱을 개발하고 App Store Connect에 업로드를 하면, App Store는 앱이 지원하는 기기 및 운영 체제 버전에 따라 다양한 변형을 만들고 제공하게 된다. AppStore에서 각 변형에 적합한 이미지, GPU 리소스 및 기타 데이터를 선택할 수 있도록 asset catalog를 사용한다. 사용자가 앱을 설치하면 사용자의 장치 및 운영체제 버전에 대한 변형이 다운로드되어 설치된다.
Xcode는 개발 중에 슬라이싱을 시뮬레이션하므로 로컬에서 변형을 만들고 테스트할 수 있다. 기기나 시뮬레이터에서 앱을 빌드하고 실행할 때 앱을 슬라이싱 한다. 아카이브를 생성할 때, Xcode는 앱의 전체 버전을 포함하지만 아카이브에서 변형을 내보낼 수 있다.
Bitcode
비트 코드는 컴파일된 프로그램의 중간 표현이다.
비트 코드가 포함된 App Store Connect에 업로드하는 앱은 App Store에서 컴파일 및 연결된다.
비트 코드를 포함하면 Apple에서 앱의 새 버전을 App Store에 제출할 필요 없이 향후 앱 바이너리를 다시 최적화할 수 있다.
사실 위 문구가 이해가 안 갔다. 앱의 새 버전을 제출할 필요 없이 향후 앱 바이너리를 다시 최적화한다는 게 이해가 가지 않았는데
Apple Store에 올릴 때 비트 코드를 활성화 상태로 빌드해서 올리면 Apple에서 32-bit, 64-bit 디바이스 별로 필요한 빌드를 다르게 제공해서 용량을 최소화시켜준다고 한다.
iOS 앱의 경우 비트 코드가 기본값이지만 선택사항 이다. watchOS 및 tvOS 앱들의 경우는 비트코드가 필요하다. 비트코드를 제공하려면 앱 번들의 모든 앱과 프레임워크에 전부 비트코드가 포함되어야 한다.
Xcode는 기본적으로 앱의 Symbol을 숨기므로 Apple에서 읽을 수 없다. App Store Connect에서 앱을 업로드할 때 Symbol을 포함할 수 있는 옵션이 있다. Symbol을 포함하면 Apple에서 TestFlight이나 App Store를 통해 앱을 배포할 때 앱에 대한 충돌 보고서를 제공할 수 있다.
On-Demand Resources (iOS, tvOS)
주문형 리소스(On-Demand Resources)는 이미지나 사운드 같은 리소스를 키워드로 태그 할 수 있고, 태그별로 그룹을 요청할 수 있다. App Store는 Apple 서버의 리소스를 호스팅하고 다운로드를 관리한다. 또한 App Store는 주문형 리소스를 분할시켜 앱을 더욱 최적화한다.
주문형 리소스의 특징
- 앱 크기가 작아져 앱 다운로드 속도가 빨라져 최초 실행이 향상된다.
- 사용자가 앱을 사용하는 동안 필요에 따라 주문형 리소스가 백그라운드에서 다운로드된다.
- 디스크 공간이 부족할 때 더 이상 필요하지 않은 주문형 리소스를 제거한다.
예를 들자면 앱은 사용자가 사용자가 뎁스를 이동하는 경우 리소스를 추가로 요청하는 방식으로 앱의 사이즈를 효율적으로 관리한다.
유사하게, 사용자가 인앱 구매를 할 때만 인앱 구매 리소스를 요청하는 방식을 사용한다.
참조 : https://help.apple.com/xcode/mac/current/#/devbbdc5ce4f
참조(Bitcode) : https://iphonecodecenter.wordpress.com/2015/10/13/what-is-bitcode/
'개발 이야기 > Swift' 카테고리의 다른 글
StoryBoard를 사용하기 (0) | 2022.03.22 |
---|---|
@main (0) | 2022.03.21 |
weak, unowned (0) | 2022.03.19 |
ARC(Automatic Reference Counting) (0) | 2022.03.18 |
ViewController (0) | 2022.03.17 |