1 Punkte von GN⁺ 2024-08-29 | 1 Kommentare | Auf WhatsApp teilen
  • Von den 290 MB der iOS-App von Oral-B entfallen 233 MB auf den Asset Catalog; den Großteil der App-Größe machen PDF-Assets für verschiedene Zahnbürstenmodelle aus
  • Das größte Oral-B-Asset ist Sonos_M9_rose mit 7,8 MB, und viele PDFs enthalten nicht die ganze Zahnbürste, sondern nur Griff und Knöpfe
  • Comino.bundle enthält Dateien wie 20class_seqlen26_6p5h_20200302-095627_comino_android_production, die wie Modellgewichte aussehen
  • Die Colgate-Smile-App ist mit 378 MB noch größer; das Unity-Framework mit 125 MB und nicht entfernte Binary Symbols sind die wichtigsten Gründe für die Aufblähung
  • Colgate enthält 60 MB an Assets und Lokalisierungsdateien doppelt im Haupt-Bundle und in der Widget-Erweiterung, wodurch mindestens 120 MB ohne funktionalen Mehrwert zur App-Größe beitragen

Der Großteil der Oral-B-App-Größe besteht aus PDF-Assets

  • Bei der Oral-B-App entstehen von insgesamt 290 MB 233 MB durch den Asset Catalog
    • Das entspricht 80 % der Gesamtgröße
    • Der Großteil davon sind PDF-Assets, die verschiedene Zahnbürstenmodelle darstellen
  • Das größte PDF-Asset ist Sonos_M9_rose mit 7,8 MB
  • Mehrere PDFs enthalten nicht ein vollständiges Bild der Zahnbürste, sondern nur Griff und Knöpfe
  • Ein weiterer auffälliger Posten ist das 15 MB große Comino.bundle
    • Es enthält Dateien wie 20class_seqlen26_6p5h_20200302-095627_comino_android_production
    • Diese Dateien sehen nach einer Art Modellgewichten aus

Das größere Problem von Colgate Smile ist vermeidbare Aufblähung

  • Die App-Größe von Colgate Smile beträgt 378 MB
  • Die App scheint wegen der Funktion „guided brushing“ Unity zu verwenden
    • Das Unity-Framework ist 125 MB groß
    • Wenn diese Funktion einen Nutzen hat, kann die Verwendung von Unity an sich als nachvollziehbare Entscheidung gelten
  • Die größere Verschwendung besteht darin, dass in der Produktions-App Binary Symbols nicht entfernt wurden
    • Binary Symbols werden für die Symbolication verwendet
    • Wenn DSYMs an den Crash Reporter hochgeladen werden, müssen sie nicht in der Produktions-App enthalten sein
    • Allein durch das Entfernen der Binary Symbols ließen sich insgesamt rund 60 MB, 15 % einsparen
  • Ein weiterer Faktor für die Aufblähung ist doppelte Einbindung
    • Colgate enthält Assets und Lokalisierungsdateien von 60 MB doppelt im Haupt-Bundle und in der Widget-Erweiterung
    • Rote Knoten werden als doppelte Elemente angezeigt
  • In der Colgate-App werden mindestens 120 MB als Größe berechnet, die Nutzern keinen funktionalen Mehrwert bietet
  • Verwandte Beiträge:

