TOPlist

Aplikace pro iOS jsou až 10x větší, než pro Android! Anebo je to jinak?

velikost aplikace pro Android a iOS
  • Aplikace pro Android jsou až 10x menší než stejné aplikace v AppStore
  • Je to způsobeno tím, že každý údaj znamená něco jiného
  • Aplikace pro Android se po instalaci výrazně zvětší

Server Emerge Tools upozornil na zajímavou věc: pokud srovnáme stejnou aplikaci pro iOS a pro Android, zjistíme, že ta pro iOS je většinou mnohem větší. Klidně i 10x, a to je už opravdu velký rozdíl. Jenže, jak upozorňuje přímo i Emerge Tools, věc není tak jednoduchá, jak může na první pohled vypadat.

Emerge Tools si ke srovnání vybrali aplikaci Linear. Zatímco verze pro Android ukazuje velikost 8.5 MB, verze pro iPhone 96.3 MB. Kde se vzal tak velký rozdíl? Kouzlo je v detailu, srovnáváme totiž hrušky a jablka.

Zatímco v případě AppStore je uváděná velikost, kterou zabere aplikace v zařízení po instalaci, v Obchodě Play je uváděno, kolik dat budete stahovat. Další osud staženého balíčku ale připomíná pohádku o Otesánkovi. Aplikace se přenáší v komprimovaném stavu, aby se ušetřila stahovaná data. To vidíme i v tabulce níže, že i v případě iPhone jsou stahovaná data menší, než deklarovaná v AppStore. Během instalace se aplikace překládá z úsporného kódu do předkompilovaného.

Teď se dopustím hrubého zjednodušení. Aplikace se programují v nějakém programovacím jazyce. Já vyvíjím v C#, pro Android se dnes používá primárně Kotlin. Kdybychom ale zkusili spustit aplikaci přímo v programovacím jazyce, musela by se neustále za běhu překládat do binárního kódu, a to by bylo velmi pomalé (takto fungovaly interprety jazyka BASIC). Proto se před publikováním musí aplikace přeložit do formy, které už bude rozumět procesor.

pohled na compiler-explorer

Aby to nebylo úplně jednoduché, v případě Androidu jsou ty překlady dva. Jeden je do dex bytekódu a před spuštěním se pak ten ještě překládá do nativního kódu, kterému už opravdu rozumí konkrétní zařízení. Je to proto, že dex bytekód je úspornější a šetří se tím místo. Pokud bychom chtěli maximální výkon (myšleno rychlost spouštění), budeme muset skladovat aplikace v nativním kódu, který je největší. Ale to je právě to jablko, které bychom měli vzít na srovnání, pokud chceme poměřovat velikosti aplikací pro Android a iOS.

Zde je tabulka, která srovnává velikost aplikace v jednotlivých fázích jejích života. Data jsem převzal ze serveru Emerge Tools, sám nemám potřebné nástroje a ani iPhone, abych je mohl sám získat. I po plné kompilaci je aplikace pro iPhone větší, ale už to je “jen” 1,5x.

iPhone Android Rozdíl
Obchod 88,3 9,52 cca 9,5x
Ke stažení 33,6 9,52 cca 3,5x
Normální instalace 87,6 25,81 cca 3,5x
Plná instalace 87,6 56,08 cca 1,5x

Stále je ale aplikace pro iPhone větší, než pro Android. To je způsobeno mimo jiné tím, že aplikace pro iOS jsou kompilovány přímo do nativního kódu. Dalším faktorem je, že programovací jazyk, který se používá pro iOS je robustnější, což zvětšuje velikost přeloženého kódu. Posledním důvodem, který zmíníme, je, že v aplikacích pro iOS je poměrně dost kódu duplikovaného (až 17 %).

Poznámka: možná jste si všimli, že velikosti aplikací v jednotlivých odstavcích nesouhlasí. Je to proto, že obchod hlásí velikost pro zařízení, ze kterého tam přistupujete a stejně tak velikost instalace se může lišit pro jednotlivá zařízení. Já k testu použil Pixel 8a s Androidem 15 beta, kde byla velikost instalace menší, než u Samsung Galaxy S24 Ultra. Podstatné jsou ale rozdíly po jednotlivých krocích, ne absolutní hodnoty.

Věděli jste, že aplikace po instalaci zvětší svou velikost?

Zdroj: EmergeTools

Libor Foltýnek
O Autorovi - Libor Foltýnek

Libor Foltýnek je redaktor s rozsáhlými zkušenostmi v oblasti technologií a fotografie. Jeho práce je charakterizována důkladným výzkumem, poutavým vyprávěním a praktickými radami, které zpřístupňují… více o autorovi

Mohlo by vás zajímat

Komentáře (0)