paint-brush
¿Importa el tamaño si tienes un iPhone 15?por@marcushaldd
651 lecturas
651 lecturas

¿Importa el tamaño si tienes un iPhone 15?

por Daria Leonova7m2023/11/10
Read on Terminal Reader

Demasiado Largo; Para Leer

Todavía hay algunas razones importantes por las que debemos vigilar el tamaño de nuestra aplicación: - Límites de la App Store; - Descargar velocidades de lanzamiento; - Influencia en la duración de la batería del dispositivo; Y existen algunos métodos para reducir el tamaño de la aplicación: - Formatos HEIC y SVG para imágenes; - Catálogos de activos; - Vinculación dinámica; - Filtrar archivos sobrantes;
featured image - ¿Importa el tamaño si tienes un iPhone 15?
Daria Leonova HackerNoon profile picture
0-item

Cada año, Apple lanza un nuevo iPhone, aumentando gradualmente el tamaño de la RAM y la memoria principal, añadiendo potencia al chip. Hoy en día, en el iPhone 15, ya puedes ejecutar juegos de consola como "Resident Evil 4". Y puede surgir una pregunta lógica: ¿debería optimizar el tamaño de mi aplicación o no puedo dedicarle más tiempo?


En definitiva, todavía merece la pena optimizar el tamaño. En este artículo, recopilé las razones por las que es esencial hacerlo y proporcioné algunos métodos de optimización útiles.

Problemas y definiciones

Entonces, comencemos con la respuesta más banal a la pregunta "¿Por qué importa el tamaño?" - Las limitaciones de la App Store. App Store Connect simplemente no le permitirá descargar un archivo que exceda el límite de tamaño especificado.


Para aplicaciones de iOS y tvOS, verifique que su aplicación no exceda los tamaños de archivo máximos en los sistemas operativos compatibles. El tamaño total sin comprimir de su aplicación debe ser inferior a 4 GB.


Las aplicaciones de Apple Watch deben tener menos de 75 MB. Además, cada archivo ejecutable de Mach-O (por ejemplo, nombre_aplicación.aplicación/nombre_aplicación) no debe exceder estos tamaños máximos de archivo. Enlace


Los archivos específicos a los que se refieren pueden resultar un poco confusos. Para comprender mejor esto, repasemos el proceso de envío de su solicitud a App Store Connect.


.xcarchivo

Product -> Archive

El primer paso es crear un archivo. Este archivo almacena una colección de artefactos de compilación e información relacionada para una aplicación iOS, macOS, watchOS o tvOS.



.xcarchive right click -> Show Package Contents

Tenemos la oportunidad de investigar qué se incluye exactamente en el archivo y en qué forma.




Entre los archivos principales encontrarás:


  • Carpeta de productos con su aplicación;

  • dSYMs, (abreviatura de "símbolos de depuración"), archivos especiales generados por Xcode con la información necesaria para la depuración, en definitiva, registros de fallos;

  • Lista de información;


Por cierto, el archivo de la Aplicación también se puede abrir mediante “Mostrar contenido del paquete”, y entre los archivos encontrará el ejecutable y CodeResources, resultado de la firma de código; realiza un seguimiento de las firmas digitales de varios recursos de la aplicación (imágenes, etc.).


.ipa

Volviendo a Xcode, después de generar el Archivo, el botón Distribute App está disponible para usted. En esta etapa, .xcarchive se convierte en .ipa .


Un archivo .ipa puede considerarse como un paquete comprimido que incluye una carpeta "Carga útil". Dentro de esta carpeta "Carga útil", se encuentra el paquete esencial "YourApp.app". Dentro del paquete ".app", encontrará todos los componentes críticos de su aplicación, incluidos recursos como


  • imágenes;
  • archivos plist;
  • archivos plumilla comprimidos;
  • el archivo ejecutable ;


Además, alberga recursos de firma de código para garantizar la integridad y seguridad de la aplicación.


Para ver el interior de su .ipa , haga clic en Export después de la distribución, convierta el tipo de .ipa a .zip y simplemente extraiga.


