Unter der Haube: Die iOS-Diagnosedaten und die beliebtesten iOS-Libraries
Die beliebtesten iOS-Libraries
Bewaffnet mit einem jailbroken iPhone und dem Debugging-Werkzeug Flex hat der Entwickler Ryan Olson die 100 populärsten Gratis-Applikation des amerikanischen App Store geladen um anschließend eine Frage zu beantworten: Welche iOS-Bibliotheken kommen in den derzeit beliebtesten Anwendungen am häufigsten zum Einsatz?
Durchschnitt: Eine iOS-App setzt auf 1175 Klassen
Seine Ergebnisse fast Ryan in diesem Blogeintrag in nur zwei Graphen zusammen. Die mit Abstand populärste Programm-Bibliothek ist Facebooks iOS-SDK zur Anbindung eigener Apps an das soziale Netzwerk. Dieses kommt in immerhin 67 der 100 überprüften Applikation zum Einsatz. Ebenfalls unter den Top-10: Die zur Nutzung der Hand-Off-Funktion vorausgesetzte Reachability-Library, sowie die Statistik-Bibliotheken von Google und Flurry.
Im Schnitt hat Ryan 1175 Klassen in den geprüften Applikationen ausmachen können. Einziger Ausreißer hier: Die offizielle Facebook-Anwendungen mit sage und schreibe ~18.000 Klassen.
Die iOS-Diagnosedaten
Der Autor Joe Caiati hat sich nicht mit den von der Entwickler-Community eingesetzten Programmier-Werkzeugen beschäftigt, sondern mit den Fehlerberichten, die von iPhone und iPad automatisch erstellt werden. Abgelegt in den System-Einstellungen unter Einstellungen > Datenschutz > Diagnose und Nutzung > Diagnose- und Nutzungsdaten, sammeln eure Geräte hier kurze Notizen zu System-Problemen, die im alltäglichen Einsatz aufgetreten sind.
Programmabstürze, unerwartet hohe Speicherauslastungen und Events wie etwa das Fehlen angefragter Ressourcen werden hier protokolliert und (falls von euch aktiviert) in unregelmäßigen Abständen an Apple übermittelt.
Eine Übersicht, welche Protokolldateien euer iPhone erstellt und wie sich der Inhalt deuten lässt, hat Joe Caiati hier zusammengestellt. Die ausgesprochene Empfehlung: Übermittelt die Fehlerberichte.
If you enabled diagnostics data, Apple will periodically create logs and send them anonymously to their servers for examination. Each time Apple does this, it creates an “awdd” log in that list. If you didn’t realize you have enabled this feature, just back out one screen in the Diagnostics & Usage section and toggle it off. Though I’d recommend you keep it on, including the “Share With App Developers” section because it helps resolve bugs a lot faster.
Die Facebook-App dürfte eher im Bereich von 18.000 Klassen („over 15 times the median“) liegen, was immer noch ziemlich irre ist…
181.000 ist die Gesamtzahl der untersuchten Klassen.
Stimmt natürlich. Ist korrigiert. Vielen Dank.
Facebook nutzt nicht 181.000 Klassen, sondern über 15x mehr als der Schnitt (1175 Klassen), also um die 18.000…
Siehe eure verlinkte Quelle. 181.000 Klassen hat der Blogger insgesamt in seiner Datenbank gesammelt, welche die Klassen der Top100 Apps der USA enthält
18000 Klassen, das muss man sich mal auf der Zunge zergehen lassen…. Crazy …
»Die ausgesprochene Empfehlung: Übermittelt die Fehlerberichte.«
Hmm. An Apple jaa, noch; an die Entwickler angesichts der immensen Datensammelflut einiger (s. eueren Beitrag kürzlich: http://www.iphone-ticker.de/fr.....zer-86728/) nur auf Nachfrage und sehr, sehr ausgesucht. Leider.
Es ist wie bei der Werbung: Die mit den breitesten Ellenbogen, die Rücksichtslosen, zerstören das ausgewogene Verhältnis zwischen den Interessen von Entwicklern und Usern und bedingen Misstrauen und Abschottung. Also werden so viele Infos wie möglich geblockt, obwohl die Übermittlung mancher Infos ja durchaus sinnvoll wäre.
Nur hat Tracking rein überhaupt nichts mit den Diagnosedaten zu tun. Das sind zwei paar Stiefel. Gerade die von Apple für Entwickler generierten Diagnosedaten kann (im Gegensatz zu den Tracking-Daten) enthalten extrem wenige Informationen und absolut nichts, was sich zurückverfolgen lässt. Grob gesagt: man sieht den Absturzgrund und das war es auch. Du kannst sogar sehen was die Entwickler (akkumuliert) mitgeteilt bekommen. Ein Entwickler könnte auch keine weiteren Infos bei den Betroffenen anfordern…
Die Daten langen nach meiner Erfahrung auch nur bei den einfachen Fehler bzw. es hilft Fehler die bei einer größeren Personengruppe Auftritt zu erkennen. Für komplexere Fälle (z.B. Probleme die einzelne Nutzer haben) dagegen nicht.
Das ist auch der Grund warum viele Apps selber zusätzliche Diagnose-Daten sammeln um diese bei Bedarf über eine Support-Funktion durch den Nutzer sich zusenden lassen zu können. Viele Apps nutzen auch – gerade weil die Diagnose-Daten von Apple so spärlich sind – spezielle Crash Reporter Lösungen, die ebenfalls mehr Daten beinhalten können. Letztere erkennt ihr z.B. daran, wenn Ihr nach einem Absturz einer App nach dem erneuten starten gefragt werdet ob der Absturz gemeldet werden soll. Wobei nicht alle hierbei fragen … die seriösen schon.
Ich kann jedenfalls auch nur empfehlen: gebt den Entwicklern zumindest die Apple Diagnosedaten. Mit denen helft Ihr ungemein und die Gefahr der Datenweitergabe von persönliche Daten ist praktisch in diesem Fall gleich 0.
Absolut krass, wahrscheinlich könnte man aber die Hälfte rauswerfen davon :D
Bestimmt ist die Facebook-App genau deshalb so buggy, weil sich niemand mehr drin zurechtfindet :/