Por que o app iOS da Oral-B tem quase 300 MB? E por que o app da Colgate é ainda maior?
(twitter.com/emergetools)- Dos 290 MB do app iOS da Oral-B, 233 MB vêm do asset catalog, e a maior parte do tamanho do app é ocupada por recursos em PDF para vários modelos de escova de dente
- O maior recurso da Oral-B é
Sonos_M9_rose, com 7,8 MB, e muitos PDFs contêm apenas o cabo e os botões em vez da escova inteira - O
Comino.bundleinclui arquivos como20class_seqlen26_6p5h_20200302-095627_comino_android_production, que parecem ser pesos de modelo - O app Colgate Smile é ainda maior, com 378 MB, e os principais fatores de inchaço são o framework Unity de 125 MB e símbolos binários que não foram removidos
- A Colgate também inclui 60 MB de recursos e arquivos de localização duplicados no bundle principal e na extensão de widget, fazendo com que pelo menos 120 MB aumentem o tamanho do app sem valor funcional
A maior parte do tamanho do app da Oral-B vem de recursos em PDF
- No app Oral-B, de um total de 290 MB, 233 MB vêm do asset catalog
- Isso corresponde a 80% do tamanho total
- A maior parte consiste em recursos em PDF que representam diferentes modelos de escova de dente
- O maior recurso em PDF é
Sonos_M9_rose, com 7,8 MB - Vários PDFs não incluem a imagem da escova inteira, mas apenas o cabo e os botões
- Outro item que chama atenção é o
Comino.bundlede 15 MB- Ele inclui arquivos como
20class_seqlen26_6p5h_20200302-095627_comino_android_production - Esses arquivos parecem ser algum tipo de pesos de modelo
- Ele inclui arquivos como
No Colgate Smile, o problema maior é o inchaço que poderia ser reduzido
- O app Colgate Smile tem 378 MB
- O app aparentemente usa Unity por causa do recurso de “guided brushing”
- O framework Unity tem 125 MB
- Se esse recurso trouxer valor, o uso de Unity em si pode ser visto como uma escolha compreensível
- O desperdício maior é que, no app de produção, os símbolos binários não foram removidos
- Os símbolos binários são usados para simbolicação
- Se o DSYM for enviado para um crash reporter, não há necessidade de incluí-los no app de produção
- Só a remoção dos símbolos binários reduziria cerca de 60 MB no total, ou 15%
- Outro fator de inchaço é a duplicação
- A Colgate inclui 60 MB de recursos e arquivos de localização duplicados no bundle principal e na extensão de widget
- Os nós vermelhos indicam itens duplicados
- No app da Colgate, pelo menos 120 MB foram contabilizados como tamanho sem qualquer valor funcional para o usuário
- Leitura relacionada:
1 comentários
Opiniões no Hacker News
Não entendo por que os apps da Oral-B e da Colgate existem para começo de conversa
Pessoalmente, usei uma vez e apaguei, mas pode ser útil para quem quer verificar se a escovação está eficiente. De todo modo, é totalmente opcional; dá para ignorar a existência do app e usar só a escova
Assim, ela parece mais familiar do que outras marcas “desconhecidas”, e a chance de a pessoa comprar aquela marca aumenta. Com o app é igual: toda vez que você o usa, ele enfia o logotipo e a marca na sua frente. No fim das contas, nem é preciso vender os dados
A triste realidade é que, se você atualizar em App Store > Your Account, dá para contar nos dedos os apps com menos de 100 MB. No meu caso, a maioria dos apps tem 300 MB, e isso falando só das atualizações
Comparei com Android, e lá os apps são muito mais leves. Apps antigos em Objective-C eram muito mais enxutos, mas apps em Swift continuam grandes e pesados mesmo depois da ABI. Parte é preguiça dos desenvolvedores, parte é porque as ferramentas da Apple não são boas. Não há tree shaking nem remoção de código morto em CocoaPods compilados ou pacotes Swift. A Apple não parece se importar muito; talvez até goste, porque vende aparelhos novos com mais armazenamento ou assinaturas do iCloud
Recursos, arquitetura e idioma só são baixados quando necessários, e isso vai até componentes específicos por área, como formatos de compressão de texturas de assets de jogos. Assim, o dispositivo recebe apenas as texturas necessárias, e o desenvolvedor pode distribuir em vários formatos para que o usuário receba a melhor opção compatível com o aparelho. Também é possível baixar e instalar módulos de código sob demanda. Por exemplo, dá para separar o fluxo de cadastro em um módulo próprio, instalá-lo no início e removê-lo depois que o usuário se cadastrar, reduzindo o tamanho instalado. Um desenvolvedor não baixava nem instalava de fato um módulo de VOIP de alguns MB para suporte ao cliente até o usuário abrir a tela de suporte, então a maioria dos usuários nunca o instalava
[0]: https://developer.android.com/guide/playcore/asset-delivery/...
https://xcancel.com/emergetools/status/1828490449881047401
Parece aquelas páginas intermediárias de spam que aparecem quando você tenta ver streaming ilegal. É uma ferramenta horrível a ponto de ser difícil acreditar que alguém sem relação com aquele site tenha postado isso
É irritante que coletar dados de usuários para data brokers tenha virado um negócio tão valioso. Não dá para ficar feliz vendo grandes empresas continuarem criando apps que extraem dados em vez de produtos bons, enquanto os números sobem
Perceber que estou resmungando “antigamente era melhor” parece confirmar oficialmente que já passei da meia-idade, mas apps para geladeira, lava-louças e escova de dentes? Quando a lava-louças colocar a louça sozinha, aí talvez eu aceite o ajuste hedônico de preços
Então, no fim, eles só colocaram imagens de modelos diferentes em PDFs estupidamente grandes? Não era o que eu esperava. Achei que seria algo mais parecido com o app da Colgate mencionado depois
O app da Oral-B era bem leve alguns anos atrás, mostrava um feed com as últimas notícias do mundo, registrava dados no Apple Health e incentivava sequências de escovação, então era divertido
Mas eles reescreveram o app inteiro, perderam quase todos os recursos, e eu nunca mais o abri depois da primeira execução após a atualização. Seria bom se existisse uma iOS App Store que permitisse instalar versões antigas, como o TestFlight. Infelizmente, até o TestFlight só dura no máximo 90 dias. Talvez seja hora de pegar um sniffer BLE, mas parece impossível obter permissões do HealthKit para um app temporário, não autorizado e de uso único
Mais vergonhoso do que o tamanho em si é o fato de ser preciso um app para mudar os modos da escova de dentes. Acho que isso realmente não deveria ser permitido, mas não sei bem como obrigar isso
A tela mostra um timer do tempo de escovação, e isso é suficiente para o rastreamento necessário na escova. Pode haver outros modos que não sejam acessíveis pelo botão, mas não conheço nenhum
A segunda tarefa é definir exatamente o que deve ser permitido e proibido, mas há tanta coisa idiota que uma empresa consegue imaginar para infernizar os clientes que acho aceitável dar a esse órgão uma margem de discricionariedade bem ampla, desde que ele avalie e decida com base em bons princípios centrais. Por exemplo, um princípio como “funções que podem ser implementadas sem um app complementar não devem exigir um app complementar”
A verdadeira pergunta é por que, para começo de conversa, uma escova de dentes precisa de app
Tudo isso acontece sob “consentimento”. Porque você instalou o app e provavelmente aceitou os termos de serviço ou a política de privacidade. Também vem com o pretexto de ser um serviço que conta quando e com que frequência você interagiu com o produto, ou que te lembra de usá-lo. Mesmo que qualquer adulto com uma vida normal já fizesse isso, só que com menos precisão
Se os dados mostrarem que, em determinada cidade ou condado, as pessoas escovam os dentes 25% a 50% menos do que a população em geral, faz bastante sentido aumentar o gasto com publicidade naquela região. Afinal, dá para presumir que pessoas que não escovam bem os dentes têm maior probabilidade de comprar chiclete odontológico para compensar os danos
Versão desenrolada: https://unrollnow.com/status/1828490449881047401
Por que uma pessoa em sã consciência baixaria um app de escova de dentes?