App Size Optimization în dezvoltarea aplicațiilor mobile: baze, metode și practici

Autor: IT Sectr Publicat: 2026-04-01 Timp de citire: 8 min

App Size Optimization — ansamblul de tehnici menite să reducă dimensiunea fișierului de instalare (APK, AAB, IPA) fără a pierde funcționalitatea. Potrivit Android Reduce APK Size Guide, fiecare megabyte de reducere poate crește conversia instalărilor cu 1–2% în regiunile cu internet lent. App Thinning — tehnologia cheie Apple care livrează doar resursele necesare unui anumit dispozitiv.

Principalele puncte

  • App Size Optimization — reducerea fișierului de instalare pentru creșterea conversiei și vitezei de încărcare
  • Creșterea conversiei — fiecare 1 MB de reducere crește probabilitatea instalării cu 1–2%
  • App Thinning — tehnologia Apple cu On-Demand Resources și Slicing pentru reducerea instalării
  • ProGuard și R8 — instrumente de ofuscare și minificare a codului pentru Android
  • Optimizarea resurselor — eliminarea activelor neutilizate, comprimarea imaginilor și fonturilor

Ce este App Size Optimization

App Size Optimization — disciplina de dezvoltare a aplicațiilor mobile care vizează minimizarea dimensiunii pachetului de instalare a aplicației. Include eliminarea codului și resurselor moarte, comprimarea imaginilor, optimizarea bibliotecilor, fragmentarea compilării pentru diferite arhitecturi și utilizarea tehnologiilor de livrare la cerere.

Dimensiunea aplicației influențează inegal diferite segmente de utilizatori. În regiunile cu infrastructură mobilă dezvoltată (SUA, Europa, Japonia), diferența între 50 și 100 MB poate fi imperceptibilă. În regiunile în curs de dezvoltare (India, Indonezia, Brazilia), fiecare megabyte suplimentar reduce conversia instalărilor din cauza limitelor tarifelor și vitezei internetului mobil. Google Play limitează dimensiunea APK la 200 MB, dar recomandă menținerea dimensiunii sub 100 MB.

Pentru iOS App Store, dimensiunea maximă de descărcare prin rețeaua celulară este de 200 MB (până în 2023 era 150 MB). Dacă IPA depășește această limită, utilizatorul poate instala aplicația doar prin Wi-Fi. Apple suportă, de asemenea, App Thinning, care include Slicing, Bitcode și On-Demand Resources — tehnologii care reduc automat dimensiunea instalării pe un dispozitiv specific fără implicarea dezvoltatorului.

De ce dimensiunea aplicației este critică

Dimensiunea aplicației influențează nu doar conversia instalărilor, ci și retenția, frecvența actualizărilor și viteza primei lansări. Fiecare megabyte suplimentar reprezintă o barieră între utilizator și utilizarea produsului tău.

Impactul asupra conversiei instalărilor

Conform datelor Google I/O 2024, reducerea APK cu 10 MB crește conversia instalărilor în medie cu 3,5%. Pentru aplicațiile de 150+ MB, conversia poate fi cu 20–30% mai mică decât pentru aplicațiile aceleiași clase de 50 MB. Efectul este deosebit de pronunțat în Google Play, unde utilizatorul vede dimensiunea înainte de instalare. În App Store, dimensiunea este afișată pe pagina aplicației, iar utilizatorii cu tarif limitat amână instalarea până la Wi-Fi, după care deseori uită de aplicație.

Frecvența actualizărilor și actualizarea prin aer

O aplicație mare se actualizează mai rar prin aer — utilizatorii amână descărcarea patch-urilor până la Wi-Fi, ratând corecțiile critice de securitate. Google Play permite utilizarea Incremental Updates (patch-uri de până la 10 MB), dar reinstalarea completă descarcă totuși întregul APK sau AAB. Apple App Store utilizează Delta Updates, transmițând doar fișierele modificate, dar chiar și delta poate fi semnificativă la modificarea resurselor.

Prima lansare și despachetarea

Dimensiunea influențează direct timpul primei lansări: aplicația trebuie să despacheteze resursele, să compileze codul (Android) sau să semneze cache-ul (iOS). O aplicație de 200 MB poate porni cu 10–15 secunde mai lent decât o aplicație de 50 MB pe un dispozitiv mediu. Acest lucru înrăutățește Onboarding Experience — utilizatorul poate închide aplicația fără a aștepta încărcarea.

DimensiuneTimp de descărcare (3G)Timp prima lansare
30 MB–20 sec3–5 sec
100 MB–70 sec5–8 sec
200 MB–140 sec10–15 sec

Optimizarea resurselor și activelor

Resursele — imagini, fonturi, sunete, video — constituie 60–80% din dimensiunea unei aplicații mobile tipice. Optimizarea resurselor oferă cel mai mare câștig cu un efort minim. Direcțiile principale: comprimarea, eliminarea duplicatelor și activelor neutilizate, alegerea formatelor corecte.

Optimizarea imaginilor

WebP — formatul de imagini de la Google, care asigură o compresie cu 25–35% mai bună decât PNG și cu 15–20% mai bună decât JPEG la aceeași calitate vizuală. Android suportă WebP nativ de la API 18. Pentru iOS, WebP este suportat prin biblioteca SDWebImage sau Kingfisher, iar din iOS 17 a apărut suportul nativ. AVIF — un format mai modern, care oferă o economie suplimentară de 10–15% față de WebP, dar cu decodificare mai lentă.

Eliminarea resurselor neutilizate — cel mai simplu mod de a reduce dimensiunea. În Android, folosiți refactorizarea cu Android Studio: Analyze → Run Inspection → Unused Resources. În iOS — Build Settings → Remove Unused Resources. Adesea în proiecte rămân sprite-uri din versiunile anterioare, icoane vechi, imagini de ecran de pornire neutilizate care umflă dimensiunea fără nicio sarcină funcțională.

FormatCompresie față de PNGSuport
PNGToate platformele
WebP25–35%Android nativ, iOS prin biblioteci
AVIF35–45%Android 12+, iOS 17+
JPEG XR30–40%Doar Windows

Optimizarea fonturilor și sunetelor

Fonturile personalizate pot ocupa 5–15 MB, mai ales dacă este conectată întreaga familie (toate stilurile: Regular, Bold, Italic, BoldItalic). Utilizați doar stilurile necesare și subseturile de caractere prin subsetting — eliminarea glifelor pentru limbile care nu sunt suportate de aplicație. Servicii precum Google Fonts și Transfonter permit crearea unui set minim de caractere. Pentru sunete, utilizați AAC/HE-AAC în loc de WAV și formate necomprimate — economie de până la 90% fără pierdere de calitate.

Optimizarea codului și bibliotecilor

Codul reprezintă 20–40% din dimensiunea aplicației, dar optimizarea sa este mai dificilă decât a resurselor, deoarece necesită analiza dependențelor, ofuscarea și eliminarea codului mort fără riscul de a strica funcționalitatea.

ProGuard și R8 pentru Android

ProGuard — instrument pentru Android care efectuează ofuscarea, minificarea și optimizarea codului. R8 — succesorul său, încorporat în Android Gradle Plugin, funcționează mai rapid și mai eficient. R8 elimină clasele și metodele neutilizate, scurtează numele variabilelor și rescrie codul pentru a reduce numărul de instrucțiuni. Reducerea tipică a dimensiunii fișierelor DEX cu R8 este de 30–50%.

groovy
// build.gradle — configurarea R8 pentru minificare
android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile(
                'proguard-android-optimize.txt')
            shrinkResources true
        }
    }
}

Optimizarea bibliotecilor și dependențelor

Bibliotecile — o cauză frecventă a dimensiunii umflate. O singură bibliotecă poate trage dependențe tranzitive care măresc dimensiunea cu 5–20 MB fără un beneficiu direct pentru aplicație. Utilizați Gradle Version Catalog pentru Android și Swift Package Manager pentru iOS cu specificarea explicită a dependențelor. Analizați dimensiunea cu Build Analyzer în Android Studio sau Xcode Build Timeline. Înlocuiți bibliotecile grele cu alternative mai ușoare: de exemplu, OkHttp (3 MB) în loc de Apache HTTP (15 MB).

Eliminarea codului neutilizat în iOS

Dead Code Stripping — eliminarea automată a metodelor și claselor neutilizate în etapa de linkare în Xcode. Se activează prin Build Settings → Dead Code Stripping = YES. Bitcode — reprezentare intermediară pe care Apple o poate recompila pentru diferite arhitecturi, eliminând funcțiile neutilizate. Totuși, din Xcode 14, Bitcode a devenit opțional, iar contribuția sa la reducerea dimensiunii este de 5–15% pentru proiectele Objective-C și mai puțin pentru Swift.

