app thinning
TRANSCRIPT
App Thinning
AppThinning – набортехнологийнаправленныйнауменьшение
накладныхрасходовпридоставкеприложенияизAppStoreк
конечномупользователю
App Slicing
Slicing - этопроцесссозданияипоставкивариантовбандла
приложениядляразличныхустройств.Каждыйвариантсодержит
исполняемыйфайлиресурсынеобходимыедляработынаконечном
устройстве.
Bitcode
Bitcode - промежуточноепредставние скомпилированнойпрограммы.
Приложения,содержащиеbitcodeпризагрузкевiTunesConnect,будут
скомпилированныислинкованныужевсамомсторе.
ПримерLLVMIR// main.cextern int printf(const char *fmt, ...);
int main() {printf("Hello World\n");return 0;
}
clang -S -emit-llvm [email protected] = private unnamed_addr constant [13 x i8] c"Hello World\0A\00", align 1
; Function Attrs: nounwind ssp uwtabledefine i32 @main() #0 {
%1 = alloca i32, align 4store i32 0, i32* %1%2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([13
x i8]* @.str, i32 0, i32 0))ret i32 0
}
declare i32 @printf(i8*, ...) #1
МинусыBitcode
•Всеприложенияифреймворкивбандледолжны
поддерживатьbitcode
•Необходимо"вручную"выгружатьdSym вFabric
On-Demand Resources
On-Demand Resources - эторесурсы(картинки,аудио,…)помеченные
специальнымтегомикоторыеможнозапроситьссерверапоэтому
тэгу
Преимущества On-Demand Resources
• Уменьшениеразмераприложения
• Лениваязагрузкаресурсовприложения
• Удаленноехранилищередкоиспользуемыхресурсов
• Удаленноехранилищересурсовдлявстроенныхпокупок
ОграничениянаразмерыресурсовItem Size Slicing
iOS App bundle 2 GB �
tvOS App bundle 200 MB �
Tag 512 MB �
Asset packs 1000 �
Initial install tags 2 GB �
Initial install and prefetched tags 4 GB �
In use on-demand resources 2 GB �
Hosted on-demand resources 20GB –