일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 코딩테스트입문
- Swift디자인패턴
- alamofire
- storekit2
- hackerrank
- Swift코딩테스트
- UIKit
- firestore
- 리팩터링
- mrc
- ios면접
- Safari Inspector
- 클린코드
- RC
- unittest
- TDD
- algorithm
- Di
- RxSwift
- five lines of code
- SWIFT
- ARC
- IOS
- AutoLayout
- 프로그래머스
- five lines of cdde
- 카카오맵클론
- firebase
- 앱의생명주기
- css학습
- Today
- Total
샘성의 iOS 개발 일지
App thinning에 대해서 설명하시오. 본문
1. App thinning 이란?
앱이 디바이스에 설치될 때, 앱스토어와 운영체제가 설치하는 기기의 특성에 맞게 앱이 설치되도록 하는 설치 최적화 기술
2. App thinning 장점
최소한의 디스크 사용, 빠른 다운로드 속도 제공
3. App thinning 구성
3-1. 슬라이싱 (Slicing)
앱은 실행 가능한 코드와 다양한 리소스로 구성되어있다. 개발자가 다양한 art work와 리소스를 가진 범용 앱을 앱스토어에 업로드하면, 앱스토어에서 알아서 해당 앱을 다운받는 유저의 디바이스에 적절한 리소스를 조합하여 별도의 IPA(애플 앱 파일)를 만들어주는 기술.
개발자는 앱을 잘 제작하기만 하면 된다. 앱스토어가 다운받는 유저의 기기에 맞게 알아서 슬라이싱하여 개발자가 제작한 IPA파일 중 적절한 요소를 골라 IPA파일을 만들어 유저에게 제공할 것이니...
3-2. 주문형 리소스 (ODR - On Demand Resource)
앱 파일(IDR)과 별개로 사용자가 필요할 때만 로드해주는 리소스가 주문형 리소스(ODR)이다.
ODR은 앱스토어가 갖고 있어서 사용자가 필요하면 저장되는 방식이다. (이전에 사용했던 리소스가 필요 없어지면 해당 리소스가 포함된 asset pack 제거도 가능함)
e.g) 파파고 앱을 다운받으면 필요한 나라의 번역 기능 파일을 골라서 다운받을 수 있다.
영한 번역이 필요하면 영한 번역만, 중한 번역이 필요하면 중한 번역만 다운 받아 사용하면 된다. 다른 번역 파일은 필요하지 않으면 다운받지 않아도 되서 메모리 낭비를 방지할 수 있다
3-3. 비트코드 (Bit Code)
기계어도 아니고 사람이 이해할 수 있는 언어도 아닌 그 사이에 존재하는 중간단계 코드로, 앱을 압축하여 앱스토어에 제출할 때 사용된다.
앱을 설치할 때 최적화 될 수 있도록 App Slicing과 함께 앱을 최적화된 형태로 배포 할 때 사용된다.
중단 언어인 비트코드를 사용해, 사용자가 사용하는 기기에 맞게 최적화된 코드를 생성(이게 진짜 실행되는 코드)하여 앱의 성능과 호환성을 높인다.
또한, 사용자가 앱을 업데이트 할 때 추가적인 바이너리를 다운받지 않고도 업데이트 할 수 있게 한다. 그러므로 유저가 보다 더 쉽게 앱을 최신버전으로 업데이트하고 앱의 크기를 줄일 수 있도록 한다.
참고: https://zeddios.tistory.com/655
App Thinning. 그리고 Bitcode
안녕하세요 :) Zedd입니다.음..ABI글을 쓰다가 또 Bitcode가 궁금해져서..이 Bitcode에 대해서 먼저 공부해보려고 합니다.ㅠ진짜 너무 어려워요..........Bitcode라던가 ABI라던가...이런 컴파일러(?)라고 해
zeddios.tistory.com
'iOS > 면접' 카테고리의 다른 글
NotificationCenter 동작 방식과 활용 방안에 대해 설명하시오. (0) | 2023.06.07 |
---|---|
앱이 시작할 때 main.c 에 있는 UIApplicationMain 함수에 의해서 생성되는 객체는 무엇인가? (1) | 2023.06.03 |
앱의 콘텐츠나 데이터 자체를 저장/보관하는 특별한 객체를 무엇이라고 하는가? (1) | 2023.06.03 |
Global DispatchQueue 의 QoS 에는 어떤 종류가 있는지, 각각 어떤 의미인지 설명하시오. (0) | 2023.06.01 |
앱이 In-Active 상태가 되는 시나리오를 설명하시오. (0) | 2023.06.01 |