App thinning이란 Application이 Device에 설치될 때 설치 최적화 하는 기술을 의미합니다. App thinning에는 slicing, bitcode, on-demand resource가 있습니다.
Slicing
App이 지원하는 여러 Device에 대해 각각 Application bundle을 생성하고, 해당 Device에 가장 적합한 것을 전달하는 기술입니다. Asset catalog를 이용해 App Store가 images, GPU resources and other data를 각각의 variant에 맞게 제공해야 합니다.
Bitcode
Bitcode는 compile된 program의 중간 표현입니다. 현재 iOS에서는 기본 설정으로 되어있고, 개발자가 Project option에서 선택할 수 있습니다. Bitcode를 사용하여 upload하면 Apple이 recompile하여 app binary를 생성합니다.
On-demand resource
사용자가 필요할 때에 추가로 download 받는 것을 의미합니다. 주로 images나 sounds 입니다. 때문에 App size가 작아 download가 빨라지고, Resource가 background에서 download 가능하고, OS가 필요없는 resource를 알아서 삭제하기 때문에 더 나은 UX를 제공할 수 있습니다.
App thinning이란 애플리케이션이 설치될 때, 해당 디바이스의 특성에 맞도록 설치되도록 하는 설치 최적화기술입니다. 최소한의 디스크 사용 및 빠른 다운로드를 제공할 수 있습니다. 앱 시닝에는 slicing, bitcode, on-demand resource가 있습니다.
slicing
앱이 지원하는 여러 디바이스에 대해 각각의 번들을 생성해놓고, 사용자의 디바이스에 가장 적합한 번들 조각을 전달하는 기술입니다.
bitcode
비트코드란 기계어로 번역되기 이전의 중간단계를 뜻합니다. 현재 iOS에서는 옵션 혹은 기본 설정으로 되어 있고, 개발자가 프로젝트 옵션에서 변경할 수 있습니다. 비트코드를 사용해 업로드를 진행하면 Apple 측에서 이를 재컴파일하여 App binary를 생성합니다. 비트코드를 사용하지 않으면 모든 디바이스 케이스를 바이너리로 생성하여 fat binary를 업로드하지만, 비트코드를 사용하면 필요에 따라 재컴파일하게 되므로 그때 최적화가 가능해집니다.
on-demand resource
사용자가 필요로할때 다운로드를 받는 것입니다. 당장 필요한 기능을 제외하고는 다운로드를 하지 않고, 추후 사용자가 필요로할 경우 다운로드를 진행합니다.
App thinning이란 Application이 Device에 설치될 때 설치 최적화 하는 기술을 의미합니다. App thinning에는 slicing, bitcode, on-demand resource가 있습니다.
Slicing
Bitcode
On-demand resource
[What is app thinning(iOS, tvOS, watchOS)]