Voglio mantenere la mia app inferiore a 10,0 MB per un facile download in entrambi gli ambienti di rete cellulare e Wifi. Nella tua esperienza hai riscontrato dei buoni modi per mantenere le tue app snelle? Se è così, per favore condividi. Quali sono alcune linee guida valide per mantenere la dimensione del file dell'app per iPhone inferiore a 10,0 MB?Quali sono alcune linee guida valide per mantenere la dimensione del file dell'app per iPhone inferiore a 10,0 MB?
risposta
La maggior parte delle app con cui ho superato 10M sono dovute a risorse, spesso immagini e audio. Il corretto dimensionamento di questi è fondamentale. Tieni presente che iPhone esegue automaticamente una compressione per il bundle del dispositivo, pertanto le dimensioni di Simulator possono essere radicalmente diverse rispetto a quelle del dispositivo.
Come tutti gli esercizi di ottimizzazione, si desidera innanzitutto creare un sistema solido e sensato e quindi concentrare gli sforzi di ottimizzazione sui pezzi che causano i maggiori problemi. Io uso du
per questo:
- costruire per il dispositivo in uscita
- Vai a costruire/Stampa-iPhoneOS/.app
du -ak | sort -rn | head
Questo vi darà un elenco di dove la le cose migliori sono. Questa informazione è in kB, ma è arrotondata al blocco successivo (4k su Mac). Ma stai solo cercando ciò che è grande, senza calcolare esattamente la dimensione di tutto.
Cerca soprattutto le cose che vengono copiate nelle tue risorse che non dovrebbero essere. A volte arrivano cose divertenti, specialmente la documentazione che hai aggiunto al progetto. Provando questo, mi accorgo che il mio modello di progetto ha copiato i file xcconfig nel pacchetto (devo risolvere il problema ...)
Se si dispone di molti NIB localizzati, si consiglia di considerare di non localizzare i NIB, e piuttosto usando IBOutlet UILabels. Non localizzare un NIB se non c'è un testo localizzato reale. Solo perché localizzi una NIB non significa che devi localizzarle tutte.
In genere le impostazioni di build per iPhone sono già aggressive nel ridurre le dimensioni, quindi non mi verrebbe a confondere molto senza ricercare ciò che si sta modificando.
Fate attenzione alle classi Objective-C con molti metodi che non chiamate mai. Objective-C è dinamico, quindi non è possibile eseguire il dead-code stripping su di esso come in C. Non c'è modo di sapere in fase di compilazione se un selettore può essere usato in fase di esecuzione. Quindi se hai degli oggetti che contengono il lavello della cucina "per ogni evenienza", potresti volerli spogliare. Ma in generale non stiamo parlando di molto spazio qui rispetto a un singolo file audio. Lo menziono solo per il raro caso in cui hai un oggetto davvero enorme a cui ti colleghi solo per qualche metodo di classe o costante o simile.
Un consiglio sarebbe utilizzare i formati multimediali compresso. Per esempio. se stai usando file audio potresti prendere in considerazione l'utilizzo di mp3 invece di AIFF o WAV, al prezzo possibile di un overhead di elaborazione leggermente superiore. Un eseguibile da 10 MB suona in modo insolitamente alto, quindi forse un'app grande potrebbe contenere molti contenuti multimediali (immagini, audio).
Un altro suggerimento: Be careful with your 9.9MB app!
Non si desidera scoprire dopo un sacco di ottimizzazioni che la tua app sembra essere 10.1 MB.
Il processo di compilazione comprime automaticamente file PNG per te (usando pngcrush, non farlo tu stesso), quindi in realtà dovresti avere un bel po 'di risorse per superare i 10MB è la dimensione.Penso che preoccuparsi di ciò è un'ottimizzazione prematura e probabilmente non ti devi preoccupare fino a quando non ti sarai avvicinato più tardi.
Converti alcune delle tue immagini più grandi in scala di grigi se funzionerà con il look della tua app. Se riesci a fare pochi gradi in scala di grigi, i risparmi sono piuttosto consistenti.
Questa Tipos sarà per lo applica ai giochi per iPhone:
- Uso JPG invece di PNG per le immagini che non hanno la trasparenza.
- Disporre i suoni in mp3, render in WAV la prima volta che l'app viene caricata e salvarli nell'app Documenti dir.
- 1. Quali sono le linee guida C++ GSL?
- 2. Quali sono le linee guida per Parallel.ForEach vs. foreach?
- 3. Quali metriche del codice \ linee guida utilizzate?
- 4. Quali sono alcune tecniche valide per combinare la protezione CSRF con le API RESTful?
- 5. Javascript: quali sono alcune linee guida su come definire nuovi tipi di dati?
- 6. Linee guida per la codifica + Best practice?
- 7. Quali sono le linee guida per consentire la registrazione personalizzabile da un modulo Python?
- 8. Quali sono alcune grandi domande per l'iPhone per l'allenamento?
- 9. Linee guida per unità di migliori test
- 10. Quali sono alcune risorse per l'apprendimento del Lambda Calculus?
- 11. Linee guida per la denominazione di WCF/Best practice
- 12. Quali sono alcune buone alternative a InstallShield?
- 13. Linee guida per la memorizzazione dei dati iOS Rifiuto
- 14. Quali sono le condizioni valide per zcml: condition?
- 15. Linee guida per la registrazione (tracing) in un'applicazione Windows
- 16. dove sono le linee guida per il layout di iOS?
- 17. Quali sono tutte le restrizioni di sviluppo Apple per iPhone
- 18. Linee guida per la progettazione dell'interfaccia utente per tablet Android
- 19. Quali sono alcune alternative a PlayN?
- 20. Linee guida per l'utilizzo di MailboxProcessor?
- 21. Quali sono alcune opzioni per proteggere redis db?
- 22. Linee guida per i test delle applicazioni GIS
- 23. Linee guida per la precedenza degli operatori Java
- 24. Linee guida per la progettazione ORM di Azure/AWS
- 25. Come mantenere il file di registro a rotazione come per dimensione del file?
- 26. Esistono linee guida per la progettazione di database documentali?
- 27. Linee guida per la progettazione di un'interfaccia pulita
- 28. Linee guida per Dispose() e Ninject
- 29. Buone linee guida per lo sviluppo di un'applicazione e-commerce
- 30. Applicazione rifiutata a causa del mancato rispetto delle linee guida per la memorizzazione dei dati iOS