1 Kommentare

 
GN⁺ 2024-08-29
Hacker-News-Kommentare
  • Ich verstehe von vornherein nicht, warum es überhaupt eine Oral-B-App und eine Colgate-App gibt

    • Um Daten zu sammeln, damit man Kunden mit Marketing und Werbung bespielen kann
    • Die App kann einem sagen, welche Zähne man richtig geputzt hat, also wo man genug Zeit verbracht hat, und welche Zähne man ausgelassen oder zu schnell übergangen hat
      Ich persönlich habe es einmal ausprobiert und dann gelöscht, aber für Leute, die prüfen wollen, ob sie effizient putzen, kann es nützlich sein. Es ist jedenfalls völlig optional, und man kann die Existenz der App ignorieren und einfach nur die Zahnbürste benutzen
    • Das ist derselbe Grund, warum jetzt sogar Zahnbürsten mit AI erscheinen. Jedes Jahr erfindet man die Zahnbürste neu, im Wettbewerb um neue Unterscheidungsmerkmale, neue Marketing-Ansätze und höhere Verkaufszahlen
    • Ähnlich wie Werbung für Cola oder McDonald’s. Es geht nicht darum, neue Informationen zu geben, sondern Logos, Marken und Namen immer wieder in die Köpfe der Zuschauer oder Nutzer zu pflanzen
      Dann fühlt sich die Marke vertrauter an als andere „unbekannte“ Marken, und die Wahrscheinlichkeit steigt, dass man sie kauft. Bei der App ist es genauso: Jedes Mal, wenn man sie benutzt, hält sie einem Logo und Marke vor die Nase. Am Ende muss man die Daten nicht einmal verkaufen
    • So wie Kfz-Versicherer mit Datenerfassungsgeräten oder Apps Rabatte für sicheres Fahren geben, ist es fast überraschend, dass Krankenversicherer noch nicht mit Rabatten für „gute Zähneputzer“ angefangen haben
  • Die traurige Realität ist, dass man im App Store > Your Account nach einem Refresh nur eine Handvoll Apps unter 100 MB findet. Bei mir liegen die meisten Apps bei 300 MB, und dabei rede ich nur von Updates
    Im Vergleich zu Android sind Apps dort viel schlanker. Früher waren Objective-C-Apps deutlich leichter, aber Swift-Apps sind auch nach Einführung der ABI eher groß und schwer. Zum Teil ist es Faulheit der Entwickler, zum Teil sind Apples Tools nicht besonders gut. Es gibt kein Tree Shaking und keine Dead-Code-Eliminierung für kompilierte CocoaPods oder Swift-Pakete. Apple scheint das kaum zu kümmern und dürfte sich eher darüber freuen, neue Geräte mit mehr Speicher oder iCloud-Abos zu verkaufen

    • Daran wurde bei Google gearbeitet. Das moderne Android-App-Distributionsformat ist vollständig darauf ausgelegt, Apps in kleine Teile zu zerlegen, damit Nutzer zu jedem Zeitpunkt nur das absolute Minimum herunterladen und installieren müssen
      Ressourcen, Architekturen und Sprachen werden nur bei Bedarf geladen, und das geht bis zu bereichsspezifischen Elementen wie Texturkompressionsformaten für Game-Assets. So bekommt das Gerät nur die Texturen, die es braucht, und Entwickler können mehrere Formate ausliefern, damit Nutzer die beste von ihrem Gerät unterstützte Option erhalten. Auch das Herunterladen und Installieren von Code-Modulen on demand ist möglich. Man kann zum Beispiel den Registrierungsprozess in ein separates Modul auslagern, das zunächst installiert und nach erfolgter Anmeldung wieder entfernt wird, um die Installationsgröße zu verringern. Manche Entwickler laden oder installieren ein mehrere MB großes VOIP-Modul für den Kundensupport erst wirklich dann, wenn der Support-Bildschirm geöffnet wird, sodass die meisten Nutzer es überhaupt nie installieren
      [0]: https://developer.android.com/guide/playcore/asset-delivery/...
    • Apple hat dafür auch Tools. Es wurden neue Werkzeuge hinzugefügt, die auch auf dynamische Bibliotheken angewendet werden können
  • https://xcancel.com/emergetools/status/1828490449881047401

    • Der schlechteste Twitter-Proxy, den ich bisher gesehen habe. Da kommt erst ein dämlicher Bildschirm mit „Warte x Sekunden, um diese Seite zu sehen“ und danach heißt es, man solle die Seite neu laden
      Das wirkt wie eine zugespammte Zwischenseite beim Anschauen illegaler Streams. Kaum zu glauben, dass jemand, der damit nichts zu tun hat, das gepostet hat – ein wirklich furchtbares Tool
  • Es nervt, dass das Sammeln von Nutzerdaten für Datenbroker zu einem so wertvollen Geschäft geworden ist. Man kann sich nicht darüber freuen, wie die Zahlen steigen, während Großkonzerne statt guter Produkte immer weiter Apps bauen, die Daten absaugen
    Dass ich schon mit „früher war alles besser“ anfange, heißt wohl offiziell, dass ich jenseits der Lebensmitte bin, aber Apps für Kühlschränke, Geschirrspüler und Zahnbürsten? Wenn der Tag kommt, an dem der Geschirrspüler das Geschirr selbst einräumt, dann akzeptiere ich vielleicht auch hedonische Inflationsanpassungen

    • Schön wäre, wenn mit der Effizienz des Datensaugens auch die Qualität der Werbung steigen würde. Ich habe nicht mal einen Führerschein und bin in einer Beziehung, aber ein großer Teil der personalisierten Werbung auf meinem Gerät betrifft Dating-Seiten und Autohäuser
  • Also geht es am Ende nur darum, dass sie Bilder verschiedener Modelle auf dumme Weise riesig als PDF eingebettet haben? Unerwartet. Ich hätte gedacht, es wäre eher so etwas wie die später erwähnte Colgate-App

    • Völlig absurd. So etwas sollte zu 100 % bei Bedarf heruntergeladen werden
    • Ich frage mich, ob sie die PDFs mit der „Als PDF drucken“-Funktion eines Webbrowsers erzeugt haben. Die PDFs, die Chrome erstellt, sind enorm groß
    • Ich hätte gedacht, sie hätten Unreal Engine verwendet. Als ich das zuletzt geprüft habe, lag schon die kleinste App bei über 200 MB
  • Die Oral-B-App war vor ein paar Jahren ziemlich leichtgewichtig, zeigte einen aktuellen Welt-Nachrichtenfeed, schrieb Daten in Apple Health und war lustig, weil sie zu Putzserien motivierte
    Dann wurde die ganze App neu geschrieben, wobei fast alle Funktionen verloren gingen, und nach dem ersten Start nach dem Upgrade habe ich sie nie wieder geöffnet. Es wäre schön, wenn es im iOS App Store so etwas wie TestFlight gäbe, um alte Versionen zu installieren. Leider gilt auch bei TestFlight nur ein Maximum von 90 Tagen. Vielleicht ist es Zeit, den BLE-Sniffer hervorzuholen, aber es scheint unmöglich zu sein, einer einmaligen, nicht signierten temporären App HealthKit-Berechtigungen zu geben

    • „Aktueller Welt-Nachrichtenfeed“ – bitte was? Oral-B? Welt-Nachrichtenfeed?
    • Das Protokoll wurde bereits rückentwickelt. Ich nutze Home Assistant und Bluetooth, und eine Oral-B-Zahnbürste aus der Nachbarschaft wird erkannt
    • Ich habe an dieser Version mitgearbeitet. In der weiteren Diskussion halte ich mich lieber zurück
  • Noch peinlicher als die Größe selbst ist, dass man eine App braucht, um den Modus der Zahnbürste zu ändern. Das sollte meiner Meinung nach wirklich nicht erlaubt sein, aber ich weiß nicht genau, wie man das durchsetzen sollte.

    • Das hängt wohl davon ab, welches Modell man benutzt und welchen Modus man ändern will, aber bei der Oral-B Pro 5000 konnte man auch ohne App Reinigungsmodi wie „Daily Clean“ und „Sensitive“ sowie die LED-Farbe am Ende ändern.
      Das Display zeigt den Putzzeit-Timer an, und die Nachverfolgung direkt an der Zahnbürste reicht dafür völlig aus. Es mag andere Modi geben, die per Knopf nicht erreichbar sind, aber mir sind keine bekannt.
    • Die erste Aufgabe wäre, eine Verbraucherschutzbehörde zu haben, die die rechtliche Befugnis besitzt, fehlerhaft konzipierte Produkte vom Markt zu nehmen.
      Die zweite Aufgabe wäre, genau zu definieren, was erlaubt und was verboten ist. Da es zu viele dumme Dinge gibt, die Unternehmen sich ausdenken können, um Kunden zu schikanieren, wäre ich dafür, eine solche Behörde auf Grundlage guter Kernprinzipien bewerten und entscheiden zu lassen und ihr dabei einen ziemlich großen Ermessensspielraum zu geben. Ein Beispiel für so ein Prinzip wäre: „Funktionen, die ohne Begleit-App umgesetzt werden können, dürfen keine Begleit-App voraussetzen.“
    • Warum braucht es dafür überhaupt Gesetzgebung? Man kann die Zahnbürste doch einfach nicht kaufen und das Produkt auf natürliche Weise aussterben lassen.
    • Bei meiner IO kann man die Modi an der Zahnbürste ändern, aber die Auswahl der Liste der umschaltbaren Modi erfolgt in der App. Allerdings scheint die Standardeinstellung „alle“ zu sein, daher ist sie auch dann noch nutzbar, wenn man die App nie startet.
  • Die eigentliche Frage ist doch, warum man überhaupt eine App für eine Zahnbürste braucht.

    • Um möglichst viele Kundendaten zu sammeln, sie hoffentlich zu anonymisieren, zu bündeln und an Datenbroker zu verkaufen, damit man aus der Kundschaft noch mehr Geld herauspressen kann.
      Das alles geschieht unter „Einwilligung“, weil man die App installiert und höchstwahrscheinlich die AGB oder die Datenschutzrichtlinie akzeptiert hat. Dazu kommt die Behauptung, es handle sich um einen Service, der zählt, wie lange oder wie oft man das Produkt benutzt, oder einen daran erinnert, es zu benutzen. Etwas also, das jeder normal lebende Erwachsene ohnehin schon tut, nur eben weniger genau.
    • Als hypothetisches Beispiel: Hersteller von „Dental“-Kaugummi könnten viel Geld für Informationen über die Putzgewohnheiten von Menschen zahlen, abgeglichen mit Demografie- und Geodaten.
      Wenn Daten zeigen, dass Menschen in einer bestimmten Stadt oder einem bestimmten County ihre Zähne 25–50 % seltener putzen als die Allgemeinbevölkerung, wäre es durchaus plausibel, dort das Werbebudget zu erhöhen. Denn man könnte annehmen, dass Menschen, die ihre Zähne nicht oft putzen, eher Dental-Kaugummi kaufen, um die Schäden auszugleichen.
    • Sie zeigt an, ob man für Vorder-, Ober- und Rückseite jedes Zahns genug Zeit aufgewendet hat. Elektrische Zahnbürsten werden anders verwendet als Handzahnbürsten; man bewegt sie nicht vor und zurück.
    • Ehrlich gesagt dachte ich auch zuerst daran. Vielleicht Putzstatistiken oder die Zeit pro Zahn.
    • Ein Grund, warum ich die App benutzt habe, sind die Kinder. Während des Zähneputzens spielt sie Animationen ab, führt Statistiken und lässt als Belohnung Dinge wie die Farbe eines Avatars auswählen.
  • Ausgerollte Version: https://unrollnow.com/status/1828490449881047401

    • Funktioniert bei mir nicht.

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

    • Scheint vom HN-Traffic erschlagen worden zu sein.

      Connection failed: User 'uxxxxxxx_unroll' has exceeded the 'max_connections_per_hour' resource (current value: 500)
      Ist das ein MySQL-Fehler?

  • Aus welchem Grund würde ein vernünftiger Mensch überhaupt eine Zahnbürsten-App herunterladen?

    • Und wie soll dann die Firmware der Zahnbürste aktualisiert werden? Wäre schön, wenn das ein Witz wäre, aber Phillips scheint für Sonicare ein paar Mal im Jahr Firmware-Updates zu veröffentlichen.