Start Debugging

flutter

162 posts · Página1de17

shared_preferences vs um arquivo JSON com path_provider para salvar configurações no Flutter

Use shared_preferences (SharedPreferencesWithCache) para um punhado de flags simples e um arquivo JSON em getApplicationSupportDirectory para um objeto de configurações estruturado. Cobre o padrão de escrita atômica, a condição de corrida dos salvamentos concorrentes, a armadilha da pasta Documentos no Windows e no Linux, o suporte à web e custos de escrita medidos no Flutter 3.44.8.
2026-10-25 flutterdartios

Como bloquear a orientação da tela em uma única tela no Flutter (e por que o multitasking do iPad a ignora)

Bloqueie uma rota do Flutter em paisagem ou retrato com SystemChrome.setPreferredOrientations sem quebrar o resto do app: um bloqueio baseado em pilha que sobrevive a pushReplacement e é restaurado no pop, por que a lista vazia é o reset errado, por que o multitasking do iPad e as telas grandes do Android 16 ignoram o bloqueio e o que UIRequiresFullScreen significa depois do iPadOS 26 e do SDK do iOS 27. Testado no Flutter 3.47.8 com Dart 3.13.7 e Xcode 27.1.

Migre um app Flutter de Color.withOpacity para Color.withValues (Flutter 3.27+)

Substitua os membros obsoletos Color.withOpacity, opacity, value, red, green, blue e alpha por withValues, .a/.r/.g/.b e toARGB32. O que o dart fix reescreve para você, os quatro getters que ele deixa para trás, por que asserções de cor exata e buscas em Map<Color, T> quebram após a troca, e como withOpacity descarta silenciosamente o Display P3. Medido no Flutter 3.44.8 com Dart 3.12.2.

Migre um app Flutter de WidgetsBindingObserver.didChangeAppLifecycleState para AppLifecycleListener (Flutter 3.13+)

Substitua o código de ciclo de vida feito à mão com WidgetsBindingObserver por AppLifecycleListener: o mapeamento dos callbacks, a máquina de estados que ele impõe, o novo estado hidden que quebra switches exaustivos, as solicitações de saída no desktop e o teste que de repente falha numa assertion. Testado no Flutter 3.44.8 com Dart 3.12.2.
Próximo