App Thinning
App Thinning 이란 어플리케이션이 디바이스에 설치될 때, App Store 및 운영체제가 사용자의 디바이스의 특성 및 운영체제 버전에 맞게 App Delivery 를 조정하여 최소한의 설치 공간을 사용할 수 있도록 하는 설치 최적화 기술을 말한다. 이를 통해 최소한의 디스크 사용과 빠른 다운로드를 제공한다. 이를 통해 더 나은 사용자 경험(User Experience)를 제공할 수 있다.
App Thinning 에는 슬라이싱(Slicing), 비트 코드(BitCode), 주문형 리소스(on-demand Resource) 가 있다.
Slicing
Slicing 이란 다양한 기기와 운영체제 버전에 대하여 여러가지 app bundle 의 변형(varient) 을 생성하고 전달하는 과정이다.
변형(varient) 이란 실행 가능한 아키텍쳐, 리소스만 포함한다.
개발자가 App 의 전체 버전을 개발하고, 이를 App Store Connect 에 올리게되면, App Store 는 App 이 지원하는 기기 및 운영체제 버전에 따라 다양한 변형(varient) 을 생성하고 제공한다. 사용자가 App Store 에서 App 을 설치하게 되면 사용자의 기기 및 운영체제 버전에 맞춰 변형(varient)이 다운로드 된다.
BitCode
BitCode 란 기계언어로 번역되기 이전 단계의 중간표현(Intermediate Representation)을 말한다. 기계 언어도 아니면서 사람이 읽을 수 있는 코드도 아닌 표현이다. 이게 무슨말..?
BitCode 가 나오기 전에는 해당 App 이 실행될 수 있는 32bit, 64bit, arm6, 7 등의 모든 환경의 바이너리 파일들을 생성하여 하나로 합쳐서 App 이 뚱뚱해지는 경우가 존재하였다. 또한 새로운 아키텍쳐가 도입되었을 때 개발자들은 다시 앱 코드를 수정하고, 다시 컴파일하여 앱스토어에 제출하는 번거로움을 겪었다.
그러나 BitCode 가 나오면서 달라졌다. BitCode 를 포함하면 App 의 새 버전을 App Store 에 업데이트할 필요 없이 향후 앱 바이너리를 다시 최적화 할 수 있다. 예를 들어 64bit를 쓰다가 최신 arm64가 나온 경우, 최신 컴파일러로 자동으로 컴파일러가 되도록 할 수 있다.
과정은 다음과 같다. 프로젝트 파일에서 Enable Bitcode 를 true 로 바꾼 후 이를 App Store 에 업로드한다. 개발자가 모든 환경의 바이너리 파일이 아닌 Bit Code 를 애플에 제출하면, 애플 서버에서 BitCode 를 다시 컴파일하여 사용자에게 새로운 바이너리 파일을 제공한다.
ODR (On-Demand Resource)
On-Demand Resource 란 제곧내로 필요할 때 다운로드하는 것을 의미한다. 게임을 예시로 들었을 때 현재 레벨에 필요한 데이터만 다운로드하고, 사용자의 레벨이 올라가면서 그 레벨에 필요한 데이터를 그때 다운로드하는 것이다.
ODR 은 이미지나 사운드 같은 리소스를 키워드로 태그할 수 있고, 태그별로 그룹을 요청할 수 있다. 또한 ODR 은 App Store 에 IPA 와 별도로 저장된다.
App Store 은 Apple 서버의 리소스를 호스팅 하고, 다운로드를 관리하며, 주문형 리소스를 분할시켜 앱의 변형을 더욱 최적화한다고 한다.
## IPA 파일
iOS App 파일로, 응용 프로그램을 구성하는 다양한 데이터 조각을 보관하기위한 컨테이너
' iOS > Swift' 카테고리의 다른 글
AppDelegate.swift 와 @main (0) | 2022.10.13 |
---|---|
왜 UI 를 메인 스레드에서 업데이트 해야 할까? (0) | 2022.09.25 |
iOS 4계층 (0) | 2022.09.18 |
Breakpoint 과 디버깅 버튼 / 단축키 (0) | 2022.09.18 |