Social Reader
Eine private Android-App, mit der ich Reddit, X, Facebook und Instagram lesen kann, ohne ständige „Antworten"- und „Posten"-Buttons und mit weniger Werbung. Selbst gebaut, weil ich die Kontrolle über meine Accounts und meine Ruhe beim Lesen behalten wollte.
01Warum überhaupt?
Ich nutze Reddit und X regelmäßig, Facebook und Instagram gelegentlich, vor allem, um Familieninhalte zu lesen und in Familien-Chats erreichbar zu sein. Mein Nutzungsverhalten ist eher passiv: mal ein Like, aber kein Posten oder Kommentieren.
Vorher hatte ich eine fremde „Social-Browser"-App („Friendly") genutzt und damit Account-Probleme bekommen. Das war der Auslöser, eine eigene Lösung zu bauen, mit voller Kontrolle über Privatsphäre und Login-Sicherheit, ohne dass meine Zugangsdaten durch fremde Server laufen.
02Wie es funktioniert
Die App ist mit Flutter gebaut und zeigt die vier Netzwerke jeweils in einer eigenen WebView. Anfangs lagen alle vier Tabs dauerhaft in einem IndexedStack, damit die angemeldeten Sitzungen und die Feed-Position beim Tab-Wechsel erhalten bleiben. Das hatte einen praktischen Vorteil (man konnte dort weitermachen, wo man zuletzt war), aber auch einen handfesten Nachteil: Vier gleichzeitig lebende Webansichten haben den Arbeitsspeicher volllaufen lassen und mein damaliges S22 Ultra spürbar warm werden lassen. Deshalb halte ich jetzt nur noch den aktiven Tab live; die anderen werden erst beim Umschalten geladen. Das kostet den Komfort, exakt an der alten Scroll-Position weiterzulesen, hält das Gerät dafür kühl und den RAM im Rahmen. Unten sitzt eine schlanke, nur 44 px hohe Icon-Leiste zum Umschalten.
4 Tabs, eine Oberfläche
Reddit, X, Facebook und Instagram in einer App, kein Wechsel nötig. Aktiv gehalten wird der laufende Tab, schonend für RAM und Temperatur.
Buttons & Werbung ausblenden
Per JavaScript werden Compose-Buttons, Kommentarfelder, Stories und Werbeblöcke versteckt.
Logins bleiben lokal
Die Anmeldungen liegen nur auf dem Gerät. Nach dem Start entsperrt ein Fingerabdruck die App.
Bilder speichern
Bilder lassen sich per langem Druck herunterladen. Video-Download habe ich bewusst wieder entfernt (siehe unten).
03Das Ausblenden im Detail
Der spannendste Teil: unerwünschte Elemente verschwinden zu lassen, ohne die Seiten kaputtzumachen. Umgesetzt über gezielte JavaScript-Injection pro Plattform:
- Reddit & X: ein in ein IIFE gekapselter
MutationObservererkennt neu nachgeladene Inhalte und blendet Werbung und Compose-Buttons laufend aus, auch beim Endlos-Scrollen. - Facebook: Ausblenden über ARIA-Rollen und ein „Text-Climbing" (vom passenden Text zum richtigen Container hochlaufen), trifft Composer, Kommentarboxen, Stories-Karussell und Vorschläge/Sponsored-Einträge.
- Instagram: Stories-Leiste, untere Navigation und Werbeeinträge raus, ebenfalls per Text-Climbing (zum Nebeneffekt der Feed-Lücken siehe unten).
- Alles läuft über
display:none !important, aber abgesichert durch eine Schutzregel, die keinen Container ausblendet, der den eigentlichen Feed enthält.
Damit Facebook den Messenger direkt in der WebView zulässt (statt „App öffnen"), bekommt es einen Desktop-User-Agent; die anderen laufen mit einem mobilen Chrome-User-Agent. intent://-Aufrufe für den Messenger werden abgefangen und auf facebook.com/messages umgeleitet.
04Herausforderungen & Lösungen
Ein früher, zu aggressiver Ausblend-Versuch bei Instagram hat versehentlich die ganze Seite schwarz gemacht: Die Regel hat einen Container erwischt, der den gesamten Feed enthielt.
Eine Guard-Funktion (srContainsFeed()) prüft vor jedem Ausblenden, ob ein Element den Feed/Artikel/Hauptbereich enthält. Wenn ja, wird es nicht versteckt. Seitdem bleibt der Feed sichtbar und nur der Ballast verschwindet.
Bei Instagram wird zwar zuverlässig viel Werbung ausgeblendet, aber mit einem Nebeneffekt: Wo ein Werbeeintrag entfernt wird, bleibt im Feed eine Lücke. Man scrollt und sieht für ein, zwei Positionen kurz nichts (im Screenshot unten markiert). Instagram rendert den Feed offenbar mit festen Platzannahmen, sodass der Bereich nach dem Ausblenden nicht sauber nachrückt. Ich habe mich daran gewöhnt. Eine elegantere Lösung (die Lücke sauber kollabieren zu lassen) steht noch auf meiner Liste.
Bei Reddit, X und Facebook sieht man Post-Buttons oder Werbung für einen kurzen Moment noch, bevor sie nach knapp einer Sekunde verschwinden. Grund: Das Ausblenden greift erst, wenn die Elemente schon gerendert sind. Für mich ist das völlig okay, der Feed bleibt lesbar, und der kurze Moment stört den Lesefluss nicht wirklich.
Bilder herunterzuladen war einfach; bei Videos kam nur „Stream kann nicht heruntergeladen werden", weil die echte Datei-URL im Seiten-Code versteckt ist.
Ich hatte es zeitweise über einen kleinen fetch-/XHR-Patch versucht, der die MP4-Adressen aus den JSON-Antworten fischt (u. a. Facebooks browser_native_hd_url). In der Praxis war das aber zu fehleranfällig. Segmentierte Streams, ständig wechselnde Adressen und Tokens. Deshalb habe ich den Video-Download bewusst wieder entfernt. Für mich verschmerzbar: Der Download von Bildern klappt zuverlässig, und das reicht mir völlig.
In den Einstellungen gibt es einen kleinen Checker, der pro Plattform ausliest, wie oft welche Filterregel gegriffen hat (grün/orange/grau). So sehe ich sofort, ob nach einem Update einer Plattform eine Regel nicht mehr passt.
05Stand & Ausblick
Die App läuft im Alltag stabil und ist für mich sehr gut nutzbar, nicht perfekt, aber genau das, was ich wollte. Da die Plattformen ihr Layout regelmäßig ändern, müssen die Filterregeln ab und zu nachgezogen werden; die Status-Anzeige hilft dabei. Es finden sich immer wieder kleine Verbesserungen.
Inzwischen habe ich die App signiert und den Gerätewechsel mitgemacht, vom S22 Ultra auf das neue S26 Ultra. Dort ließ sie sich problemlos installieren und läuft genauso wie zuvor.
Was noch offen ist
- Feed-Lücken bei Instagram sauberer lösen, damit der Feed nach dem Ausblenden lückenlos nachrückt (siehe Screenshot).
- Compose-Button bei Facebook: Der kleine runde Stift zum Schreiben (unten rechts) ist noch übrig, er sitzt außerhalb des Bereichs, den meine Filter abklappern. Kommt als Nächstes dran.
- Schnelleres Ausblenden: Aktuell blitzen Buttons/Werbung noch knapp eine Sekunde auf, bevor sie verschwinden. Ziel ist, das früher abzufangen, sodass gar nichts mehr kurz aufscheint.
Das passt zu meiner Nutzung: Außer dem Facebook-Chat mit Familie und Freunden poste ich nichts, ich lese nur. Genau dafür ist die App gebaut.
Denkbare Erweiterungen
Die Struktur lässt sich leicht ausbauen. Man könnte weitere Plattformen ergänzen oder umgekehrt in den Einstellungen einzelne abwählen, bis hin zu „nur eine anzeigen, den Rest ausblenden", je nachdem, was man gerade möchte. Die Plattform-Schalter dafür gibt es schon, abgewählte Netzwerke tauchen dann weder in der Leiste auf noch werden sie geladen.
06Screenshots
Ein paar Eindrücke aus der App, vom Fingerabdruck-Start über die vier Plattformen bis zu den Einstellungen und der App-Info in Android. Die farbig markierten Bereiche zeigen, was die App verändert: die eigene Navigationsleiste, die bei X eingebaute Suche und die Feed-Lücke, wo Werbung ausgeblendet wurde. (Antippen zum Vergrößern.)
Vorläufig sind das schnelle Handyfotos vom Bildschirm. Bei Gelegenheit tausche ich sie gegen sauberere Aufnahmen. Es soll aber schon einmal etwas zum Anschauen da sein.







