Wednesday, October 21, 2015

Giới thiệu tổng quan khái niệm về App Thinning

Nếu ứng dụng của bạn hỗ trợ những thiết bị khác nhau như: iPad 1, iPad 2, iPad 3, iPhone 4, iPhone 5, iPhone 6, iPhone 6 plus,... thì dung lượng của nó rất lớn vì bạn phải thêm những hình tuỳ thuộc vào kích thước màn hình của từng thiết bị như @1x, @2x,  @3x.
Ngoài ra nếu ứng dụng của bạn sử dụng những file âm thanh lớn mà phải thêm vào bản build từ đầu, thành ra dung lượng của ứng dụng càng nặng.
Vì thế Apple đã giới thiệu khái niệm App Thinning trong WWDC 2015 nhằm giải quyết vấn đề giảm dung lượng của ứng dụng khi archive bản build.

Bài này mình xin giới thiệu sơ qua những khái niệm trong App Thinning như Slicing, Bitcode, On-Demand resources.

Slicing:

Slicing là một tiến trình tạo và phân phối những gói ứng dụng variant cho những thiết bị khác nhau. Một variant chỉ chứa kiến trúc thực thi và tài nguyên cần thiết cho từng thiết bị. Khi bạn tiếp tục phát triển và tải ứng dụng của bạn với full version lên trên iTunes Connect, thì Store sẽ tạo và phân phối những variant khác nhau dựa trên những thiết bị mà bạn hỗ trợ. Những tài nguyên về hình ảnh hay GPU cũng được chia nhỏ dựa theo độ phân giải, loại thiết bị và dung lượng thiết bị.

XCode giả slicing trong thời gian phát triển ứng dụng, vì thế bạn có thể tạo và kiểm tra những variant ở dưới local. XCode chia nhỏ ứng dụng của bạn khi bạn build và chạy ứng dụng trên một thiết bị. Khi bạn tạo ra một Archive, XCode bao gồm full version ứng dụng của bạn nhưng cho phép bạn export những variant từ archive.

Lưu ý: Sliced App chỉ hỗ trợ những thiết bị chạy từ iOS 9.0 trở về sau. Ứng dụng phải sử dụng Asset Catalog.


Bitcode:

Bitcode là một đại diện trung gian của trình biên dịch. Ứng dụng của bạn tải lên iTunes Connect có chứa bitcode sẽ được compile và link đến store. Bitcode sẽ cho phép Apple tái tối ưu hoá lại binary ứng dụng của bạn trong tương lai mà không cần submit version mới lên store.

On-Demand resources:

On-Demand resources là những tài nguyên như hình ảnh, âm thanh... Quản lý tài nguyên trên server của Apple. Cho phép ứng dụng tải những tài nguyên đó khi cần thiết và tải lại một cách thích hợp. Dịch vụ này cho phép tải nhanh và kích thước ứng dụng nhỏ. Cơ chế này giống như In-App Purchase resources .


Tài liệu tham khảo:

- https://developer.apple.com/library/prerelease/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html#//apple_ref/doc/uid/TP40012582-CH35-SW3

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.