Start Debugging

how-to

74 Beiträge · Seite1von8

OpenAI-API aus einer Flutter-Web-App aufrufen, ohne den API-Schlüssel preiszugeben

Alles, was Sie in einen Flutter-Web-Build kompilieren, auch --dart-define-Werte, landet im Klartext im Browser. Das einzige sichere Muster ist ein kleiner Backend-Proxy, der den Schlüssel hält, den Benutzer authentifiziert, das Modell festlegt und die SSE der Responses API zurückstreamt. Vollständiger Dart-shelf-Proxy und Flutter-Client, getestet mit Flutter 3.44, Dart 3.12 und http 1.6.
2026-10-25 flutterdartios

Bildschirmausrichtung für einen einzelnen Screen in Flutter sperren (und warum iPad-Multitasking sie ignoriert)

Sperren Sie eine Flutter-Route mit SystemChrome.setPreferredOrientations auf Quer- oder Hochformat, ohne den Rest der App zu stören: eine stapelbasierte Sperre, die pushReplacement übersteht und beim Pop zurückgesetzt wird, warum die leere Liste das falsche Zurücksetzen ist, warum iPad-Multitasking und große Android-16-Bildschirme die Sperre ignorieren und was UIRequiresFullScreen nach iPadOS 26 und dem iOS-27-SDK bedeutet. Getestet mit Flutter 3.47.8, Dart 3.13.7 und Xcode 27.1.

Wie Sie die Antwort einer Controller-Action im integrierten OpenAPI-Dokument von ASP.NET Core als nullbar markieren

Microsoft.AspNetCore.OpenApi markiert eine Antwort nur dann als nullbar, wenn die Action ein reines T? zurückgibt (und unter .NET 10 nicht einmal Task<T?>). ActionResult<T?> und IActionResult verlieren die Annotation sowohl unter .NET 10 als auch unter .NET 11 RC2. Hier steht der Grund, ein getesteter Operation Transformer, der das behebt, und die Falle mit 204 No Content, durch die die Spezifikation lügt, wenn Sie nicht auch den Formatter von MVC ändern.
2026-10-19 flutterdarttheming

Eigene Design-Tokens mit ThemeExtension definieren und zwischen hellem und dunklem Theme in Flutter animieren

Leiten Sie von ThemeExtension ab, registrieren Sie pro ThemeData eine Instanz über die Liste extensions, lesen Sie sie mit Theme.of(context).extension<T>() und schreiben Sie ein echtes lerp, damit das AnimatedTheme von MaterialApp Ihre Tokens beim Wechsel zwischen hell und dunkel interpoliert. Behandelt Farben, Radien, Schatten, Textstile und Booleans, den Absturz bei fehlender Extension, die copyWith-Falle, die alle anderen Extensions verwirft, und warum == und hashCode nötig sind. Alles mit Widget-Tests unter Flutter 3.44.8 verifiziert.

So animiert AnimatedSwitcher auch dann, wenn sich der Typ des Child-Widgets in Flutter nicht ändert

AnimatedSwitcher startet nur dann einen Übergang, wenn Widget.canUpdate das neue Child als anderes Widget einstuft. Text zu Text ohne Key wird daher einfach an Ort und Stelle aktualisiert. Hier die Ein-Zeilen-Lösung, wo der Key sitzen muss, warum UniqueKey eine Falle ist, der Fehler bei der Slide-Richtung durch einen statischen transitionBuilder und der Layout-Sprung durch den Standard-Stack, alles mit Widget-Tests unter Flutter 3.44.8 verifiziert.
2026-10-19 flutterdartandroid

UI-Zustand nach dem Android-Prozesstod in Flutter mit RestorationMixin wiederherstellen

Android beendet Flutter-Apps im Hintergrund, um Speicher freizugeben, und wenn der Nutzer zurückkehrt, beginnt jedes StatefulWidget bei null. So aktivieren Sie die Wiederherstellung mit restorationScopeId, RestorationMixin und Restorable-Eigenschaften, stellen Textfelder, Scroll-Positionen und gepushte Routen wieder her, schreiben ein eigenes RestorableValue und testen alles mit restartAndRestore und adb, verifiziert mit Flutter 3.44.8 und einem Android-16-Emulator.
2026-10-18 dartflutterstreams

Wie Sie den letzten Wert an spät hinzukommende Abonnenten eines Dart-Streams ausliefern, ohne BehaviorSubject von rxdart

Ein Broadcast-StreamController verwirft jedes Ereignis, das vor dem Abonnieren ausgelöst wurde. Hier ist ein abhängigkeitsfreier Ersatz für BehaviorSubject auf Basis von Stream.multi, eine replayLatest()-Extension für bestehende Streams, die async*-Abkürzung, die stillschweigend Ereignisse verliert, und das Detail zu initialData bei StreamBuilder, alles verifiziert mit Dart 3.12.2.

So verwerfen Sie gepufferte Tastendrücke vor Console.ReadKey in einer C#-Konsolenspielschleife

Leeren Sie den Konsoleneingabepuffer mit while (Console.KeyAvailable) Console.ReadKey(true), bevor Sie auf eine neue Taste warten, und tun Sie das in einer Spielschleife in jedem Frame, damit sich die Tastenwiederholung nicht aufstaut. Wie der Puffer unter Windows und Unix in .NET 10 funktioniert, warum gehaltene Tasten verzögert wirken, die Echo-Falle unter Unix und FlushConsoleInputBuffer.
Weiter