paint-brush
O tamanho importa se você tem o iPhone 15?por@marcushaldd
651 leituras
651 leituras

O tamanho importa se você tem o iPhone 15?

por Daria Leonova7m2023/11/10
Read on Terminal Reader

Muito longo; Para ler

Ainda existem alguns motivos importantes pelos quais devemos ficar de olho no tamanho do nosso aplicativo: - Limites da App Store; - Baixe uma velocidade de lançamento; - Influência na vida útil da bateria do dispositivo; E existem alguns métodos para reduzir o tamanho do aplicativo: - Formatos HEIC e SVG para imagens; - Catálogos de Ativos; - Vinculação dinâmica; - Filtragem de arquivos excedentes;
featured image - O tamanho importa se você tem o iPhone 15?
Daria Leonova HackerNoon profile picture
0-item

Todos os anos, a Apple lança um novo iPhone, aumentando gradativamente o tamanho da RAM e da memória principal, adicionando potência ao chip. Hoje, no iPhone 15, você já pode rodar jogos de console como “Resident Evil 4”. E uma pergunta lógica pode surgir – devo otimizar o tamanho do meu aplicativo ou não posso dedicar mais tempo a ele?


Resumindo, ainda vale a pena otimizar o tamanho. Neste artigo, reuni os motivos pelos quais é essencial fazer isso e forneci alguns métodos úteis de otimização.

Problemas e Definições

Então, vamos começar com a resposta mais banal à pergunta “Por que o tamanho é importante?” - As limitações da App Store. O App Store Connect simplesmente não permite que você baixe um arquivo que exceda o limite de tamanho especificado.


Para aplicativos iOS e tvOS, verifique se seu aplicativo não excede os tamanhos máximos de arquivo nos sistemas operacionais compatíveis. O tamanho total descompactado do seu aplicativo deve ser inferior a 4 GB.


Os aplicativos Apple Watch devem ter menos de 75 MB. Além disso, cada arquivo executável do Mach-O — por exemplo, app_name.app/app_name — não deve exceder esses tamanhos máximos de arquivo. Link


Os arquivos específicos aos quais eles se referem podem ser um pouco confusos. Para entender melhor isso, vamos percorrer o processo de envio de sua inscrição ao App Store Connect.


.xcarchive

Product -> Archive

O primeiro passo é criar um arquivo. Este arquivo armazena uma coleção de artefatos de construção e informações relacionadas para um aplicativo iOS, macOS, watchOS ou tvOS.



.xcarchive right click -> Show Package Contents

Temos a oportunidade de analisar o que exatamente e de que forma está incluído no arquivo.




Entre os principais arquivos você encontrará:


  • Pasta de produtos com seu App;

  • dSYMs, (abreviação de “símbolos de depuração”), arquivos especiais gerados pelo Xcode com as informações necessárias para depuração, enfim, crash logs;

  • Info.plist;


Aliás, o arquivo do Aplicativo também pode ser aberto por “Mostrar conteúdo do pacote”, e entre os arquivos você encontrará o executável e o CodeResources, resultado da assinatura do código; ele monitora as assinaturas digitais de vários recursos do aplicativo (imagens, etc.).


.ipa

Voltando ao Xcode, após gerar o Archive, o botão Distribute App fica disponível para você. Nesta fase, .xcarchive se transforma em .ipa .


Um arquivo .ipa pode ser considerado um pacote compactado que inclui uma pasta “Payload”. Dentro desta pasta “Payload”, está o pacote essencial “YourApp.app”. Dentro do pacote ".app", você encontrará todos os componentes críticos do seu aplicativo, incluindo recursos como


  • imagens;
  • arquivos plist;
  • arquivos nib compactados;
  • o arquivo executável ;


Além disso, abriga recursos de assinatura de código para garantir a integridade e segurança do aplicativo.


Para ver o interior do seu .ipa , clique em Export após distribuição, converta o tipo de .ipa para .zip e apenas extraia.


Em resumo, o arquivo .ipa é o aplicativo empacotado que os usuários finais instalam em seus dispositivos iOS, enquanto o .xcarchive é um arquivo focado no desenvolvedor que contém vários ativos e informações de construção para o aplicativo.


O .ipa é usado para distribuição, enquanto o .xcarchive é usado para depuração, arquivamento e fins de desenvolvimento adicional. Já o executável é o código central que executa as funções do aplicativo e está contido no pacote .ipa .


Assim, as limitações da AppStore podem ser ilustradas da seguinte forma.

Versão do sistema operacional

Tamanho .ipa

.ipa -> Carga útil -> Aplicativo -> tamanho do exe

iOS 9.0 e posteriortvOS 9.0 e posterior

4GB

500MB

iOS 7.X até iOS 8.X

2GB

60MB


Porém, para estimar o tamanho da sua aplicação final, ou seja, quantos bytes um determinado usuário terá que instalar em seu dispositivo, serão necessárias ações adicionais, ou seja, gerar um relatório de tamanho da aplicação. A documentação descreve bem o procedimento para criá-lo, então deixarei um link aqui.


O próximo motivo para pensar no tamanho do seu aplicativo é… a AppStore de novo, mas agora não estamos falando de restrições do sistema, mas sim da velocidade de download . Tudo é evidente aqui - quanto menor o tamanho, maior a taxa.


Além disso, há um limite de 200 MB, atingindo o qual os usuários precisam se conectar a uma rede Wi-Fi para instalar o aplicativo. O atraso pode desencorajar os utilizadores e levar a taxas de abandono mais elevadas.


Os algoritmos de busca e descoberta da App Store da Apple geralmente favorecem aplicativos menores, pois são mais fáceis para os usuários baixarem e experimentarem. Tamanhos menores de aplicativos podem melhorar potencialmente a visibilidade do seu aplicativo nos resultados de pesquisa e nas recomendações.


Depois que o aplicativo estiver no dispositivo, seu tamanho ainda será importante. Aplicativos menores são iniciados mais rapidamente, proporcionando uma melhor experiência ao usuário. Quando um aplicativo otimiza o armazenamento, ele contribui para prolongar a vida útil da bateria, reduzir o espaço ocupado pelo aplicativo e melhorar a integridade do dispositivo. Como resultado, quanto mais pessoas estiverem satisfeitas com o iPhone, mais usuários em potencial você terá.

Soluções

Existem algumas dicas simples para evitar aumentar desnecessariamente o tamanho da sua aplicação durante o desenvolvimento. O primeiro deles é o trabalho consciente com imagens.

Imagens

Primeiro, escolha HEIC em vez de JPEG. HEIC fornece arquivos 50% menores em comparação com JPEG, ao mesmo tempo que mantém qualidade de imagem semelhante. Isso resulta em espaço de armazenamento reduzido no seu dispositivo. Arquivos menores são mais fáceis de transferir entre redes, bem como carregar e salvar em disco mais rapidamente.


HEICs suportam transparência de imagem e capacidade de armazenar imagens suplementares contendo informações de profundidade e disparidade. Ele suporta compactação sem perdas e permite armazenar várias imagens em um único contêiner.



Em segundo lugar, tente adotar SVG (um formato de imagem vetorial baseado em XML usado para exibir gráficos vetoriais bidimensionais) em vez de PDF e PNG. Em contraste com as imagens raster, os gráficos vetoriais normalmente exibem tamanhos de arquivo menores, porque são caracterizados por equações matemáticas que definem formas e curvas, em vez de armazenar pixels individuais.


Inicialmente foi necessário adicionar 3 imagens com prefixos (para cada densidade de pixels). Depois foi adicionado suporte a PNG (= imagem vetorial com um determinado tamanho), mas ainda funcionou no nível de “cortar 3 PNGs do PDF quando montamos o projeto”.


E só então foi possível usar SVG + incluir a caixa de seleção “usar data do vetor” no catálogo de ativos, reduzindo realmente o tamanho das imagens utilizadas + acrescentando a possibilidade de escala infinita, sem perda de qualidade.


Em terceiro lugar, aproveite ao máximo os recursos dos Catálogos de Ativos . Os Catálogos de Ativos fornecem um armazenamento fácil de usar para múltiplas resoluções da mesma imagem. Além disso, os catálogos armazenam todos os ativos de imagem em um único formato otimizado com metadados em vez de arquivos individuais.


Ele permite que a App Store forneça apenas os recursos necessários para seu dispositivo específico. Isso leva ao aumento da velocidade de download e já sabemos que os usuários não gostam de esperar.


Catálogos de ativos

É possível configurar “sob demanda” no recurso, ou seja, o recurso será baixado no aparelho apenas se necessário, e após algum tempo de desuso, será removido. Link


Não se esqueça que você tem um enorme catálogo de imagens “gratuitas” - Símbolos SF . A Apple está constantemente trabalhando no aumento dos personagens, adicionando a capacidade de personalizar cores e até animações.


Assim, com fotos e outros recursos gráficos, tudo parece claro - usamos os formatos corretos e adicionamos um catálogo através do Assets. Sempre existe a oportunidade de não incluir grandes recursos na montagem final, mas simplesmente fazer upload da Internet quando necessário. Agora vamos falar sobre o código e o uso de bibliotecas.

Gerenciamento de Estruturas

Deixe-me lembrá-lo rapidamente sobre o Linking. Existem dois tipos: estático e dinâmico.


Estático

Dinâmico

Quando ocorre a vinculação

Tempo de construção

Tempo de execução

Onde as dependências são armazenadas

No arquivo executável final

Em bibliotecas dinâmicas separadas

Como as dependências são compartilhadas

A mesma cópia é usada por todas as instâncias do aplicativo

Cada instância do aplicativo tem sua própria cópia

Como as atualizações nas dependências são tratadas

Reconstrua o aplicativo

Atualizar a biblioteca dinâmica


De acordo com o tema deste artigo, o armazenamento de dependências é especialmente importante para nós, e a vinculação dinâmica parece ser a nossa favorita.


Bibliotecas dinâmicas não são vinculadas estaticamente a aplicativos clientes; eles não se tornam parte do arquivo executável. Em vez disso, bibliotecas dinâmicas podem ser carregadas (e vinculadas) em um aplicativo quando o aplicativo é iniciado ou durante a execução. Link


Resumindo, optar por bibliotecas dinâmicas em vez de bibliotecas estáticas resulta em tamanhos menores de arquivos de aplicativos e menor uso inicial de memória. No entanto, ainda é importante encontrar um equilíbrio e evitar o uso excessivo de bibliotecas dinâmicas, pois isso pode criar um atraso no desempenho durante a inicialização do aplicativo.


A Apple também recomenda a criação de uma base de código modular ( SPM ) em seu aplicativo, o que pode ser útil ao compartilhar código com outros alvos, App Clipps, por exemplo.


O Swift Package Manager oferece uma maneira simplificada e nativa de gerenciar dependências em seus projetos Swift.

Excesso de arquivos

Uma das maneiras mais eficazes de reduzir o tamanho do seu aplicativo é remover todos os arquivos desnecessários. Esses arquivos extras podem ser, por exemplo, Read.me ou imagens restantes. Na verdade, logo no início do artigo, onde descobrimos o que é um .ipa, já aprendemos como encontrar todos os arquivos que irão para a AppStore: .ipa -> .zip -> App -> show package conteúdo.


Descubra todos os recursos que você não precisa e fique à vontade para excluí- los do seu aplicativo.


Conclusão

Apenas para resumir isso. Ainda existem alguns motivos importantes pelos quais devemos ficar de olho no tamanho do nosso aplicativo:

  • Limites da App Store;
  • Velocidades de download e inicialização;
  • Influência na vida útil da bateria do dispositivo;


E existem alguns métodos para reduzir o tamanho do aplicativo:

  • Formatos HEIC e SVG para imagens;
  • Catálogos de Ativos;
  • Vinculação dinâmica;
  • Filtrando arquivos em excesso;


Então só não se esqueça disso durante o desenvolvimento da sua rotina; torne-se mais inteligente a cada dia 🙃