App Thinning și livrarea la cerere

App Thinning — tehnologia Apple care reduce automat dimensiunea aplicației instalate prin livrarea doar a resurselor necesare unui anumit dispozitiv. Constă din trei componente: Slicing, On-Demand Resources și Bitcode. În Android, analogul este Android App Bundle (AAB) cu Dynamic Delivery.

Android App Bundle (AAB)

AAB — formatul de publicare în Google Play, în care magazinul generează APK pentru fiecare dispozitiv separat, incluzând doar resursele pentru arhitectura sa (armeabi-v7a, arm64-v8a), densitatea ecranului (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi) și limbi. Reducerea tipică a dimensiunii instalării la trecerea de la APK universal la AAB este de 20–40%. Play Feature Delivery permite descărcarea modulelor la cerere, iar modulele Install-time sunt incluse în instalarea de bază.

groovy
// build.gradle — configurarea AAB și Dynamic Features
android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}

On-Demand Resources în iOS

On-Demand Resources (ODR) — mecanism iOS prin care resursele (niveluri de joc, imagini de înaltă rezoluție, video) sunt descărcate de pe serverele Apple doar atunci când sunt cu adevărat necesare utilizatorului. Dimensiunea instalării inițiale poate fi redusă cu 50–80%. Resursele se împart în trei categorii: Initial Install Tags (descărcate la instalare), Prefetched Tag Order (descărcate în fundal după instalare) și On-Demand (descărcate doar la cerere). Apple recomandă utilizarea ODR pentru conținutul care nu este necesar pe primul ecran: niveluri de joc, conținut suplimentar, instrucțiuni video.

SwiftUI suportă ODR prin atributul Bundle.module, iar UIKit prin NSBundleResourceRequest. Pentru jocurile pe Unity și Unreal Engine, ODR este integrat la nivelul învelișului nativ. Principala limitare — resursele ODR sunt eliminate de sistem la lipsa de spațiu, prin urmare datele critice pentru funcționare trebuie incluse în compilarea principală.

Întrebări frecvente

Care este dimensiunea optimă a unei aplicații mobile?

Sub 50 MB — dimensiunea ideală pentru conversia maximă a instalărilor. 50–100 MB — acceptabil pentru majoritatea aplicațiilor. Peste 100 MB — necesită justificare prin dimensiune (jocuri, hărți offline, editoare de conținut).

Ce este mai avantajos de optimizat — codul sau resursele?

Resursele oferă un câștig mai mare în mai puțin timp. Începeți cu eliminarea activelor neutilizate, conversia PNG în WebP și comprimarea sunetelor. Apoi treceți la optimizarea codului prin R8 sau Dead Code Stripping.

Cum reduce AAB dimensiunea APK?

Google Play generează APK doar pentru dispozitivul specific: cod arm64-v8a, resurse xhdpi, limba necesară. APK universal conține toate variantele simultan, ceea ce mărește dimensiunea de 1,5–2 ori. AAB rezolvă această problemă la nivelul magazinului.

Dimensiunea influențează viteza de funcționare a aplicației?

Indirect. O dimensiune mare înseamnă mai mult cod pentru compilarea JIT/AOT, mai multe resurse de încărcat în memorie și mai mult timp pentru parsarea manifestelor. Cu toate acestea, impactul direct asupra performanței în timpul execuției este minim — dimensiunea afectează instalarea și prima lansare.

Ce sunt modulele Install-time vs On-Demand?

Install-time — parte a instalării de bază, disponibilă imediat. On-Demand — se descarcă la prima solicitare, nu face parte din instalarea inițială. Utilizați On-Demand pentru funcțiile de care au nevoie mai puțin de 20% dintre utilizatori: diagnosticare, tutoriale, filtre AR.

Rezumat

  • App Size Optimization — reducerea dimensiunii aplicației pentru creșterea conversiei și vitezei de încărcare
  • Resursele constituie 60–80% din dimensiune — optimizarea lor oferă cel mai mare câștig
  • WebP și AVIF — formate de compresie a imaginilor cu economie de 25–45% față de PNG
  • R8 pentru Android reduce DEX cu 30–50% prin minificarea codului
  • App Thinning (iOS) și AAB (Android) livrează doar resursele necesare
  • On-Demand Resources permit descărcarea conținutului după instalare
  • Dimensiunea țintă pentru conversie maximă — sub 50 MB

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și