Code, den du sofort einsetzen kannst
Praktische Code-Snippets aus meiner täglichen Arbeit — kopieren, verstehen, einsetzen.
withTimeout – hängende Coroutines nach X Sekunden abbrechen
Ein Netzwerkaufruf, der ewig hängt, blockiert deinen Ladezustand für immer. Mit `withTimeout` gibst du einer Coroutine eine Frist – läuft sie ab, bricht Kotlin sie sauber ab.
runCatching – Fehler in Kotlin funktional statt mit try/catch
Statt jeden Aufruf in try/catch zu wickeln, gibt dir `runCatching` ein Result zurück. Mit `map`, `getOrElse` und `onFailure` liest sich Fehlerbehandlung wie eine saubere Kette.
Flow.debounce – entprellte Live-Suche in Jetpack Compose
Eine Suche, die bei jedem Buchstaben eine Anfrage feuert, überlastet dein Backend. Mit `debounce` auf einem Flow wartest du eine kurze Pause ab und suchst erst dann – ideal fürs Suchfeld.
Enum-Klassen in Kotlin – mit Eigenschaften und Methoden
Enums sind mehr als eine Liste von Konstanten. In Kotlin bekommt jeder Wert eigene Eigenschaften und Methoden – perfekt für Zustände, Kategorien oder Konfiguration.
by lazy in Kotlin – teure Objekte erst beim ersten Zugriff bauen
Manche Objekte kosten Zeit oder Speicher und werden vielleicht nie gebraucht. Mit `by lazy` baust du sie erst, wenn sie das erste Mal wirklich abgefragt werden – threadsicher und in einer Zeile.
URLSearchParams – Query-Strings sicher bauen und auslesen
Query-Strings von Hand zusammenzustückeln geht schnell schief – Sonderzeichen, Leerzeichen, Umlaute. URLSearchParams baut und liest sie korrekt kodiert, ganz ohne String-Basteln.
Throttle in Vanilla JavaScript – höchstens alle X Millisekunden feuern
Beim Scrollen oder bei Mausbewegung feuern Events dutzendfach pro Sekunde. Mit Throttle begrenzt du das auf einen Aufruf alle X Millisekunden – der Bruder von Debounce, aber fürs Dauerfeuer.
Tiefe Kopien in JavaScript mit structuredClone
Ein Spread `{...obj}` kopiert nur die oberste Ebene – verschachtelte Objekte teilen sich weiter denselben Speicher. structuredClone macht eine echte tiefe Kopie, eingebaut und ohne JSON-Umweg.
Zahlen, Währung und Datum formatieren mit Intl
1234.5 als „1.234,50 €" anzeigen? Mit dem eingebauten Intl-Objekt formatierst du Zahlen, Währungen und Datum korrekt für jede Sprache – ohne Bibliothek und ohne selbstgebaute Punkt-Komma-Logik.
fetch() abbrechen und mit Timeout absichern – AbortController
Ein fetch(), das ewig lädt, oder eine veraltete Suchanfrage – mit AbortController brichst du laufende Requests sauber ab und gibst ihnen ein Zeitlimit.
Ordner sicher übertragen und deployen mit rsync
rsync kopiert nur, was sich wirklich geändert hat – ideal fürs Deployen einer Website oder ein schnelles Backup. Mit --dry-run siehst du vorher genau, was passieren würde, bevor etwas überschrieben oder gelöscht wird.
Container Queries – Komponenten, die auf ihren Platz reagieren, nicht auf den Bildschirm
Media Queries fragen die Bildschirmbreite ab. Container Queries fragen, wie breit der Container einer Komponente gerade ist – so passt sich eine Karte in der Sidebar anders an als dieselbe Karte im Hauptbereich. Endlich wirklich wiederverwendbare Bausteine.