En resumen, el archivo .ipa es la aplicación empaquetada que los usuarios finales instalan en sus dispositivos iOS, mientras que .xcarchive es un archivo centrado en el desarrollador que contiene varios activos e información de compilación para la aplicación.


El .ipa se utiliza para la distribución, mientras que el .xcarchive se utiliza para la depuración, el archivado y el desarrollo posterior. El ejecutable, por otro lado, es el código central que realiza las funciones de la aplicación y está contenido dentro del paquete .ipa .


Por tanto, las limitaciones de la AppStore se pueden ilustrar de la siguiente manera.

versión del sistema operativo

tamaño .ipa

.ipa -> Carga útil -> Aplicación -> tamaño exe

iOS 9.0 y posteriorestvOS 9.0 y posteriores

4 GB

500 megas

iOS 7.X a iOS 8.X

2GB

60 megas


Sin embargo, para estimar el tamaño de su aplicación final, es decir, cuántos bytes tendrá que instalar un usuario en particular en su dispositivo, necesitará acciones adicionales, como generar un informe del tamaño de la aplicación. La documentación describe bien el procedimiento para crearlo, así que dejaré un enlace aquí.


La siguiente razón para pensar en el tamaño de tu aplicación es… la AppStore nuevamente, pero ahora, no estamos hablando de restricciones del sistema sino de la velocidad de descarga . Aquí todo es evidente: cuanto menor sea el tamaño, mayor será la tasa.


Además, existe un límite de 200 MB, para alcanzar el cual los usuarios deben conectarse a una red Wi-Fi para instalar la aplicación. El retraso puede desanimar a los usuarios y generar mayores tasas de abandono.


Los algoritmos de búsqueda y descubrimiento de la App Store de Apple a menudo favorecen las aplicaciones más pequeñas, ya que son más fáciles de descargar y probar para los usuarios. Los tamaños de aplicación más pequeños pueden mejorar potencialmente la visibilidad de su aplicación en los resultados de búsqueda y las recomendaciones.


Una vez que la aplicación está en el dispositivo, su tamaño sigue siendo importante. Las aplicaciones más pequeñas se inician más rápido, lo que brinda una mejor experiencia de usuario. Cuando una aplicación optimiza el almacenamiento, contribuye a prolongar la duración de la batería, reducir el espacio que ocupa la aplicación y mejorar el estado del dispositivo. Como resultado, cuanta más gente esté contenta con el iPhone, más usuarios potenciales tendrás.

Soluciones

Hay algunos consejos simples para evitar aumentar innecesariamente el tamaño de su aplicación durante el desarrollo. El primero de ellos es el trabajo consciente con imágenes.

Imágenes

Primero, elija HEIC en lugar de JPEG. HEIC proporciona archivos que son un 50 por ciento más pequeños en comparación con JPEG, manteniendo al mismo tiempo una calidad de imagen similar. Esto da como resultado una reducción del espacio de almacenamiento en su dispositivo. Los archivos más pequeños son más fáciles de transferir a través de redes, además de cargarlos y guardarlos en el disco más rápido.


Los HEIC admiten la transparencia de la imagen y la capacidad de almacenar imágenes complementarias que contienen información de profundidad y disparidad. Admite la compresión sin pérdidas y le permite almacenar varias imágenes en un solo contenedor.



En segundo lugar, intente adoptar SVG (un formato de imagen vectorial basado en XML que se utiliza para mostrar gráficos vectoriales bidimensionales) en lugar de PDF y PNG. A diferencia de las imágenes rasterizadas, los gráficos vectoriales suelen presentar tamaños de archivo más pequeños, porque se caracterizan por ecuaciones matemáticas que definen formas y curvas, en lugar de almacenar píxeles individuales.


Inicialmente, era necesario agregar 3 imágenes con prefijos (para cada densidad de píxeles). Luego se agregó compatibilidad con PNG (= imagen vectorial con un tamaño determinado), pero aún funcionó en el nivel de "cortar 3 PNG de PDF cuando ensamblamos el proyecto".


Y solo entonces fue posible usar SVG + incluir la casilla de verificación "usar fecha de vector" en el catálogo de activos, reduciendo así realmente el tamaño de las imágenes utilizadas + agregando la posibilidad de escalado infinito, sin pérdida de calidad.


En tercer lugar, aproveche al máximo las capacidades de Asset Catalogs . Los catálogos de activos proporcionan un almacenamiento fácil de usar para múltiples resoluciones de la misma imagen. Además, los catálogos almacenan todos los recursos de imágenes en un único formato optimizado con metadatos en lugar de archivos individuales.


Permite que la App Store proporcione solo los recursos necesarios para su dispositivo en particular. Esto conduce a un aumento de la velocidad de descarga y ya sabemos que a los usuarios no les gusta esperar.


Catálogos de activos

Es posible configurar el recurso “bajo demanda”, es decir, el recurso se descargará en el dispositivo solo si es necesario y, después de un tiempo de desuso, se eliminará. Enlace


No olvides que tienes un enorme catálogo de imágenes “gratuitas”: SF Symbols . Apple trabaja constantemente en aumentar los personajes, añadiendo la posibilidad de personalizar colores e incluso animaciones.


Entonces, con imágenes y otros recursos gráficos, todo parece estar claro: usamos los formatos correctos y agregamos un catálogo a través de Activos. Siempre existe la oportunidad de no incluir grandes recursos en el montaje final, sino simplemente cargarlos desde Internet cuando sea necesario. Ahora, hablemos del código y el uso de bibliotecas.

Gestión de marcos

Permítanme recordarles rápidamente acerca de la vinculación. Hay dos tipos: estático y dinámico.


Estático

Dinámica

Cuando se produce la vinculación

Tiempo de construcción

Tiempo de ejecución

Donde se almacenan las dependencias

En el archivo ejecutable final

En bibliotecas dinámicas separadas

Cómo se comparten las dependencias

Todas las instancias de la aplicación utilizan la misma copia.

Cada instancia de la aplicación tiene su propia copia.

Cómo se manejan las actualizaciones de las dependencias

Reconstruir la aplicación

Actualizar la biblioteca dinámica


Según el tema de este artículo, el almacenamiento de dependencias es especialmente importante para nosotros y los enlaces dinámicos parecen ser nuestros favoritos.


Las bibliotecas dinámicas no están vinculadas estáticamente a las aplicaciones cliente; no pasan a formar parte del archivo ejecutable. En cambio, las bibliotecas dinámicas se pueden cargar (y vincular) en una aplicación cuando se inicia o mientras se ejecuta. Enlace


En pocas palabras, optar por bibliotecas dinámicas en lugar de bibliotecas estáticas da como resultado tamaños de archivos de aplicaciones más pequeños y un menor uso de memoria inicial. Sin embargo, sigue siendo importante lograr un equilibrio y evitar el uso excesivo de bibliotecas dinámicas, ya que esto puede crear un retraso en el rendimiento durante el inicio de la aplicación.


Apple también recomienda crear una base de código modular ( SPM ) en su aplicación, que puede resultar útil al compartir código con otros objetivos, App Clipps, por ejemplo.


Swift Package Manager ofrece una forma simplificada y nativa de gestionar dependencias en sus proyectos Swift.

Archivos en exceso

Una de las formas más efectivas de reducir el tamaño de su aplicación es eliminar todos los archivos innecesarios. Estos archivos adicionales pueden ser, por ejemplo, Read.me o imágenes sobrantes. De hecho, al principio del artículo, donde descubrimos qué es un .ipa, ya aprendimos cómo encontrar todos los archivos que ingresarán a la AppStore: .ipa -> .zip -> Aplicación -> mostrar paquete contenido.


Descubra todos los recursos que no necesita y no dude en eliminarlos de su aplicación.


Conclusión

Sólo para resumir esto. Todavía hay algunas razones importantes por las que debemos vigilar el tamaño de nuestra aplicación:

  • Límites de la App Store;
  • Velocidades de descarga y lanzamiento;
  • Influencia en la duración de la batería del dispositivo;


Y existen algunos métodos para reducir el tamaño de la aplicación:

  • Formatos HEIC y SVG para imágenes;
  • Catálogos de Activos;
  • Enlace dinámico;
  • Filtrar archivos sobrantes;


Así que no lo olvides durante el desarrollo de tu rutina; vuélvete más inteligente cada día 🙃