1 puntos por GN⁺ 2024-08-29 | 1 comentarios | Compartir por WhatsApp
  • De los 290 MB de la app de Oral-B para iOS, 233 MB provienen del asset catalog, y la mayor parte del tamaño de la app la ocupan recursos PDF para varios modelos de cepillos dentales
  • El recurso más grande de Oral-B es Sonos_M9_rose, con 7.8 MB, y muchos PDF contienen solo el mango y los botones del cepillo, no el cepillo completo
  • Comino.bundle incluye archivos como 20class_seqlen26_6p5h_20200302-095627_comino_android_production, que parecen ser pesos de modelo
  • La app Colgate Smile es más grande, con 378 MB, y los principales factores de su tamaño excesivo son el framework de Unity de 125 MB y símbolos binarios que no fueron eliminados
  • Colgate incluye de forma duplicada 60 MB de recursos y archivos de localización en el bundle principal y la extensión del widget, por lo que al menos 120 MB aumentan el tamaño de la app sin aportar valor funcional

La mayor parte del tamaño de la app de Oral-B proviene de recursos PDF

  • La app de Oral-B genera 233 MB del asset catalog de un total de 290 MB
    • Equivale al 80% del tamaño total
    • La mayor parte corresponde a recursos PDF que representan distintos modelos de cepillos dentales
  • El recurso PDF más grande es Sonos_M9_rose, con 7.8 MB
  • Muchos PDF no incluyen la imagen completa del cepillo, sino solo el mango y los botones
  • Otro elemento llamativo es Comino.bundle de 15 MB
    • Incluye archivos como 20class_seqlen26_6p5h_20200302-095627_comino_android_production
    • Esos archivos parecen ser algún tipo de pesos de modelo

El problema mayor de Colgate Smile es un tamaño inflado que se puede reducir

  • La app Colgate Smile pesa 378 MB
  • Parece que la app usa Unity por la función de “guided brushing”
    • El framework de Unity pesa 125 MB
    • Si esa función aporta valor, usar Unity en sí puede verse como una decisión razonable
  • Un desperdicio mayor es que en la app de producción no se eliminaron los símbolos binarios
    • Los símbolos binarios se usan para la simbolicación
    • Si se sube el DSYM al sistema de reporte de fallos, no hace falta incluirlos dentro de la app de producción
    • Solo con eliminar los símbolos binarios se pueden reducir aproximadamente 60 MB, o 15% del total
  • Otro factor de tamaño excesivo es la inclusión duplicada
    • Colgate incluye de forma duplicada 60 MB de recursos y archivos de localización en el bundle principal y la extensión del widget
    • Los nodos rojos indican los elementos duplicados
  • En la app de Colgate, se calcula que al menos 120 MB del tamaño no aportan ningún valor funcional al usuario
  • Artículos relacionados:

1 comentarios

 
GN⁺ 2024-08-29
Opiniones de Hacker News
  • No entiendo por qué existen siquiera las apps de Oral-B y Colgate

    • Son para recopilar datos con el fin de hacerles marketing y publicidad a los clientes
    • La app puede decirte qué dientes cepillaste correctamente, es decir, si les dedicaste suficiente tiempo, y cuáles omitiste o pasaste demasiado rápido
      Personalmente la probé una vez y la borré, pero puede ser útil para quienes quieren comprobar si su cepillado es eficiente. En todo caso, es totalmente opcional, y puedes ignorar que existe la app y usar solo el cepillo
    • Es la misma razón por la que ahora incluso hay cepillos de dientes con IA. En la competencia por seguir reinventando el cepillo cada año, buscan crear nuevos diferenciadores, nuevos ángulos de marketing y mayores ventas
    • Es parecido a los anuncios de Coca-Cola o McDonald’s. No te dan información nueva, sino que meten una y otra vez el logo, la marca y el nombre en la cabeza del espectador o usuario
      Así se siente más familiar que otras marcas “desconocidas” y aumenta la probabilidad de que compres esa marca. Con las apps pasa lo mismo: cada vez que las usas te ponen el logo y la marca frente a los ojos. En conclusión, ni siquiera necesitan vender los datos
    • Así como las aseguradoras de autos dan descuentos por manejar seguro si usas un dispositivo o app de registro de datos, sorprende que las aseguradoras de salud todavía no hayan empezado a ofrecer descuentos para “quienes se cepillan bien los dientes”
  • La triste realidad es que, si vas a App Store > Your Account y actualizas, las apps de menos de 100 MB se cuentan con los dedos de una mano. En mi caso, la mayoría de las apps pesan 300 MB, y eso hablando solo de actualizaciones
    Al compararlo con Android, ahí las apps son mucho más livianas. Las apps antiguas en Objective-C eran mucho más esbeltas, pero las apps en Swift siguen siendo grandes y pesadas incluso después de la ABI. Parte de la culpa es la flojera de los desarrolladores, y parte también las herramientas deficientes de Apple. No hay tree shaking ni eliminación de código muerto en CocoaPods compilados o paquetes Swift. A Apple no parece importarle mucho, y hasta podría agradarle vender dispositivos nuevos con más almacenamiento o suscripciones a iCloud

    • Trabajé en esto en Google. El formato moderno de distribución de apps Android está diseñado por completo para dividir una app en partes pequeñas, de modo que el usuario descargue e instale solo lo mínimo necesario en cada momento
      Recursos, arquitecturas e idiomas se descargan solo cuando hacen falta, y se incluyen incluso elementos específicos por área, como formatos de compresión de texturas para assets de juegos. Así el dispositivo recibe solo las texturas necesarias, y el desarrollador puede distribuir en varios formatos para que el usuario reciba la mejor opción compatible con su dispositivo. También es posible descargar e instalar módulos de código bajo demanda. Por ejemplo, puedes separar el flujo de registro en un módulo, instalarlo al principio y, después de que el usuario se registre, eliminarlo para reducir el tamaño de instalación. Un desarrollador hacía que un módulo VOIP de unos pocos MB para soporte al cliente no se descargara ni instalara realmente hasta que el usuario abriera la pantalla de soporte, por lo que la mayoría de los usuarios nunca lo instalaba
      [0]: https://developer.android.com/guide/playcore/asset-delivery/...
    • Apple también tiene herramientas así. Agregó una herramienta nueva que también puede aplicarse a bibliotecas dinámicas
  • https://xcancel.com/emergetools/status/1828490449881047401

    • Es el peor proxy de Twitter que he visto hasta ahora. Sale una pantalla tonta de “espera x segundos para ver esta página” y después te dice “recarga la página”
      Parece una página intermedia de spam de esas que aparecen cuando intentas ver streaming ilegal. Es una herramienta horrible, al punto de que cuesta creer que alguien sin relación con ese sitio haya publicado esto
  • Me molesta que recopilar datos de usuarios para brokers de datos se haya vuelto un negocio tan valioso. No puedo alegrarme al ver que las grandes empresas siguen creando apps que extraen datos en vez de buenos productos y que sus métricas suben
    Viendo que ya estoy quejándome con un “antes todo era mejor”, supongo que oficialmente ya pasé la mediana edad, pero ¿apps para refrigeradores, lavavajillas y cepillos de dientes? Cuando llegue el día en que el lavavajillas se cargue solo con los platos, ahí quizá acepte el ajuste hedónico de precios

    • Ojalá la calidad de los anuncios subiera tanto como la eficiencia con la que succionan datos. No tengo licencia de conducir y estoy en una relación, pero una buena parte de los anuncios personalizados en mis dispositivos son de sitios de citas y concesionarias de autos
  • ¿Al final solo metieron imágenes de distintos modelos en PDF absurdamente grandes? No era lo que esperaba. Pensé que sería algo como la app de Colgate que aparece más adelante

    • No tiene sentido. Eso debería descargarse cuando haga falta al 100%
    • Me pregunto si crearon los PDF con la función “Imprimir como PDF” del navegador. Los PDF que genera Chrome son enormes
    • Pensé que habrían usado Unreal Engine. La última vez que revisé, incluso una app mínima pasaba de 200 MB
  • La app de Oral-B hace unos años era bastante liviana, mostraba un feed con las noticias mundiales más recientes, registraba datos en Apple Health y hacía divertido mantener rachas de cepillado
    Pero reescribieron toda la app, perdió casi todas sus funciones, y no la he vuelto a abrir desde el primer inicio después de la actualización. Me gustaría que existiera una iOS App Store que permitiera instalar versiones anteriores, como TestFlight. Por desgracia, incluso TestFlight solo dura hasta 90 días. Quizá ya sea hora de sacar un sniffer BLE, aunque conseguir permisos de HealthKit para una app temporal no autorizada de un solo uso parece imposible

    • “¿Feed con las noticias mundiales más recientes?” ¿Qué? ¿Oral-B? ¿Feed de noticias mundiales?
    • El protocolo ya fue sometido a ingeniería inversa. Uso Home Assistant y Bluetooth, y detecta un cepillo de dientes Oral-B de un vecino
    • Participé en esa versión. Me quedaré callado en la discusión que sigue
  • Más vergonzoso que el tamaño en sí es que se necesite una app para cambiar los modos del cepillo de dientes. Creo que eso realmente no debería permitirse, aunque no sé bien cómo habría que hacerlo cumplir.

    • Dependerá de qué modelo uses y qué modo quieras cambiar, pero en el Oral-B Pro 5000 se podían cambiar sin app los modos de limpieza como “Daily Clean” y “Sensitive”, así como el color del LED de la punta.
      La pantalla muestra el temporizador del tiempo de cepillado, y ese nivel de seguimiento en el cepillo es suficiente. Puede que haya otros modos a los que no se pueda acceder con botones, pero yo no conozco ninguno.
    • La primera tarea es tener una agencia de protección al consumidor con autoridad legal para retirar del mercado productos defectuosos por diseño.
      La segunda tarea es definir con precisión qué se permite y qué se prohíbe, pero como hay demasiadas estupideces que las empresas pueden imaginar para fastidiar a los clientes, creo que se le podría dar a una agencia así una discrecionalidad bastante amplia si evalúa y decide con base en buenos principios centrales. Por ejemplo, un principio como “las funciones que pueden implementarse sin una app complementaria no deben exigir una app complementaria”.
    • ¿Por qué hace falta legislar hasta este punto? Simplemente no compres ese cepillo y deja que el producto muera de forma natural.
    • En mi IO se pueden cambiar los modos desde el cepillo, pero la selección de la lista de modos disponibles se hace en la app. Aun así, parece que el valor predeterminado es “todos”, así que puede seguir usándose aunque nunca abras la app.
  • La verdadera pregunta es por qué, para empezar, se necesita una app para un cepillo de dientes.

    • Es para recopilar la mayor cantidad posible de datos de los clientes, empaquetarlos con la esperanza de que estén anonimizados y luego venderlos a data brokers para exprimir más dinero de la base de clientes.
      Todo esto ocurre bajo el paraguas del “consentimiento”, porque probablemente instalaste la app y aceptaste los términos de servicio o la política de privacidad. También se presenta como un servicio que cuenta el momento o la frecuencia con que interactúas con el producto, o que te recuerda usarlo. Aunque cualquier adulto que viva normalmente ya hacía eso, solo que con menos precisión.
    • Como ejemplo hipotético, las empresas de chicles “dentales” podrían pagar mucho por información sobre hábitos de cepillado cruzada con datos demográficos y geográficos.
      Si los datos muestran que en cierta ciudad o condado la gente se cepilla los dientes entre 25% y 50% menos que la población general, tendría bastante sentido aumentar el gasto publicitario en esa zona. Se podría asumir que quienes no se cepillan bien tienen más probabilidades de comprar chicles dentales para compensar el daño.
    • Te muestra si dedicaste suficiente tiempo al frente, la parte superior y la parte posterior de cada diente. Un cepillo eléctrico se usa de forma distinta a uno manual; no se mueve de adelante hacia atrás.
    • Sinceramente, yo pensaba lo mismo. Supuse que sería para estadísticas de cepillado o tiempo por diente.
    • Una razón por la que usé la app fue por mis hijos. Pone una animación mientras se cepillan, mantiene estadísticas y les permite elegir cosas como el color de un avatar como recompensa.
  • Versión desplegada: https://unrollnow.com/status/1828490449881047401

    • A mí no me funciona.

      Connection failed: User 'u327838624_unroll' has exceeded the 'max_connections_per_hour' resource (current value: 500)

    • Parece que murió por el tráfico de HN.

      Connection failed: User 'uxxxxxxx_unroll' has exceeded the 'max_connections_per_hour' resource (current value: 500)
      ¿Esto es un error de MySQL?

  • ¿Por qué una persona cuerda descargaría una app para un cepillo de dientes?

    • ¿Y cómo se actualizaría entonces el firmware del cepillo? Ojalá fuera broma, pero parece que Phillips lanza actualizaciones de firmware para Sonicare varias veces al año.