Reduceți dimensiunea metodelor verificate ale aplicației

Unul dintre aspectele importante ale dezvoltării aplicațiilor mobile este optimizarea dimensiunii. Cu toții știm din experiența personală că cu cât aplicația cântărește mai puțin, cu atât mai mult este descărcată, mai ales dacă nu există un punct de acces Wi-Fi și viteza și / sau traficul pe Internet mobil lasă mult de dorit. În plus, nu trebuie să uităm că unele piețe au limitat dimensiunea aplicației lansate. De exemplu, în App Store, pot fi disponibile produse de până la 100 MB pentru descărcare pe Internet mobil, în cazul în care greutatea aplicației depășește acest prag, poate fi descărcată numai prin Wi-Fi. Pe piața Play, o aplicație care atrage mai mult de 100 MB nu poate fi descărcată în principiu. În acest articol, descriem ce metode și trucuri dezvoltatorilor noștri de aplicații native pe care i-am recurs la iOS pentru a reduce greutatea produsului și adăugați la acesta câteva sfaturi practice găsite în rețea.







Reduceți dimensiunea metodelor verificate ale aplicației

Principalele modalități de a reduce dimensiunea aplicației

Conținut grafic

Acum designul joacă un rol-cheie în orice aplicație bună. Dacă interfața este minimă sau produsul are un set mic de funcții, atunci acest pas poate fi omis. Dacă proiectul este bogat în funcționalitate sau acceptă un anumit număr de scheme de culori, atunci nu este suficient să faceți acest lucru fără un număr mare de imagini, cu toate consecințele care rezultă din greutate. În plus, adesea în proiecte, în mod prestabilit, se adaugă seturi de imagini pentru diferiți factori de formă ai dispozitivelor mobile, cum ar fi @ 1x, @ 2x, @ 3x pentru aplicațiile iOS. Mai jos vom da metodele care au fost utilizate în aplicațiile lor pentru a rezolva problema cu o abundență de conținut grafic. Poate că unii dintre ei se aplică pe tine însuți.

Una dintre cele mai simple moduri este de a utiliza doar 3x imagini în loc de trei scale. Această metodă nu poate fi numită optimă, deoarece pe dispozitive orientate pentru scalele 1x și 2x, aceste imagini nu vor fi întotdeauna acceptabile. Cu toate acestea, în absența unei tehnici mai bune, este posibil să se diminueze dimensiunea proiectului cu o cantitate imensă de grafică.

O altă modalitate este de a adăuga imagini vectoriale în locul imaginilor bitmap. Pe iOS, am exportat imagini în format PDF. Adesea, un astfel de fișier cântărește mai puțin, dar nu funcționează cu toate imaginile. Prinde aici este faptul că în grafică vectorială ar putea fi incorect să afișați unele măști de imagine, făcându-le complet negru sau distorsionează culori.

Acum, luați în considerare un exemplu cu o aplicație care are mai multe scheme de culori (în cazul oamenilor obișnuiți "piele"). Cele mai multe scheme de culori din aplicație, cu atât crește numărul de imagini necesare. Dacă imaginea utilizează mai mult de o culoare, atunci trebuie să păstrați mai multe opțiuni pentru fiecare piele. Cu toate acestea, în cazul în care imaginea este monotonă, poate fi făcută un șablon, iar în codul însuși puteți schimba culoarea nuanței. Pe iOS, puteți crea un șablon similar în două moduri:







  1. setați Imaginea șablonului în XCode (vezi Figura 1);
  2. setați modul șablon programat

Fig.1. Setarea modului imagine șablon în XCode.

Înlocuirea imaginilor animate

Adăugarea unei animații este un lucru obișnuit în aplicații. Acesta atrage atenția utilizatorului asupra obiectelor necesare ale interfeței și o face mai puțin statică, oferind o experiență mai plăcută de interacțiune. Unele animații simple, cum ar fi mutarea unui obiect dintr-o parte a ecranului în altul sau apariția unei ferestre noi din partea de jos, se pot face programat. Altele, mai complexe, necesită desenarea fiecărui cadru al animației. Când am întâlnit prima dată adăugarea unei imagini de animație în timpul dezvoltării, am folosit una dintre cele mai comune metode de implementare a acesteia, și anume animația printr-o serie de imagini. Arăta astfel:

Prima metodă încarcă datele gif, stocate ca date, iar cea de-a doua metodă o ia direct de la referința resurselor, de exemplu, din pachetul aplicației. Fișierul gif în sine poate fi realizat din aceleași cadre pe un anumit serviciu pentru a crea astfel de fișiere, unde este specificat numărul de cadre pe secundă, compresie și rezoluție. Parametrii stabiliți corect vor da un hifos de greutate acceptabilă la ieșire. Acum rămâne doar să o adăugați la Bundle și să utilizați una dintre metodele menționate mai sus.

Cu toate acestea, fișierul gif ocupă și spațiu, așa că am încercat să executăm toate programele animate. În Audio Editor Tool, animația aspectului logo-ului AUDIO EDITOR este redată pe ecranul de pornire. Anterior, această animație a fost realizată cu ajutorul unui hifa, dar datorită rezoluției mari a imaginii a cântărit foarte mult. Așa că am decis să o implementăm cu CABasicAnimation.

Pentru ca emblema să apară în cutia poștală ca o gifke, am folosit o mască de gradient, care a deplasat în timp poziția inițială a transparenței. În primul rând, am creat un strat de gradient, care are o culoare transparentă încă de la început. Apoi am setat gradientul ca o mască pentru stratul de text al logo-ului, făcându-l transparent. Următorul pas a fost crearea unui grup de animație, în care au fost adăugate două animații. Primul a deplasat poziția inițială a gradientului, iar al doilea - ultima, făcându-l opac. Rețineți o nuanță: un pas important a fost să specificați o valoare negativă în proprietatea removeOnCompletion, în caz contrar, animația va fi eliminată când este finalizată și stratul va reveni la valoarea inițială.

Conversia audio

În aplicațiile noastre, sunt adesea folosite fișiere audio de format WAV. Datorită structurii sale, acest format ocupă o mulțime de spațiu în proiect. Din acest motiv, sa hotărât înlocuirea completă a tuturor fișierelor din acest format cu un M4A mai ușor în pachet, iar apoi, în aplicația în sine, conversia acestora în WAV. De ce nu folosiți doar M4A? Deoarece atunci când fișierul este reprodus ciclic în acest format, există o întârziere la începutul fiecărui ciclu, ca și cum ar exista un fel de goliciune. Ultimul pas este salvarea fișierului deja convertit în directorul de aplicații după prima pornire.

În această metodă, fișierul este preluat din pachet prin url și stocat în directorul convertitUrl. Fișierul citit este încărcat în memoria tampon și este deja înregistrat de acolo la unul nou cu setările de înregistrare necesare. Astfel, utilizăm un WAV mai stabil și mai greu după primul start, dar dimensiunea aplicației este redusă semnificativ în timpul fazei de descărcare și instalare.

Încărcarea fișierelor de pe server

Încărcarea fișierelor de pe server este ceea ce aveți nevoie pentru aplicații cu un conținut semnificativ de conținut. Un număr mare de presetări de muzică, seturi de imagini și multe altele, care mărește considerabil dimensiunea aplicației, puteți descărca mai târziu. Desigur, descărcarea fiecărui fișier individual ar necesita o mulțime de timp și trafic, astfel că arhiva este încărcată de pe server cu toate cele necesare și deja în aplicație acestea sunt despachetate și stocate în directorul aplicației. Pentru dezarhivarea bibliotecii se utilizează SSZipArchive (depozitul de biblioteci pe care îl veți găsi pe link). Această bibliotecă este capabilă să arhiveze atât fișiere, cât și să despacheteze arhivele. Dar suntem interesați doar de o metodă din clasa principală a bibliotecii:

Această metodă decomprimă fișierul din calea calea către calea de destinație, atâta timp cât este despachetat în progressHandler poate efectua orice acțiune (de exemplu, afișarea progresului despachetare), după care completionHandler arată că extracția finalizat cu succes, sau o eroare de ieșire în caz de eșec.

concluzie

În cele din urmă, judecând după aplicația Mix Wave, care cântărește înainte de instalare







Articole similare

Trimiteți-le prietenilor: