Mobil tətbiq inkişafında App Size Optimization: əsaslar, metodlar və təcrübələr

Müəllif: IT Sectr Dərc olunub: 2026-04-01 Oxuma vaxtı: 8 dəq

App Size Optimization — funksionallığı itirmədən quraşdırma faylının (APK, AAB, IPA) ölçüsünü azaltmağa yönəlmiş texnikalar məcmusudur. Android Reduce APK Size Guide-a görə, hər bir megabayt ölçü azalması yavaş interneti olan regionlarda quraşdırma konversiyasını 1–2% artıra bilər. App Thinning — Apple-ın yalnız müəyyən cihaza lazım olan resursları çatdıran əsas texnologiyası.

Əsas məqamlar

  • App Size Optimization — konversiya və yükləmə sürətini artırmaq üçün quraşdırma faylının ölçüsünün azaldılması
  • Konversiyanın artırılması — hər 1 MB azalma quraşdırma ehtimalını 1–2% artırır
  • App Thinning — quraşdırmanı azaltmaq üçün On-Demand Resources və Slicing ilə Apple texnologiyası
  • ProGuard və R8 — Android üçün kod obfuskasiyası və minifikasiya alətləri
  • Resursların optimallaşdırılması — istifadə olunmayan aktivlərin silinməsi, şəkil və şriftlərin sıxışdırılması

App Size Optimization nədir

App Size Optimization — tətbiqin quraşdırma paketinin ölçüsünü minimuma endirməyə yönəlmiş mobil tətbiq inkişafı fənnidir. Ölü kodun və resursların silinməsi, şəkillərin sıxışdırılması, kitabxanaların optimallaşdırılması, müxtəlif arxitekturalar üçün kompilyasiyanın fraqmentləşdirilməsi və tələb üzrə çatdırılma texnologiyalarından istifadə daxildir.

Tətbiq ölçüsü qeyri-bərabər təsir edir müxtəlif istifadəçi seqmentlərinə. İnkişaf etmiş mobil infrastrukturu olan regionlarda (ABŞ, Avropa, Yaponiya) 50 və 100 MB arasındakı fərq hiss olunmaz ola bilər. İnkişaf etməkdə olan regionlarda (Hindistan, İndoneziya, Braziliya) hər əlavə meqabayt tarif limitləri və mobil internet sürəti səbəbindən quraşdırma konversiyasını azaldır. Google Play APK ölçüsünü 200 MB ilə məhdudlaşdırır, lakin ölçünü 100 MB-dan aşağı saxlamağı tövsiyə edir.

iOS App Store üçün mobil şəbəkə ilə yükləmənin maksimum ölçüsü 200 MB-dır (2023-cü ilə qədər 150 MB idi). IPA bu həddi keçərsə, istifadəçi tətbiqi yalnız Wi-Fi vasitəsilə quraşdıra bilər. Apple həmçinin App Thinning-i dəstəkləyir ki, bura Slicing, Bitcode və On-Demand Resources daxildir — proqramçının iştirakı olmadan müəyyən cihazda quraşdırma ölçüsünü avtomatik azaldan texnologiyalar.

Tətbiq ölçüsü niyə vacibdir

Tətbiq ölçüsü təkcə quraşdırma konversiyasına deyil, həm də retention-ə, yeniləmə tezliyinə və ilk işə salınma sürətinə təsir edir. Hər əlavə meqabayt istifadəçi ilə məhsulunuz arasında maneədir.

Quraşdırma konversiyasına təsir

Google I/O 2024 məlumatlarına görə, APK-nın 10 MB azaldılması quraşdırma konversiyasını orta hesabla 3,5% artırır. 150+ MB ölçüsündə tətbiqlər üçün konversiya 50 MB ölçüsündə eyni sinif tətbiqlərlə müqayisədə 20–30% aşağı ola bilər. Effekt xüsusilə Google Play-də nəzərə çarpır, burada istifadəçi quraşdırmadan əvvəl ölçünü görür. App Store-da ölçü tətbiq səhifəsində göstərilir və məhdud tarifi olan istifadəçilər quraşdırmanı təxirə salır Wi-Fi-ya qədər, sonra isə çox vaxt tətbiqi unudurlar.

Yeniləmə tezliyi və hava ilə yeniləmə

Böyük tətbiq hava ilə daha az yenilənir — istifadəçilər yamaların yüklənməsini Wi-Fi-ya qədər təxirə salır, kritik təhlükəsizlik düzəlişlərini qaçırırlar. Google Play Incremental Updates-dən (10 MB-a qədər yamalar) istifadə etməyə imkan verir, lakin tam yenidənqurma yenə də bütün APK və ya AAB-ni yükləyir. Apple App Store Delta Updates istifadə edir, yalnız dəyişdirilmiş faylları ötürür, lakin hətta delta resurslar dəyişdikdə əhəmiyyətli ola bilər.

İlk işə salınma və açma

Ölçü birbaşa ilk işə salınma vaxtına təsir edir: tətbiq resursları açmalı, kodu kompilyasiya etməli (Android) və ya keşi imzalamalıdır (iOS). 200 MB ölçüsündə tətbiq orta cihazda 50 MB ölçüsündə tətbiqdən 10–15 saniyə gec işə düşə bilər. Bu Onboarding Experience-i pisləşdirir — istifadəçi yüklənməni gözləmədən tətbiqi bağlaya bilər.

ÖlçüYükləmə vaxtı (3G)İlk işə salınma vaxtı
30 MB–20 san3–5 san
100 MB–70 san5–8 san
200 MB–140 san10–15 san

Resursların və aktivlərin optimallaşdırılması

Resurslar — şəkillər, şriftlər, səslər, video — tipik mobil tətbiqin ölçüsünün 60–80%-ni təşkil edir. Resursların optimallaşdırılması minimal əmək sərfi ilə ən böyük qazancı verir. Əsas istiqamətlər: sıxışdırma, dublikatların və istifadə olunmayan aktivlərin silinməsi, düzgün formatların seçilməsi.

Şəkillərin optimallaşdırılması

WebP — Google-dan şəkil formatı, eyni vizual keyfiyyətdə PNG-dən 25–35%, JPEG-dən isə 15–20% daha yaxşı sıxışdırma təmin edir. Android WebP-ni API 18-dən etibarən yerli olaraq dəstəkləyir. iOS üçün WebP SDWebImage və ya Kingfisher kitabxanası vasitəsilə dəstəklənir, iOS 17-dən isə yerli dəstək ortaya çıxdı. AVIF — daha müasir format, WebP-ə nisbətən əlavə 10–15% qənaət verir, lakin daha yavaş dekodlaşdırma ilə.

İstifadə olunmayan resursların silinməsi — ölçü azaltmağın ən sadə yoludur. Android-də Android Studio-da refaktorinqdən istifadə edin: Analyze → Run Inspection → Unused Resources. iOS-da — Build Settings → Remove Unused Resources. Çox vaxt layihələrdə əvvəlki versiyalardan qalan spritelar, köhnə ikonlar, istifadə olunmayan başlanğıc ekran şəkilləri qalır ki, bunlar şişirdir ölçünü heç bir funksional yük olmadan.

FormatPNG-yə nisbətən sıxışdırmaDəstək
PNGBütün platformalar
WebP25–35%Android yerli, iOS kitabxanalar vasitəsilə
AVIF35–45%Android 12+, iOS 17+
JPEG XR30–40%Yalnız Windows

Şriftlərin və səslərin optimallaşdırılması

Xüsusi şriftlər 5–15 MB yer tuta bilər, xüsusən də bütün dəst bağlanıbsa (bütün stillər: Regular, Bold, Italic, BoldItalic). Yalnız zəruri stillərdən və simvol alt çoxluqlarından subsetting vasitəsilə istifadə edin — tətbiq tərəfindən dəstəklənməyən dillər üçün gliflərin silinməsi. Google Fonts və Transfonter kimi xidmətlər minimal simvol dəsti yaratmağa imkan verir. Səslər üçün WAV və sıxışdırılmamış formatlar əvəzinə AAC/HE-AAC istifadə edin — keyfiyyət itkisi olmadan 90%-ə qədər qənaət.

Kod və kitabxanaların optimallaşdırılması

Kod tətbiq ölçüsünün 20–40%-ni təşkil edir, lakin onun optimallaşdırılması resurslardan daha çətindir, çünki asılılıqların təhlili, obfuskasiya və funksionallığı pozma riski olmadan ölü kodun silinməsini tələb edir.

Android üçün ProGuard və R8

ProGuard — Android üçün kod obfuskasiyası, minifikasiyası və optimallaşdırılmasını həyata keçirən alət. R8 — onun varisi, Android Gradle Plugin-in tərkibində, daha sürətli və səmərəli işləyir. R8 istifadə olunmayan sinifləri və metodları silir, dəyişən adlarını qısaldır və təlimatların sayını azaltmaq üçün kodu yenidən yazır. R8 ilə DEX fayllarının tipik ölçü azalması 30–50% təşkil edir.

groovy
// build.gradle — R8-nin minifikasiya üçün konfiqurasiyası
android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile(
                'proguard-android-optimize.txt')
            shrinkResources true
        }
    }
}

Kitabxanaların və asılılıqların optimallaşdırılması

Kitabxanalar — şişkin ölçünün ümumi səbəbi. Bir kitabxana tətbiq üçün birbaşa faydası olmadan ölçünü 5–20 MB artıran tranzitiv asılılıqlar çəkə bilər. Android üçün Gradle Version Catalog və iOS üçün Swift Package Manager istifadə edin, asılılıqları açıq şəkildə göstərin. Android Studio-da Build Analyzer və ya Xcode Build Timeline ilə ölçünü təhlil edin. Ağır kitabxanaları daha yüngül alternativlərlə əvəz edin: məsələn, OkHttp (3 MB) Apache HTTP (15 MB) əvəzinə.

iOS-da istifadə olunmayan kodun silinməsi

Dead Code Stripping — Xcode-da linkləmə mərhələsində istifadə olunmayan metodların və siniflərin avtomatik silinməsi. Build Settings → Dead Code Stripping = YES vasitəsilə aktivləşdirilir. Bitcode — Apple-ın müxtəlif arxitekturalar üçün yenidən kompilyasiya edə biləcəyi, istifadə olunmayan funksiyaları silən aralıq təsvir. Lakin Xcode 14-dən Bitcode isteğe bağlı oldu və ölçü azalmasına töhfəsi Objective-C layihələri üçün 5–15%, Swift üçün isə daha azdır.

App Thinning və tələb üzrə çatdırılma

App Thinning — Apple-ın quraşdırılan tətbiqin ölçüsünü yalnız müəyyən cihaz üçün lazım olan resursları çatdırmaqla avtomatik azaldan texnologiyası. Üç komponentdən ibarətdir: Slicing, On-Demand Resources və Bitcode. Android-də analoqu Dynamic Delivery ilə Android App Bundle (AAB)-dir.

Android App Bundle (AAB)

AAB — Google Play-də nəşr formatı, burada mağaza hər bir cihaz üçün yalnız onun arxitekturası (armeabi-v7a, arm64-v8a), ekran sıxlığı (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi) və dilləri üçün resursları daxil etməklə APK yaradır. Universal APK-dan AAB-yə keçid zamanı quraşdırma ölçüsünün tipik azalması 20–40% təşkil edir. Play Feature Delivery modulları tələb üzrə yükləməyə imkan verir, Install-time modulları isə baza quraşdırmasına daxil edilir.

groovy
// build.gradle — AAB və Dynamic Features konfiqurasiyası
android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}

iOS-da On-Demand Resources

On-Demand Resources (ODR) — iOS mexanizmi, burada resurslar (oyun səviyyələri, yüksək keyfiyyətli şəkillər, video) Apple serverlərindən yalnız istifadəçiyə həqiqətən lazım olduqda yüklənir. İlkin quraşdırmanın ölçüsü 50–80% azaldıla bilər. Resurslar üç kateqoriyaya bölünür: Initial Install Tags (quraşdırma zamanı yüklənir), Prefetched Tag Order (quraşdırmadan sonra fonda yüklənir) və On-Demand (yalnız tələb əsasında yüklənir). Apple ODR-dən məzmun üçün istifadə etməyi tövsiyə edir ki, ilk ekranda lazım deyil: oyun səviyyələri, əlavə məzmun, video təlimatlar.

SwiftUI ODR-ni Bundle.module atributu vasitəsilə, UIKit isə NSBundleResourceRequest vasitəsilə dəstəkləyir. Unity və Unreal Engine oyunları üçün ODR yerli səviyyədə inteqrasiya olunur. Əsas məhdudiyyət — ODR resursları yer çatışmazlığı olduqda sistem tərəfindən silinir, buna görə də iş üçün kritik məlumatlar əsas kompilyasiyaya daxil edilməlidir.

Tez-tez verilən suallar

Mobil tətbiq üçün optimal ölçü nədir?

50 MB-dan az — maksimum quraşdırma konversiyası üçün ideal ölçü. 50–100 MB — əksər tətbiqlər üçün məqbuldur. 100 MB-dan yuxarı — ölçü ilə əsaslandırma tələb olunur (oyunlar, oflayn xəritələr, məzmun redaktorları).

Nəyi optimallaşdırmaq daha sərfəlidir — kodu yoxsa resursları?

Resurslar daha az vaxtda daha çox qazanc verir. İstifadə olunmayan aktivlərin silinməsi, PNG-nin WebP-yə çevrilməsi və səslərin sıxışdırılması ilə başlayın. Sonra R8 və ya Dead Code Stripping vasitəsilə kod optimallaşdırmasına keçin.

AAB APK ölçüsünü necə azaldır?

Google Play APK yaradır yalnız müəyyən cihaz üçün: arm64-v8a kodu, xhdpi resursları, lazımi dil. Universal APK bütün variantları bir dəfəyə ehtiva edir ki, bu da ölçünü 1,5–2 dəfə artırır. AAB bu problemi mağaza səviyyəsində həll edir.

Ölçü tətbiqin iş sürətinə təsir edirmi?

Dolayı yolla. Böyük ölçü JIT/AOT kompilyasiyası üçün daha çox kod, yaddaşa yükləmək üçün daha çox resurs və manifestləri pars etmək üçün daha çox vaxt deməkdir. Lakin iş vaxtı performansa birbaşa təsir minimaldır — ölçü quraşdırmaya və ilk işə salınmaya təsir edir.

Install-time və On-Demand modulları nədir?

Install-time — əsas quraşdırmanın hissəsi, dərhal mövcuddur. On-Demand — ilk müraciət zamanı yüklənir, ilkin quraşdırmaya daxil deyil. On-Demand-ı 20%-dən az istifadəçiyə lazım olan funksiyalar üçün istifadə edin: diaqnostika, dərsliklər, AR filtrləri.

Nəticə

  • App Size Optimization — konversiya və yükləmə sürətini artırmaq üçün tətbiq ölçüsünün azaldılması
  • Resurslar ölçünün 60–80%-ni təşkil edir — onların optimallaşdırılması ən böyük qazancı verir
  • WebPAVIF — PNG-yə nisbətən 25–45% qənaət edən şəkil sıxışdırma formatları
  • Android üçün R8 kod minifikasiyası vasitəsilə DEX-i 30–50% azaldır
  • App Thinning (iOS) və AAB (Android) yalnız lazımi resursları çatdırır
  • On-Demand Resources quraşdırmadan sonra məzmun yükləməyə imkan verir
  • Maksimum konversiya üçün hədəf ölçü — 50 MB-dan az

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun