App thinning

Young Bin Lee·2023년 7월 3일
0

research

목록 보기
3/6

App thinning은 iOS 기기에서 앱 설치 및 저장을 최적화하기 위해 iOS 9에 도입된 기능입니다. 이 기능을 사용하면 운영 체제가 특정 기기에 필요한 앱 리소스만 다운로드하여 설치할 수 있어 앱의 크기가 줄어들고 성능이 향상됩니다.

구성요소


App thinning은 Slicing, On Demand Resources, Bitcode 세 가지 구성 요소를 가집니다.

Slicing

Slicing은 앱 바이너리를 디바이스별로 나누어 필요한 요소만 다운로드하는 기술입니다

  • 예를 들어, iPhone 12에서 다운로드하는 경우 iPhone 12에 필요한 부분만, iPhone 8에서 다운로드하는 경우 iPhone 8에 필요한 부분만 다운로드됩니다.

Bitcode

Bitcode는 앱을 컴파일할 때 생성되는 중간 표현입니다.

  • 이 중간표현은 새로운 아키텍처의 기기에서 코드를 다시 컴파일 하는 번거로움을 덜어줍니다.
  • Bitcode는 iOS에서 선택적으로 도입 가능하나 watchOS, tvOS에서는 의무적으로 도입해야합니다.

On Demand Resources

On Demand Resources를 사용하면 앱이 이미지, 비디오 또는 사운드 파일과 같은 추가 콘텐츠를 필요할 때만 요청할 수 있습니다.

  • 앱 리소스의 lazy로딩이 가능합니다.
    • 예를 들어, 레벨이 많은 게임에서 사용자는 현재 및 다음 레벨과 관련된 리소스만 필요합니다.
  • 거의 사용하지 않는 리소스를 원격으로 저장 후 필요할 때 요청할 수 있습니다.
    • 예를 들어, 앱 튜토리얼은 일반적으로 앱을 처음 연 후 한 번만 표시되며 다시는 사용되지 않을 수 있습니다.
  • 앱은 추가 리소스가 포함된 인앱 구매를 제공하며 구매 이전까지 해당 리소스를 제공하지 않습니다.
    • 구매한 모듈의 리소스를 구매가 발생한 후 요청할 수 있습니다.
  • 이를 사용하면 앱의 다운로드 크기를 줄이고 앱의 초기 다운로드 시간을 단축할 수 있습니다.

정리


  • App thinning을 통해 앱 사이즈를 줄일 수 있으며 Slicing, On Demand Resources, Bitcode 3가지 기술을 이용합니다.

참고


App thinning

App Thinning in Xcode - WWDC15 - Videos - Apple Developer

ODR

On-Demand Resources Guide: On-Demand Resources Essentials

App size

Reducing your app’s size | Apple Developer Documentation

Doing basic optimization to reduce your app’s size | Apple Developer Documentation

0개의 댓글