Perché le app Android sono più piccole delle app iOS?
Diverse cose cospirano per rendere le app iOS grandi:
- le app iOS sono distribuite come codice nativo che gira direttamente sulla CPU, ma Apple ha distribuito diverse architetture di CPU, quindi includono diverse copie del codice dell'app per ogni CPU. Includono anche una versione "mezza compilata" che l'App Store può ottimizzare per i nuovi dispositivi. Fortunatamente, ogni dispositivo scarica solo la copia del codice della sua CPU, ma la dimensione elencata nell'App Store include tutte le versioni.
Le app Android sono distribuite come "bytecode" indipendente dalla CPU che viene convertito in codice nativo del dispositivo in fase di esecuzione. Questo è più portabile, ma aggiunge overhead. - Le app iOS includono tipicamente diverse versioni del loro artwork - risoluzione 2x e 3x, spazi colore sRGB e P3, a volte versioni separate per iPhone e iPad. Anche in questo caso, ogni dispositivo scarica solo la grafica per il suo schermo, ma la dimensione elencata nell'App Store include tutte le versioni.
Le app Android di solito non hanno così tante versioni diverse della grafica; l'enorme numero e varietà di dispositivi Android significa che non è comunque possibile ottenere risultati perfetti al pixel. - Le app iOS possono includere un'app Apple Watch in bundle, che su iOS è un'app completamente separata con il proprio codice, la propria grafica e le proprie risorse. Anche in questo caso, solo i dispositivi accoppiati a un Apple Watch scaricheranno l'app Watch, ma la dimensione elencata nell'App Store la include.
Le app Android Wear sono integrate nell'app del dispositivo principale. Questo le fa sembrare più piccole, ma significa che l'intera app - non solo le parti relative all'orologio - deve essere caricata nella piccola memoria flash dell'orologio. - Le app iOS in questi giorni sono spesso scritte nel nuovo linguaggio di programmazione di Apple, Swift, ma Swift è ancora in evoluzione. Piuttosto che includere le sue librerie di supporto in rapida evoluzione in iOS, le app che usano Swift includono le loro copie private di queste librerie. Ce n'è una per ogni framework che l'app usa, e ogni framework aggiunge un paio di megabyte. (Occasionalmente uno sviluppatore configurerà male qualcosa e finirà per includere diverse copie di una di queste librerie!) Le librerie di supporto di Swift dovrebbero stabilizzarsi nella prossima versione, quindi questa situazione inizierà ad essere risolta nel 2018.
Il nuovo linguaggio di Android, Kotlin, si integra più direttamente nell'infrastruttura Android esistente e non ha bisogno di questo tipo di librerie di supporto. Ma questo ha un costo: Le librerie di supporto di Swift gli permettono di offrire nuove caratteristiche che rendono le app più affidabili; Kotlin non può eguagliare queste caratteristiche perché non può cambiare radicalmente l'infrastruttura sottostante.
1-3 riguardano più le dimensioni elencate nell'App Store che le dimensioni reali sul dispositivo; 4 è una situazione temporanea. Quindi la situazione non è così grave come sembra.
Articoli simili
- Sviluppo di applicazioni Android: Quanto costerebbe fare piccole app Android?
- Perché sei passato da Android a iOS? Perché sei passato a iOS da Android?
- Come è importante il cloud per il successo delle piccole imprese?
- Dovremmo montare ruote più grandi o più piccole per migliorare il risparmio di carburante?