홍로그

App Thinning 본문

iOS

App Thinning

성홍민 2023. 6. 5. 12:07

📖 App Thinning이란?

App Thinning은 앱의 크기를 줄이고 다운로드 속도를 높이기 위한 전략입니다. 이를 통해 사용자는 저장 공간을 절약하고 앱의 성능을 최적화할 수 있습니다. App Thinning은 슬라이싱, 비트코드, 온디맨드 리소스 이렇게 세 가지 주요 구성소로 이루어져 있습니다.

1. 슬라이싱(Slicing)

  • 개발자는 기기 및 운영체제에 맞춰 최적화된 앱 빌드 버전을 생성하기 위해 리소스를 준비해야 합니다. 이를 위해 Asset Catalog를 사용하고 이미지 및 기타 리소스를 명명하여, 앱 코드에서 알맞은 버전의 리소스를 불러오게 됩니다.
  • 앱스토어는 개발자가 제공한 리소스를 기반으로 기기에 맞는 최적화된 앱 빌드버전을 생성하여 사용자에게 제공합니다. 이렇게 함으로써 사용자들이 필요한 리소스 및 실행 파일만 다운로드하게 되어 효율성이 향상됩니다.

2. 비트코드(Bitcode)

  • 개발자는 프로젝트 설정에서 "Enable Bitcode"를 "Yes"로 변경해서 비트코드를 포함시켜야 합니다. 이렇게 하면 앱스토어가 비트코드를 최적화된 기계어로 변환하는 과정에서 성능 향상 및 최적화를 이룰 수 있습니다.
  • 앱스토어는 개발자가 비트코드로 전달한 애플리케이션의 실행 파일을 최적화된 기계어로 다시 컴파일합니다. 이로 인해 사용자는 추가적인 성능 향상을 경험하며, 앱의 다운로드 크기도 감소되게 됩니다.

3. 온디맨드 리소스(On-Demand Resources)

  • 개발자는 앱의 리소스에 온디맨드 리소스 태그를 설정하고, 이를 필요에 따라 로드하는 코드를 작성해야 합니다. 사용자가 리소스를 요청할 때마다 앱스토어에서 해당 리소스를 제공하도록 하는 메커니즘이 구현되어야 합니다.
  • 앱스토어는 앱이 실행되는 동안 필요한 리소스를 요청받고, 해당 리소스를 원할 때만 사용자에게 제공하여 저장 공간을 절약합니다. 이를 통해 애플리케이션의 초기 다운로드 크기를 줄일 수 있습니다.

4. 결론

App Thinning은 개발자와 앱스토어가 함께 협력하여, 최적화된 앱을 사용자에게 제공하는 프로세스입니다. 개발자는 앱의 최적화를 위한 설정과 구현을 준비하고, 앱스토어는 이를 기반으로 사용자에게 최적화된 앱을 제공합니다.

5. 참고

Reducing your app's size - 애플 문서

반응형

'iOS' 카테고리의 다른 글

SwiftUI ScrollView, ScrollViewReader, ScrollViewProxy  (0) 2023.06.12
Swift @main  (0) 2023.06.07
MVP 패턴  (2) 2023.06.04
@StateObject, @ObservedObject, @EnvironmentObject 비교  (0) 2023.06.03
데이터 바인딩(Data Binding)  (0) 2023.06.02