Optimizarea greutății aplicației sale iOS - Publicis Sapient Engineering - Engineering Done Right

- o aplicație care depășește 100 MB poate fi descărcată numai printr-o rețea WiFi (acesta este și cazul unei actualizări). Deci, un utilizator departe de casă, în rețeaua sa celulară, va trebui să aștepte pentru a găsi o rețea WiFi, cu riscul de a renunța la descărcarea aplicației;
- chiar și pe o rețea WiFi care ar putea fi puțin lentă, dacă descărcarea cântărește câteva sute de megas, utilizatorul va trebui să aștepte secunde (sau minute) lungi înainte de a se putea bucura de aplicația dvs. și, din nou, acesta este riscul de a pierde un potențial client/utilizator;
- cu o aplicație sub 100 MB, este încă interesant să căutați să-i optimizați greutatea cât mai mult posibil, deoarece utilizatorul își va consuma planul de date și poate fi în condiții foarte degradate (3G slab sau Edge) care vor crește în consecință cu cât timpul său de așteptare este mai mare;
- în cele din urmă, rețineți că iPhone-ul este încă disponibil în versiunea sa de 16 GB... la fel de mult să vă spun că utilizatorii săi vor fi foarte atenți la greutatea aplicațiilor instalate.
Prin urmare, vom vedea împreună ce soluții sunt disponibile pentru a oferi aplicației noastre un mic remediu de slăbire.
Disecați o .ipa
Primul lucru pentru a înțelege restul articolului, vom vedea împreună cum este defalcat fișierul nostru ipa, care conține întreaga aplicație.
Acest fișier nu este altceva decât o arhivă comprimată. Redenumiți-l în .zip și puteți dezarhiva tot conținutul acestuia. Apoi găsim acolo un anumit număr de foldere, dar unul ne interesează în mod special:/Payload. Aici se află inima aplicației dvs. Veți găsi un singur fișier: MonAppli.app.
Pentru a răsfoi conținutul acestuia, faceți clic dreapta> Afișare conținut pachet.
Veți găsi acolo fișiere .png, .plist, .strings, .nib, .otf ...
Primul reflex: sortați fișierele după mărime. Cel mai mare va fi cu siguranță Assets.car. Toate imaginile tale sunt în ea. Deci, aici avem un prim indicator: greutatea acestui fișier vă oferă, aproximativ, dimensiunea imaginilor dvs. și, din iOS 9, resurse statice.
Dacă doriți să vedeți conținutul său (care este echivalentul cu Assets.xcassets în proiectul dvs. Xcode), puteți decompila această arhivă folosind un mic instrument de linie de comandă numit cartool.
Sunt necesare unele manipulări:
- deschideți proiectul cartool în Xcode;
- compila;
- în folderul/Produse, obțineți fișierul cartool (faceți clic dreapta> Afișați în Finder);
- în Terminal, rulați: ./cartool /Payload/Assets.car
La rădăcina/Payload, veți găsi și imagini. Este despre:
- imagini din SDK-uri terțe;
- pictogramele aplicației;
- lansarea imaginilor (splash screens);
- jpg.
Pentru primele două, nu este prea mult de făcut și nu ar trebui să fie prea greu. Pentru imaginile de lansare, rețineți că acestea sunt formate mari (în special pentru @ 3x și iPad @ 2x), acestea pot depăși 2 sau chiar 3MB.
În cele din urmă, dacă aveți jpg în active, nu ar trebui: să le convertiți în png, așa cum recomandă Apple.
Încă la rădăcina/Payload, veți găsi și:
- fonturi;
- toate pințele (echivalentul xib);
- și alte fișiere, cum ar fi .strings, .plist etc.
Atât pentru ceea ce va cântări cel mai mult în greutatea aplicației dvs. Orice altceva este format din cod, cadre, SDK-uri terțe etc.
Ultimul punct: dacă aveți o țintă Watch, un folder/Watch cu un .app asociat este de asemenea prezent și arată ca .app al aplicației iPhone/iPad (aceeași structură).
Optimizați greutatea imaginilor
Dacă trebuie să reduceți greutatea aplicației dvs., primul pas esențial este optimizarea greutății imaginilor. Rețineți că un png exportat din Photoshop este, în general, foarte greu și poate fi optimizat foarte larg.
Nu vorbim aici despre pierderea calității sau compresie, așa cum putem face cu jpg, deoarece png este un format necomprimat. Nu, nimic din toate acestea, dar totuși o optimizare este posibilă datorită instrumentelor mici. Există tot felul de ele pe web, luați de exemplu png minuscule. O simplă drag & drop a unui png pe casă vă va arăta câștigul semnificativ pe care îl poate aduce acest instrument: în medie, am văzut o reducere cu 60% a greutății png-urilor. Înmulțiți-l cu toate versiunile retina/iPhone/iPad și ar trebui să vă micșorați aplicația cu mai mulți megabyți. Rețineți că editorul acestui instrument oferă, de asemenea, un plugin Photoshop și un API plătit, o modalitate bună de a automatiza acest proces de optimizare.