paint-brush
Kích thước có quan trọng nếu bạn có iPhone 15?từ tác giả@marcushaldd
651 lượt đọc
651 lượt đọc

Kích thước có quan trọng nếu bạn có iPhone 15?

từ tác giả Daria Leonova7m2023/11/10
Read on Terminal Reader

dài quá đọc không nổi

Vẫn còn một số lý do quan trọng khiến chúng ta vẫn nên chú ý đến kích thước ứng dụng của mình: - Giới hạn của App Store; - Tải xuống tốc độ khởi chạy; - Ảnh hưởng đến tuổi thọ pin của thiết bị; Và có một số phương pháp để giảm kích thước ứng dụng: - Định dạng HEIC và SVG cho hình ảnh; - Danh mục tài sản; - Liên kết động; - Lọc các tập tin dư thừa;
featured image - Kích thước có quan trọng nếu bạn có iPhone 15?
Daria Leonova HackerNoon profile picture
0-item

Mỗi năm, Apple đều tung ra một chiếc iPhone mới, tăng dần kích thước RAM và bộ nhớ chính, bổ sung thêm sức mạnh cho con chip. Ngày nay, trên iPhone 15, bạn đã có thể chạy các trò chơi trên bảng điều khiển như “Resident Evil 4.” Và một câu hỏi hợp lý có thể nảy sinh - tôi có nên tối ưu hóa kích thước ứng dụng của mình hay tôi không thể dành nhiều thời gian hơn cho nó?


Nói tóm lại, nó vẫn có giá trị tối ưu hóa kích thước. Trong bài viết này, tôi đã tập hợp các lý do tại sao cần phải làm như vậy và cung cấp một số phương pháp tối ưu hóa hữu ích.

Vấn đề và định nghĩa

Vì vậy, hãy bắt đầu với câu trả lời tầm thường nhất cho câu hỏi "Tại sao kích thước lại quan trọng?" - Những hạn chế của App Store. App Store Connect đơn giản là sẽ không cho phép bạn tải xuống tệp vượt quá giới hạn kích thước đã chỉ định.


Đối với ứng dụng iOS và tvOS, hãy xác minh rằng ứng dụng của bạn không vượt quá kích thước tệp tối đa trên hệ điều hành được hỗ trợ. Tổng kích thước không nén của ứng dụng của bạn phải nhỏ hơn 4GB.


Ứng dụng Apple Watch phải nhỏ hơn 75 MB. Ngoài ra, mỗi tệp thực thi Mach-O — ví dụ: app_name.app/app_name — không được vượt quá kích thước tệp tối đa này. liên kết


Các tập tin cụ thể mà họ đang đề cập đến có thể hơi khó hiểu. Để hiểu rõ hơn về điều này, hãy cùng tìm hiểu quy trình gửi đơn đăng ký của bạn tới App Store Connect.


.xcarchive

Product -> Archive

Bước đầu tiên là tạo một kho lưu trữ. Kho lưu trữ này lưu trữ một tập hợp các tạo phẩm xây dựng và thông tin liên quan cho ứng dụng iOS, macOS, watchOS hoặc tvOS.



.xcarchive right click -> Show Package Contents

Chúng tôi có cơ hội xem xét chính xác những gì và dưới hình thức nào được đưa vào kho lưu trữ.




Trong số các tập tin chính, bạn sẽ tìm thấy:


  • Thư mục Sản phẩm có Ứng dụng của bạn;

  • dSYM, (viết tắt của "biểu tượng gỡ lỗi"), các tệp đặc biệt do Xcode tạo ra với thông tin cần thiết để gỡ lỗi, nói ngắn gọn là nhật ký sự cố;

  • Thông tin.plist;


Nhân tiện, tệp Ứng dụng cũng có thể được mở bằng cách “Hiển thị nội dung gói” và trong số các tệp, bạn sẽ tìm thấy tệp thực thi và CodeResources, kết quả của việc ký mã; nó theo dõi chữ ký số của các tài nguyên ứng dụng khác nhau (hình ảnh, v.v.).


.ipa

Quay trở lại Xcode, sau khi tạo Lưu trữ, nút Distribute App sẽ có sẵn cho bạn. Ở giai đoạn này, .xcarchive chuyển thành .ipa .


Tệp .ipa có thể được coi là một gói nén bao gồm thư mục "Tải trọng". Bên trong thư mục "Tải trọng" này là gói "YourApp.app" thiết yếu. Trong gói ".app", bạn sẽ tìm thấy tất cả các thành phần quan trọng của ứng dụng, bao gồm các tài nguyên như


  • hình ảnh;
  • tập tin plist;
  • tập tin ngòi nén;
  • tập tin thực thi ;


Ngoài ra, nó còn chứa các tài nguyên ký mã để đảm bảo tính toàn vẹn và bảo mật của ứng dụng.


Để xem bên trong .ipa của bạn, hãy nhấp vào Export sau khi phân phối, chuyển đổi loại từ .ipa sang .zip và chỉ cần giải nén.


