Оптимизиране на тежестта на приложението му за iOS - Publicis Sapient Engineering - Engineering Done Right

- приложение, което надвишава 100MB, може да бъде изтеглено само чрез WiFi мрежа (това важи и за актуализация). Така потребител далеч от дома, в своята клетъчна мрежа, ще трябва да изчака да намери WiFi мрежа, с риск да се откаже от изтеглянето на приложението;
- дори и в WiFi мрежа, която може да е малко бавна, ако изтеглянето тежи няколкостотин мегага, потребителят ще трябва да изчака дълги секунди (или минути), преди да може да се наслаждава на вашето приложение и отново това е риск от загуба на потенциален клиент/потребител;
- с приложение под 100MB, все още е интересно да се стремим да оптимизираме теглото му възможно най-много, защото потребителят ще използва своя план за данни и може да бъде в много влошени условия (слаб 3G или Edge), което съответно ще се увеличи, колкото по-дълго е времето за изчакване;
- накрая, имайте предвид това iPhone все още се предлага в своята 16GB версия... колкото да ви кажа, че потребителите му ще бъдат много внимателни относно теглото на инсталираните приложения.
Следователно ще видим заедно какви решения са достъпни за нас, за да дадем на нашето приложение малко средство за отслабване.
Дисектирайте .ipa
Първото нещо, за да разберем останалата част от статията, ще видим заедно как е разбит нашият ipa файл, който съдържа цялото приложение.
Този файл не е нищо повече от компресиран архив. Преименувайте го на .zip и можете да разархивирате цялото му съдържание. След това намираме определен брой папки там, но една особено ни интересува:/Полезен товар. Това е сърцето на вашето заявление. Ще намерите само един файл: MonAppli.app.
За да прегледате съдържанието му, щракнете с десния бутон на мишката> Покажи съдържанието на пакета.
Там ще намерите .png, .plist, .strings, .nib, .otf файлове ...
Първи рефлекс: сортиране на файлове по размер. Най-големият със сигурност ще бъде Assets.car. Всички ваши изображения са в него. И така, тук имаме първи индикатор: теглото на този файл ви дава приблизително размера на вашите изображения и, от iOS 9, статични ресурси.
Ако искате да видите съдържанието му (което е еквивалентно на Assets.xcassets във вашия Xcode проект), можете да декомпилирате този архив с помощта на малък инструмент за команден ред, наречен cartool.
Необходими са някои манипулации:
- отворете проекта на cartool в Xcode;
- компилиране;
- в папката/Products вземете файла на cartool (щракнете с десния бутон> Покажи във Finder);
- в Терминал, изпълнете: ./cartool /Payload/Assets.car
В основата на/Payload ще намерите и изображения. Това е за:
- изображения от SDK на трети страни;
- икони на приложения;
- стартиране на изображения (начални екрани);
- jpg.
За първите две не трябва да се прави много и не трябва да е прекалено тежко. За стартиране на изображения, имайте предвид, че това са големи формати (особено за @ 3x и iPad @ 2x), те могат да надвишават 2 или дори 3MB.
И накрая, ако имате jpg във активите си, не бива: конвертирайте ги в png, както препоръчва Apple.
Все още в основата на/Payload, ще намерите също:
- шрифтове;
- всички петна (xib еквивалент);
- и други файлове, като .strings, .plist и др.
Толкова за това, което ще тежи най-много в теглото на вашето приложение. Всичко останало се състои от код, рамки, SDK на трети страни и т.н.
Последна точка: ако имате цел за гледане, папка/Watch със свързана .app също присъства и изглежда като .app на приложението за iPhone/iPad (същата структура).
Оптимизирайте теглото на изображенията
Ако трябва да намалите теглото на приложението си, първата важна стъпка е да оптимизирате теглото на изображенията. Имайте предвид, че png, експортиран от Photoshop, обикновено е много тежък и може да бъде оптимизиран много широко.
Тук не говорим за загуба на качество или компресия, както можем да направим с jpg, защото png е некомпресиран формат. Не, нищо от това, но въпреки това е възможна оптимизация благодарение на малки инструменти. В мрежата има всякакви такива, вземете например малък png. Едно просто плъзгане и пускане на png в дома ще ви покаже значителната печалба, която този инструмент може да донесе: средно сме наблюдавали 60% намаляване на теглото на png. Умножете това по всички версии на ретината/iPhone/iPad и трябва да намалите приложението си с няколко мега. Имайте предвид, че редакторът на този инструмент също предлага плъгин Photoshop и платен API, добър начин за автоматизиране на този процес на оптимизация.