Я за вами слежу!
Кликбейтный заголовок, да? )) Но на самом деле я должен буду в этом посте признаться, что это действительно так. Но всё это делается для экономии вашего времени и моего в будущем. По традиции опять расскажу, что тут происходит, а происходит то, что я делаю AIMP-подобный плейер для MacOS )
Плеер почти дорос до первой беты, и тут выяснилась неприятная вещь: я понятия не буду иметь чем именно пользуютcя пользователи. Эквалайзер на двадцать полос я делал две недели - его вообще открывают? Радио, запись эфира, сведение треков, торможение винила, LPF/HPF - это кому-нибудь нужно, или я радовал себя одного?
Что чинить и развивать мне в первую очередь? Какая фича самая популярная?
Что уходит: версия плеера и версия системы, какие возможности включали, в каком формате был файл и почему воспроизведение остановилось. Длительности и количества - диапазонами. Не "трек 3 минуты 33 секунды", а "от двух до пяти минут". Не "в плейлисте 1847 файлов", а "от ста до тысячи". Потому что точное число это уже почти отпечаток пальца. Три таких числа рядом, и человек опознан.
Что не уходит никогда: названия треков, теги, обложки, пути к файлам, имена папок, названия плейлистов, адреса радиостанций. И это не обещание в тексте, а устройство системы сбора - у события просто нет места, куда можно положить строку. Я специально сделал так, чтобы туда физически ничего лишнего не пролезло, и написал проверку, которая падает, если что-то начнет пролезать.
Сервис, который я использую для сбора статистики: telemetrydeck.com
Вторая галочка отвечающая за отправку отчетов о сбоях позволит автоматически отправить отчет если приложение вдруг упало
Плеер запоминает, что делал перед тем, как умереть а именно последние действия по порядку, играл файл или эфир, в каком формате, что было включено и при следующем запуске отправляет мне. Отчет присылается полностью вместе с дампом, по которому видно строчку, на которой всё сломалось. Перед отправкой отчета часть информации которая может как-то повлиять на идентификацию пользователя или конфиденциальность - вырезается, например, пути в которых имеются имя пользователя и прочее.
Разделение отправки на две разные сущности сделано не случайно. Мне кажется, это разные вещи: не хотеть попадать в графики одно, а хотеть, чтобы пойманный тобой баг починили - совсем другое. По умолчанию обе галочки будут включены.
Для сборов отчетов о падении я использую Sentry. Вот так примерно выглядит отчет внутри системы.