Tóm lại, tệp .ipa là ứng dụng đóng gói mà người dùng cuối cài đặt trên thiết bị iOS của họ, trong khi .xcarchive là kho lưu trữ tập trung vào nhà phát triển chứa nhiều nội dung và thông tin xây dựng cho ứng dụng.


.ipa được sử dụng để phân phối, trong khi .xcarchive được sử dụng cho mục đích gỡ lỗi, lưu trữ và phát triển thêm. Mặt khác, tệp thực thi là mã trung tâm thực hiện các chức năng của ứng dụng và được chứa trong gói .ipa .


Như vậy, những hạn chế của AppStore có thể được minh họa như sau.

phiên bản của hệ điều hành

kích thước .ipa

.ipa -> Tải trọng -> Ứng dụng -> kích thước exe

iOS 9.0 trở lêntvOS 9.0 trở lên

4 GB

500 MB

iOS 7.X đến iOS 8.X

2 GB

60MB


Tuy nhiên, để ước tính kích thước ứng dụng cuối cùng của bạn, tức là số byte mà một người dùng cụ thể sẽ phải cài đặt trên thiết bị của họ, bạn sẽ cần các hành động bổ sung, cụ thể là tạo báo cáo kích thước ứng dụng. Tài liệu mô tả quy trình để tạo nó tốt, vì vậy tôi sẽ để lại một liên kết đây.


Lý do tiếp theo để nghĩ về kích thước ứng dụng của bạn là… lại là AppStore, nhưng bây giờ, chúng ta không nói về các hạn chế của hệ thống mà là về tốc độ tải xuống . Mọi thứ đều rõ ràng ở đây - kích thước càng nhỏ thì tỷ lệ càng cao.


Hơn nữa, có giới hạn 200 MB, đạt đến mức người dùng cần kết nối với mạng Wi-Fi để cài đặt ứng dụng. Sự chậm trễ có thể làm nản lòng người dùng và dẫn đến tỷ lệ bỏ qua cao hơn.


Các thuật toán tìm kiếm và khám phá App Store của Apple thường ưu tiên các ứng dụng nhỏ hơn vì chúng dễ dàng hơn cho người dùng tải xuống và dùng thử. Kích thước ứng dụng nhỏ hơn có thể cải thiện khả năng hiển thị của ứng dụng của bạn trong kết quả tìm kiếm và đề xuất.


Khi ứng dụng có trên thiết bị, kích thước của nó vẫn còn quan trọng. Các ứng dụng nhỏ hơn khởi chạy nhanh hơn, mang lại trải nghiệm người dùng tốt hơn. Khi một ứng dụng tối ưu hóa bộ nhớ, nó sẽ góp phần kéo dài thời lượng pin, giảm dấu chân ứng dụng và cải thiện tình trạng thiết bị. Kết quả là, càng có nhiều người hài lòng với iPhone thì bạn càng có nhiều người dùng tiềm năng.

Các giải pháp

Có một số mẹo đơn giản để tránh tăng kích thước ứng dụng của bạn một cách không cần thiết trong quá trình phát triển. Đầu tiên trong số đó là làm việc có ý thức với hình ảnh.

Hình ảnh

Đầu tiên, chọn HEIC thay vì JPEG. HEIC cung cấp các tệp nhỏ hơn 50% so với JPEG, trong khi vẫn duy trì chất lượng hình ảnh tương tự. Điều này dẫn đến giảm dung lượng lưu trữ trên thiết bị của bạn. Các tệp nhỏ hơn sẽ dễ dàng truyền tệp qua mạng hơn cũng như tải và lưu vào đĩa nhanh hơn.


HEIC hỗ trợ độ trong suốt của hình ảnh và khả năng lưu trữ các hình ảnh bổ sung chứa thông tin về độ sâu và độ chênh lệch. Nó hỗ trợ nén không mất dữ liệu và cho phép bạn lưu trữ nhiều hình ảnh trong một vùng chứa.



Thứ hai, hãy thử sử dụng SVG (định dạng hình ảnh vector dựa trên XML được sử dụng để hiển thị đồ họa vector hai chiều) thay vì PDF và PNG. Ngược lại với hình ảnh raster, đồ họa vector thường có kích thước tệp nhỏ hơn vì nó được đặc trưng bởi các phương trình toán học xác định hình dạng và đường cong, trái ngược với việc lưu trữ các pixel riêng lẻ.


Ban đầu, cần thêm 3 hình ảnh có tiền tố (cho mỗi mật độ pixel). Sau đó, hỗ trợ PNG đã được thêm vào (= hình ảnh vector với kích thước nhất định), nhưng nó vẫn hoạt động ở mức “cắt 3 PNG khỏi PDF khi chúng tôi tập hợp dự án”.


Và chỉ sau đó, người ta mới có thể sử dụng SVG + bao gồm hộp kiểm “sử dụng ngày vectơ” trong danh mục nội dung, từ đó thực sự giảm kích thước của hình ảnh được sử dụng + thêm khả năng chia tỷ lệ vô hạn mà không làm giảm chất lượng.


Thứ ba, tận dụng tối đa khả năng của Danh mục tài sản . Danh mục nội dung cung cấp bộ lưu trữ dễ sử dụng cho nhiều độ phân giải của cùng một hình ảnh. Hơn nữa, danh mục lưu trữ tất cả nội dung hình ảnh ở một định dạng được tối ưu hóa duy nhất với siêu dữ liệu thay vì các tệp riêng lẻ.


Nó cho phép App Store chỉ cung cấp những nội dung cần thiết cho thiết bị cụ thể của họ. Điều này dẫn đến tốc độ tải xuống tăng lên và chúng tôi biết rằng người dùng không muốn chờ đợi.


Danh mục tài sản

Có thể đặt "theo yêu cầu" trên tài nguyên, nghĩa là tài nguyên sẽ chỉ được tải xuống thiết bị nếu cần thiết và sau một thời gian không sử dụng, tài nguyên sẽ bị xóa. liên kết


Đừng quên rằng bạn có một danh mục khổng lồ các hình ảnh “miễn phí” - Biểu tượng SF . Apple không ngừng nỗ lực tăng số lượng nhân vật, bổ sung khả năng tùy chỉnh màu sắc và thậm chí cả hình ảnh động.


Vì vậy, với hình ảnh và các tài nguyên đồ họa khác, mọi thứ dường như rõ ràng - chúng tôi sử dụng đúng định dạng và thêm danh mục thông qua Nội dung. Luôn có cơ hội không đưa các tài nguyên lớn vào bản lắp ráp cuối cùng mà chỉ cần tải lên từ Internet khi cần. Bây giờ, hãy nói về mã và cách sử dụng thư viện.

Quản lý khung

Hãy để tôi nhắc nhanh cho bạn về Liên kết. Có hai loại: tĩnh và động.


Tĩnh

Năng động

Khi liên kết xảy ra

thời gian xây dựng

Thời gian chạy

Nơi lưu trữ phụ thuộc

Trong tập tin thực thi cuối cùng

Trong các thư viện động riêng biệt

Cách chia sẻ các phần phụ thuộc

Tất cả các phiên bản của ứng dụng đều sử dụng cùng một bản sao

Mỗi phiên bản của ứng dụng có bản sao riêng

Cách xử lý các cập nhật cho phần phụ thuộc

Xây dựng lại ứng dụng

Cập nhật thư viện động


Theo chủ đề của bài viết này, việc lưu trữ phần phụ thuộc đặc biệt quan trọng đối với chúng tôi và liên kết động có vẻ như là mục yêu thích của chúng tôi.


Thư viện động không được liên kết tĩnh vào ứng dụng khách; chúng không trở thành một phần của tệp thực thi. Thay vào đó, các thư viện động có thể được tải (và liên kết) vào một ứng dụng khi ứng dụng được khởi chạy hoặc khi ứng dụng chạy. liên kết


Tóm lại, việc chọn thư viện động thay vì thư viện tĩnh sẽ dẫn đến kích thước tệp ứng dụng nhỏ hơn và mức sử dụng bộ nhớ ban đầu thấp hơn. Tuy nhiên, điều quan trọng vẫn là đạt được sự cân bằng và tránh sử dụng quá nhiều thư viện động vì điều này có thể tạo ra độ trễ hiệu suất trong quá trình khởi động ứng dụng.


Apple cũng khuyên bạn nên tạo cơ sở mã mô-đun ( SPM ) trong ứng dụng của mình, điều này có thể hữu ích khi chia sẻ mã với các mục tiêu khác, chẳng hạn như App Clipps.


Trình quản lý gói Swift cung cấp một cách hợp lý và nguyên bản để quản lý các phần phụ thuộc trong dự án Swift của bạn.

Tập tin dư thừa

Một trong những cách hiệu quả nhất để giảm kích thước ứng dụng của bạn là xóa tất cả các tệp không cần thiết. Ví dụ: các tệp bổ sung này có thể là Read.me hoặc hình ảnh còn sót lại. Trên thực tế, ngay từ đầu bài viết, khi chúng ta đã tìm ra .ipa là gì, chúng ta đã học cách tìm tất cả các tệp sẽ vào AppStore: .ipa -> .zip -> Ứng dụng -> hiển thị gói nội dung.


Tìm hiểu tất cả các tài nguyên mà bạn không cần và thoải mái xóa chúng khỏi ứng dụng của bạn.


Phần kết luận

Chỉ để kết luận điều này. Vẫn còn một số lý do quan trọng khiến chúng ta nên chú ý đến kích thước ứng dụng của mình:

  • Giới hạn của App Store;
  • Tốc độ tải xuống và khởi chạy;
  • Ảnh hưởng đến tuổi thọ pin của thiết bị;


Và có một số phương pháp để giảm kích thước ứng dụng:

  • Định dạng HEIC và SVG cho hình ảnh;
  • Danh mục tài sản;
  • Liên kết động;
  • Lọc các tập tin dư thừa;


Vì vậy, đừng quên nó trong quá trình phát triển thường lệ của bạn; trở nên thông minh hơn mỗi ngày 🙃